Tutorial VHDL 15: Projete uma trava SR com clock (flip-flop) usando VHDL

Nota: é recomendável seguir esta série de tutoriais VHDL em ordem, começando com o primeiro tutorial.

No tutorial anterior, Tutorial VHDL – 14, Nós projetamos dois circuitos usando VHDL: um demultiplexador 1×8 e um multiplexador 8×1.

Neste projeto iremos,

  • Escreva um programa VHDL para construir um circuito SR Latch (flip-flop) com clock
  • Verifique a forma de onda de saída do programa (o circuito digital) com a tabela verdade do circuito flip-flop

Um circuito de trava SR com clock:

Tabela verdade

Agora vamos escrever, compilar e simular um programa VHDL. Então, obteremos a saída em forma de onda e a verificaremos com a tabela verdade fornecida.

Antes de começar, certifique-se de revisar o procedimento passo a passo fornecido em Tutorial VHDL – 3 para projetar adequadamente o projeto, bem como editar e compilar o programa e o arquivo de forma de onda, incluindo a saída final.

Para este tutorial, usamos um estilo de modelagem comportamental para escrever o programa VHDL que construirá o circuito flip-flop. Este é o estilo de modelagem preferido para circuitos digitais sequenciais.

Programa VHDL

biblioteca ieee;
use ieee.std_logic_1164.all;
entidade RS_FF é
porta (clk,r,s: em std_logic;
P: fora std_logic;
Qnot: fora std_logic);
final RS_FF;
arquitetura RSFF_arch de RS_FF é
sinal t1,t2: std_logic;
começar
t1 <= r nem t2;
t2 <= s nem t1;
processo (clk,r,s)
começar
if(clk'evento e clk='1′ ) então
se(r='0′ e s='0′) então
Q<=t1;
Qnot <= t2;
elsif(r='0′ e s='1′) então
Q <='1';
Qnot <='0′;
elsif(r='1′ e s='0′) então
Q <='0';
Qnot <='1′;
elsif(r='1′ e s='1′) então
Q <='X';
Qnot <='X';
fim se;
fim se;
fim do processo;
fim RSFF_arch;

Para refrescar sua memória sobre como isso funciona, leia os dois primeiros tutoriais de VHDL (1 e 2) desta série.

A seguir, compile o programa acima, criando um arquivo de forma de onda com todas as entradas e saídas necessárias listadas, e simule o projeto. Você deve obter o seguinte resultado…

Forma de onda de simulação

Conforme mostrado nesta figura, quando a entrada do clock é '1', então “s” é '1'. E quando “r” é '0', o flip-flop é definido – o que significa que a saída Q é '1' e Qnot é '0'.

Certifique-se de verificar as diferentes combinações com a tabela verdade fornecida.

No próximo tutorial, projetaremos um flip-flop D usando VHDL.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.