VHDL
Usando a estrutura “process”, implementar em VHDL e simular no ModelSim um flipflop JK gatilhado pela borda de subida, com funcionamento descrito pela tabela
verdade no anexo.
Soluções para a tarefa
Como solicitado no exercício, vamos utilizar a estrutura process, que nos permitirá descrever circuitos sequenciais como é o caso dos flipflops abordados neste exercício.
Comentários:
--> As primeiras linhas foram reservadas para informarmos a utilização da biblioteca IEEE e dos recursos inclusos no padrão 1164.
--> No bloco "entity", declaramos todas entradas e saídas do circuito, seus tipos e seus tamanhos (bits). Note que, no caso de haver mais de um bit, declaramos como um vetor de bits (std_logic_vector). É importante ressaltar também que, o nome dado à entity deve ser igual ao do projeto, já que, dependendo do software utilizado, podem surgir erros na montagem e simulação do projeto.
--> No bloco "architecture", vamos tratar do comportamento do circuito, isto é, de que modo e o que ele apresentará na sua saída. O signal Qprv (saída Q prévia) declarado é responsável por armazenar o valor registrado no FF no processo anterior.
--> Na lista de sensibilidade da estrutura process, colocamos as entradas PR, CLR e CLK, responsáveis por "acordar" este bloco sempre que sofrerem alguma alteração.
--> Observe que a ordem na qual dispomos a estrutura condicional if/elsif/else atende aos critérios impostos na tabela verdade, ou seja, a entrada PR tem prioridade sobre todas as outras e CLR, sobre a CLK.
--> É preciso destacar também que, embora tenhamos descrito o comportamento do circuito por meio de uma estrutura condicional, haveria outras possibilidades.
A simulação deverá apresentar resultados semelhantes aos vistos no diagrama mostrado na figura anexada à resolução. Note, particularmente como são atendidas as prioridades das entradas PR, CLR e CLK.