Conversor BCD a XS3
OBJETIVO
Implementar en VHDL y simular un conversor de BCD a XS3.
Presentar el código VHDL, simulación en el laboratorio y el sistema funcionando en el KIT CPLD.
DESARROLLO
Apara larealización de este practico, en primera instancia desarrollamos una tabla de verdad con la codificación BCD y otra XS3 a la cual queremos llegar. Además, implementamos una señal extra, la cual nos indica siel número ingresado es BCD o si sobrepasa el mayor digito posible.
BCD
XS3
ERROR
A
B
C
D
A
B
C
D
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
01
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
01
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
10
0
0
0
1
A partir de esta tabla, comenzamos a realizar el código VHDL, teniendo en cuenta que para pasar de BCD a XS3, basta con sumarle el número 3 (0011). Para ejecutar esto, realizamos unbloque sumador en VHDL.
//BLOQUE SUMADOR
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Sumador_completo_1bit is
Port (A,B : in STD_LOGIC;
Ci : in STD_LOGIC;
Cout : out STD_LOGIC;
Sal : out STD_LOGIC);
end Sumador_completo_1bit;
architecture Behavioral of Sumador_completo_1bitis
begin
Sal ,
Ci => ,
Cout => ,
Sal =>
);
Con este bloque generado e instanciado, procedimos a codificar el VHDL principal, el cual debe tomar el número propuesto por las señales deentrada, y sumarle 3 para transformarlo en XS3. Además, debe verificar si el numero ingresado es válido, y en caso de no serlo, levantar a ‘1’ la señal de error y poner a ‘0’ las salidas.
//BCD a...
Regístrate para leer el documento completo.