Tutorial VHDL – 20: Projetando conversores de código binário para cinza e cinza para binário de 4 bits

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

No tutorial anterior, Tutorial VHDL – 19projetamos um contador binário de 4 bits usando VHDL.

Neste tutorial, iremos:

  • Escreva um programa VHDL para construir um conversor binário de 4 bits para cinza e cinza para um conversor de código binário
  • Verifique a forma de onda de saída do programa (circuito digital) com a tabela verdade do conversor de código

O conversor de código binário para cinza de 4 bits

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 b2g_code é
porta (b: em std_logic_vector(3 até 0);
g: out std_logic_vector(3 até 0));
fim b2g_code;

arquitetura b2g_arch de b2g_code é
começar
g(3) <=b(3);
g(2) <= b(3) xou b(2);
g(1) <= b(2) xou b(1);
g(0) <= b(1) xou b(0);
fim b2g_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…

Forma de onda de simulação

É fácil verificar todas as diferentes combinações da entrada do código binário (b0-b3) com a saída do código cinza (g0 – g3). A seguir, vamos fazer o procedimento inverso. Construiremos um circuito conversor de código cinza para binário.

O circuito conversor de código cinza para binário

Programa VHDL

biblioteca ieee;
use ieee.std_logic_1164.all;

entidade g2b_code é
porta (g: em std_logic_vector(3 até 0);
b: saída std_logic_vector(3 até 0));
fim g2b_code;

arquitetura g2b_arch de g2b_code é
começar
b(3) <= g(3);
b(2) <= g(3) xou g(2);
b(1) <= g(3) xou g(2) xou g(1);
b(0) <= g(3) xou g(2) xou g(1) xou g(0);
fim g2b_arch;

Formas de onda de simulação

Fica claro na figura que a entrada do código cinza (g0 – g3) e a saída do código binário (b0 – b3) correspondem à tabela verdade fornecida.

No próximo tutorial, construiremos um circuito somador completo de 8 bits usando VHDL.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

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