Tutorial VHDL – 22: Projetando um comparador de 1 e 8 bits usando VHDL

Tutorial VHDL – 22: Projetando um comparador de 1 e 8 bits usando VHDL

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

No tutorial anterior, Tutorial VHDL – 21projetamos um circuito somador completo de 8 bits usando VHDL.

Neste tutorial, iremos:

  • Escreva um programa VHDL que construa um circuito comparador de 1 e 8 bits
  • Verifique a forma de onda de saída do programa (circuito digital) com operação do circuito comparador

O circuito comparador de 1 bit

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 elaborar o projeto. Isso garantirá que você edite e compile corretamente o programa e o arquivo de forma de onda, bem como a saída final.

Programa VHDL

biblioteca IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entidade comparador_1bit é
Porta (A,B: em std_logic;
G,S,E: saída std_logic);
final comparador_1bit;

arquitetura comp_arch do comparador_1bit é
começar
G <= A e (não B);
S <= (não A) e B;
E <= A xnor B;
final comp_arch;

Pode ser útil revisar os dois primeiros tutoriais de VHDL (1 e 2) desta série para refrescar sua memória sobre como isso funciona.

Em seguida, compile o programa acima, criando e salvando um arquivo de forma de onda com todas as entradas e saídas necessárias listadas (garantindo a aplicação de todas as diferentes combinações de entrada). Em seguida, simule o projeto. Você deve obter o seguinte resultado…

De acordo com esta figura, as saídas de 'G' e 'E' são destacadas em vermelho e azul, respectivamente, para A>B e A=B.

A seguir, vamos expandir isso de um comparador de 1 bit para um comparador de 8 bits. Para fazer isso usando VHDL, empregaremos um estilo de modelagem comportamental porque é mais fácil do que os outros dois estilos.

O programa VHDL comparador de 8 bits

biblioteca IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entidade comparador_8bit é
Porta (A,B: em std_logic_vector(0 a 7);
G,S,E: saída std_logic);
final comparador_8bit;

arquitetura comp_arch do comparador_8bit é
começar
processo
começar
se A=B então
G <= '0';
S <= '0';
E <= '1';
elsif A>B então
G <= '1';
S <= '0';
E <= '0';
elsif A
G <= '0';
S <= '1';
E <= '0';
fim se;
fim do processo;
final comp_arch;

Forma de onda de simulação

Conforme mostrado nesta figura, os três resultados são destacados em vermelho, azul e verde, representando A>B, A

Este é o tutorial final desta série VHDL. Você pode encontrar programas adicionais para diferentes circuitos digitais online e praticá-los para obter mais experiência prática com programação VHDL. Continue aprendendo e você continuará progredindo!

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

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