LAB_1. Diseño de un decodificador BCD para display de 7 segmentos de una FPGA "BASYS 2"
En la página "Anexos LAB 1." del blog se encuentran el archivo "DECO.sco" y el programa "Boole-deusto" para descargar en el cual pueden evidenciarse:
1) La tabla de verdad del display de 7 segmentos
2) Los mapas de Karnaugh de cada segmento (con simplificación con "ceros" o con "unos")
3) Las ecuaciones correspondientes a cada segmento resultantes de los mapas de Karnaugh
4) El circuito combinacional implementado en compuertas lógicas Nand o Nor
------------------------------------------------------------------------------------------------------------
For our first "DIGITALES I" laboratory assignment, we were asked to do the design of a hexadecimal decodificator to be implemented on the "Basys 2" FPGA, and for that task, after we obtain the true table, we appealed to use the "boolle-deusto" program wich is capable of the ecuation simplification after resolving the karnaugh maps, besides of the facility of visualize the combinational circuit equivalent to the obtained functions not only on NAND but also on NOR gates.
the program also is able of generate the VHDL code correspondent to any kind of combinational circuit, state machines, and even if the user needs it, it can generates another kind of hardware description as orCAD-PLD code, JEDEC PLCC code and JEDEC DIP code.
in the " anexos" page of the blog, there are the document where was developed this specific implementation and also the "Boole-Deusto" program for those who want to get closer to this helpfull and easy use software.
------------------------------------------------------------------------------------------------------------
Below are combinational circuits obtained by digital design software "Boole-Deusto"
El siguiente es el código generado por el "Boole-Deusto":
------------------------------------------------------------------------------------------------------------
The following is the code generated by the "Boole-Deusto":
library IEEE;
entity deco is
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
Port (
A: in std_logic;
B: in std_logic;
C: in std_logic;
D: in std_logic;
S0: out std_logic;
S1: out std_logic;
S2: out std_logic;
S3: out std_logic;
S4: out std_logic;
S5: out std_logic;
S6: out std_logic
);
end deco;
architecture behavioral of deco is
begin
S0<=((A and not(D)) or (not(B) and not(D)) or (A and not(B) and not(C)) or (not(A) and B and D) or (not(A) and not(B) and C) or (A and B and C));
S1<=((A and not(C) and D) or (not(B) and not(D)) or (not(A) and not(C) and not(D)) or (not(A) and C and D) or (not(A) and not(B)));
S2<=((not(C) and D) or (not(A) and B) or (A and not(B)) or (not(A) and not(C)) or (not(A) and D));
S3<=((B and not(C) and D) or (not(B) and C and D) or (B and C and not(D)) or (A and not(C) and not(D)) or (not(A) and not(B) and not(D)));
S4<=((not(B) and not(D)) or (C and not(D)) or (A and C) or (A and B));
S5<=((not(C) and not(D)) or (B and not(D)) or (not(A) and B and not(C)) or (A and not(B)) or (A and C));
S6<=((not(B) and C) or (A and not(B)) or (A and D) or (C and not(D)) or (not(A) and B and not(C)));
end behavioral;
Una vez obtenido el código del generador boole, procedimos a trabajar en el entorno de desarrollo de xilinx para realizar así posteriormente la implementación del programa en la FPGA, las capturas de pantalla que se muestran a continuación describen el proceso que seguimos:
1) Trasladamos el código generado a Xilinx directamente
LAB_1. Circuitos Combinacionales Obtenidos del "BOOLE-DUSTO"
A continuación se presentan los circuitos combinacionales obtenidos por el software de diseño digital "Boole-Deusto"
------------------------------------------------------------------------------------------------------------
Below are combinational circuits obtained by digital design software "Boole-Deusto"
Circuito combinacional del segmento "a" (F1)
-----------------------------------------------------------------------------
Combinational circuit of segment "a" (F1)
Mapa de karnaugh del segmento "a" (F1)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "a" (F1)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "a" (F1)
Circuito combinacional del segmento "b" (F2)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "b" (F2)
Mapa de karnaugh del segmento "b" (F2)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "b" (F2)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "b" (F2)
Circuito combinacional del segmento "c" (F3)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "c" (F3)
Mapa de karnaugh del segmento "c" (F3)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "c" (F3)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "c" (F3)
Circuito combinacional del segmento "d" (F4)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "d" (F4)
Mapa de karnaugh del segmento "d" (F4)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "d" (F4)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "d" (F4)
Circuito combinacional del segmento "e" (F5)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "e" (F5)
Mapa de karnaugh del segmento "e" (F5)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "e" (F5)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "e" (F5)
Circuito combinacional del segmento "f" (F6)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "f" (F6)
Mapa de karnaugh del segmento "f" (F6)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "f" (F6)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "f" (F6)
Circuito combinacional del segmento "g" (F7)
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Combinational circuit of segment "g" (F7)
Mapa de karnaugh del segmento "g" (F7)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "g" (F7)
-----------------------------------------------------------------------------
Karnaugh´s map of segment "g" (F7)
LAB_1. Código en xilinx
El siguiente es el código generado por el "Boole-Deusto":
------------------------------------------------------------------------------------------------------------
The following is the code generated by the "Boole-Deusto":
library IEEE;
entity deco is
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
Port (
A: in std_logic;
B: in std_logic;
C: in std_logic;
D: in std_logic;
S0: out std_logic;
S1: out std_logic;
S2: out std_logic;
S3: out std_logic;
S4: out std_logic;
S5: out std_logic;
S6: out std_logic
);
end deco;
architecture behavioral of deco is
begin
S0<=((A and not(D)) or (not(B) and not(D)) or (A and not(B) and not(C)) or (not(A) and B and D) or (not(A) and not(B) and C) or (A and B and C));
S1<=((A and not(C) and D) or (not(B) and not(D)) or (not(A) and not(C) and not(D)) or (not(A) and C and D) or (not(A) and not(B)));
S2<=((not(C) and D) or (not(A) and B) or (A and not(B)) or (not(A) and not(C)) or (not(A) and D));
S3<=((B and not(C) and D) or (not(B) and C and D) or (B and C and not(D)) or (A and not(C) and not(D)) or (not(A) and not(B) and not(D)));
S4<=((not(B) and not(D)) or (C and not(D)) or (A and C) or (A and B));
S5<=((not(C) and not(D)) or (B and not(D)) or (not(A) and B and not(C)) or (A and not(B)) or (A and C));
S6<=((not(B) and C) or (A and not(B)) or (A and D) or (C and not(D)) or (not(A) and B and not(C)));
end behavioral;
LAB_1. Entorno de xilinx
Una vez obtenido el código del generador boole, procedimos a trabajar en el entorno de desarrollo de xilinx para realizar así posteriormente la implementación del programa en la FPGA, las capturas de pantalla que se muestran a continuación describen el proceso que seguimos:
1) Trasladamos el código generado a Xilinx directamente
2) Realizamos la descripción de hardware por el método esquemático para redundar en el proceso de diseño y abordar así el problema de diseño de dos maneras distintas.
3) Una vez realizada la descripción de hardware con cada segmento , empaquetamos las 7 funciones en una sola quedando
No hay comentarios:
Publicar un comentario