Cursos / Eletrônica / Sistemas Digitais / Aula

arrow_back Aula 18 - Roteiro Prático da Aula 09

Construindo um Flip-Flop JK

Como visto nas aulas anteriores, o circuito flip-flop (FF) serve como base para a construção de circuitos de armazenamento. O Flip-Flop JK é um dos exemplos dessa classe de circuitos de armazenamento, podendo ser de borda de subida ou borda de descida. Aqui vamos implementar o FF JK com borda de subida, que funciona de acordo com a tabela 01.

$J$ $K$ $Q$ $\overline{Q}$
0 0 $Q$ $\overline{Q}$
0 1 0 1
1 0 1 0
1 1 $\overline{Q}$ $Q$
Tabela 1 - Tabela do Flip-Flop JK

Considerando $Q’$ o valor anterior de $Q$. Para ocorrer essa atribuição dos valores de $Q$ e $\overline{Q}$ é necessário que ocorra uma borda de subida do clock (CLK) do circuito, ou melhor, o CLK passe do valor ‘0’ para ‘1’. A linguagem de descrição de hardware VHDL tem uma função específica para sentir essa mudança no clock, chamada de “event”.

A função “event” é aplicada a um sinal e retorna verdadeiro quando ocorre qualquer mudança no sinal. Veja nas duas expressões abaixo como sentir quando ocorre uma borda de subida ou uma borda de descida no sinal CLK.

  • Expressão 01:$$ ((CLK’event) and (CLK = ‘1’)) $$
  • Expressão 02:$$ ((CLK’event) and (CLK = ‘0’)) $$

A expressão 01, acima, tem duas condições, uma que retorna verdadeiro quando ocorre uma mudança no sinal CLK, realizada pela função “event”, e outra que verifica se o sinal CLK é o valor ‘1’ naquele momento. Essa expressão realiza verificação de uma borda de subida no sinal CLK. Verifique que a expressão 02 implementa uma borda de descida no sinal CLK.

Agora que você já sabe como implementar uma borda de subida ou descida analise o código 01, dado abaixo, que implementa um circuito do FF JK.

Código 1

Versão 5.3 - Todos os Direitos reservados