Tutorial VHDL – 12: Projetando um gerador de paridade de 8 bits e circuitos verificadores

Tutorial VHDL – 12: Projetando um gerador de paridade de 8 bits e circuitos verificadores

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

No tutorial anterior Tutorial VHDL – 11aprendemos como projetar circuitos meio subtratores e subtratores completos usando VHDL.

Neste tutorial, iremos:

  • Escreva um programa VHDL para construir um gerador de paridade de 8 bits e circuitos verificadores
  • Verifique a forma de onda de saída do programa (como um circuito digital) com a tabela verdade do gerador de paridade e dos circuitos verificadores de paridade

O circuito gerador de paridade de 8 bits

Tabela verdade

Nota: aqui nem todas as 256 combinações do D0-D7 são exibidas. Apenas alguns são tomados como exemplos.

Agora, vamos escrever, compilar e simular um programa VHDL para obter uma saída em forma de onda. Em seguida, verificaremos a saída da forma de onda com a tabela verdade fornecida.

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

Programa VHDL

biblioteca ieee;
use ieee.std_logic_1164.all;
paridade de entidade é
porta(dados:in bit_vector(7 até 0);
par_p,odd_p: bit de saída);
paridade final;
arquitetura parity_gen de paridade é
temperatura do sinal: bit_vector (5 até 0);
começar
temp(0)<=dados(0) xor dados(1);
temp(1)<=temp(0) xor dados(2);
temp(2)<=temp(1) xor dados(3);
temp(3)<=temp(2) xor dados(4);
temp(4)<=temp(3) xor dados(5);
temp(5)<=temp(4) xor dados(6);
par_p <= temp(5) xor dados(7);
estranho_p <= not(temp(5) xor dados(7));
fim paridade_gen;

Observação:

  • A “entidade” descreve as conexões de entrada-saída do circuito digital. De acordo com o circuito fornecido aqui, há uma entrada de dados de 8 bits de 'd0-d7' e duas saídas de 'even_p' e 'odd_p.'
  • A “arquitetura” descreve a operação do circuito, o que significa como a saída é gerada a partir de uma determinada entrada.

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…

Verifique as formas de onda de saída 'even_p' e 'odd_p' com os dados de entrada de 'D0-D7.' Por exemplo, conforme destacado no diagrama, para a entrada “1111 1011”, a saída par_p é '1' e a saída _p ímpar é '0.' Para a entrada “1011 1110”, a saída par_p é '0' e a saída ímpar_p é '1.'

Agora, vamos construir o circuito verificador de paridade de 8 bits.

O circuito verificador de paridade de 8 bits

Tabela verdade

Programa VHDL

biblioteca ieee;
use ieee.std_logic_1164.all;
entidade parity_chk é
porta(dados:in bit_vector(7 até 0);
p: em bits;
e: fora do bit);
fim paridade_chk;
arquitetura parity_arch de parity_chk é
temperatura do sinal: bit_vector (6 até 0);
começar
temp(0)<=dados(0) xor dados(1);
temp(1)<=temp(0) xor dados(2);
temp(2)<=temp(1) xor dados(3);
temp(3)<=temp(2) xor dados(4);
temp(4)<=temp(3) xor dados(5);
temp(5)<=temp(4) xor dados(6);
temp(6) <= temp(5) xor dados(7);
e <= p xor temp(6);
fim paridade_arch;

Formas de onda de simulação

Verifique a forma de onda de saída 'e' com a entrada de paridade de 'p' e os dados 'D0-D7.' Por exemplo, conforme destacado no diagrama, para a entrada “0101 1011” e a paridade '1', a saída de erro é '1.' Para a entrada “0100 1010” e a paridade '0', a saída é '0.'

No próximo tutorial, aprenderemos como projetar circuitos codificadores 8×3 e decodificadores 3×8 usando VHDL.

Zurück zum Blog

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung freigegeben werden.