Vous êtes sur la page 1sur 39

Universidad de El Salvador Facultad de Ingeniera y Arquitectura Escuela de Ingeniera Elctrica Ciclo I/2012

Simulacin VHDL de circuitos MSI Gua No 2

CATEDRA: SISTEMAS DIGITALES I DOCENTE: ING. SALVADOR GERMAN AUTORES: MAGAA VSQUEZ, NGEL AROLDO MV02001 CRESPO LEIVA, ERICK ARMANDO CL03022

Ciudad Universitaria, 31 de Mayo de 2012

SIMULACION VHDL DE CIRCUITOS MSI

INDICE Portadai ndice..ii Introduccin..3 Objetivos.4 Marco Terico.5 Obtencin del Software....12 Pasos para la Instalacin del Software.12 Desarrollo de los Circuitos.16 Descripcin de los pasos para la obtencin de la solucin.16 Cdigo VHDL.19 Graficos de cada Circuito en TINA22 Capturas del funcionamiento del circuito en TINA.25

Resultados de la Investigacin..35 Observaciones37 Conclusiones38 Bibliografa39

Universidad de El Salvador

Pgina 2

SIMULACION VHDL DE CIRCUITOS MSI

INTRODUCCION En abril de 1949, el ingeniero alemn Werner Jacobi (Siemens AG) completa la primera solicitud de patente para circuitos integrados con dispositivos amplificadores de semiconductores. Jacobi realiz una tpica aplicacin industrial para su patente, la cual no fue registrada. Ms tarde, la integracin de circuitos fue conceptualizada por el cientfico de radares Geoffrey W.A. Dummer, que estaba trabajando para la Royal Radar Establishment del Ministerio de Defensa Britanico. El primer circuito integrado fue desarrollado en 1959 por el ingeniero Jack Kilby pocos meses despus de haber sido contratado por la firma Texas Instrument. Se trataba de un dispositivo de Germanio que integraba seis transistores en una misma base semiconductora para formar un oscilador electrnico de rotacin de fase. Los circuitos integrados se encuentran en todos los aparatos electrnicos modernos, como automviles, televisores, reproductores de CD, reproductores de MP3, telfonos mviles, computadoras, etc. El desarrollo de los circuitos integrados fue posible gracias a descubrimientos experimentales que demostraron que los semiconductores pueden realizar algunas de las funciones de las valvula termoinica. La integracin de grandes cantidades de diminutos transistores en pequeos chips fue un enorme avance sobre el ensamblaje manual de los tubos de vaco (vlvulas) y en la fabricacin de circuitos electrnicos utilizando componentes electronicos. Son tres las ventajas ms importantes que tienen los circuitos integrados sobre los circuitos electrnicos construidos con componentes discretos: su menor costo; su mayor eficiencia energtica y su reducido tamao. El bajo costo es debido a que los CI son fabricados siendo impresos como una sola pieza por fotolitografia a partir de una oblea electronica, generalmente de Silicio, permitiendo la produccin en cadena de grandes cantidades, con una muy baja tasa de defectos. La elevada eficiencia se debe a que, dada la miniaturizacin de todos sus componentes, el consumo de energa es considerablemente menor, a iguales condiciones de funcionamiento que un homlogo fabricado con componentes discretos. Finalmente, el ms notable atributo, es su reducido tamao en relacin a los circuitos discretos; para ilustrar esto: un circuito integrado puede contener desde miles hasta varios millones de transistores en unos pocos centmetros cuadrados. En ese momento (finales de los aos setenta) se constata el enorme desfase que existe entre tecnologa y diseo. La considerable complejidad de los chips que se pueden fabricar, implica unos riesgos y costes de diseo desmesurados e imposibles de asumir por las empresas. Es entonces, cuando diversos grupos de investigadores empiezan a crear y desarrollar los llamados "lenguajes de descripcin de hardware" cada uno con sus peculiaridades. Empresas tales como IBM con su IDL, el TI - HDL de Texas Instruments, ZEUS de General Electric, etc., as como los primeros prototipos empleados en las universidades, empezaron a desarrollarse buscando una solucin a los problemas que presentaba el diseo de los sistemas complejos. Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusin y consolidacin necesarios por motivos distintos. Unos, los industriales, por ser propiedad de la empresa permanecieron encerrados en ellas y no estuvieron disponibles para su estandarizacin y mayor difusin, los otros, los universitarios, perecieron por no disponer de soporte ni mantenimiento adecuado. Alrededor de 1981 el Departamento de Defensa de los Estados Unidos desarrolla un proyecto llamado VHSIC (Very High Speed Integrated Circuit ) su objetivo era rentabilizar las inversiones en hardware haciendo ms sencillo su mantenimiento. Se pretenda con ello resolver el problema de modificar el hardware diseado en un proyecto para

Universidad de El Salvador

Pgina 3

SIMULACION VHDL DE CIRCUITOS MSI

utilizarlo en otro, lo que no era posible hasta entonces porque no exista una herramienta adecuada que armonizase y normalizase dicha tarea, era el momento de los HDL's.

OBJETIVOS

OBJETIVO GENERAL Simular los principales circuitos digitales MSI mediante libreras VHDL

OBJETIVOS ESPECIFICOS

Utilizar la herramienta TINA para simular los circuitos MSI

Realizar el aprendizaje necesario para disear nuestros propios circuitos MSI

Comprender el funcionamiento bsico de los principales circuitos MSI

Realizar la programacin de circuitos MSI con VHDL

Universidad de El Salvador

Pgina 4

SIMULACION VHDL DE CIRCUITOS MSI

MARCO TEORICO

La lgica combinacional es probablemente la ms fcil de disear, ya que en cada momento las salidas de un circuito combinacional slo dependen del estado actual de sus entradas (el circuito no tiene memoria). En esta unidad se modelarn los circuitos combinacionales ms utilizados en el diseo lgico mediante el lenguaje de descripcin de hardware VHDL.
DISEO BASADO EN ELEMENTOS MSI Un circuito combinacional prctico puede tener docenas de entradas y salidas y puede requerir cientos, miles, e incluso millones de trminos para describir como una suma de productos, y miles y miles de millones de renglones para describir en una tabla de verdad. De este modo, la mayora de los problemas de diseo lgico combinacional reales son demasiado grandes para resolverse mediante la aplicacin de la fuerza bruta de tcnicas tericas. La clave del desarrollo de estos sistemas es el pensamiento estructurado. Un circuito o sistema complejo se concibe como una coleccin de subsistemas ms pequeos, cada uno de los cuales tiene una descripcin ms sencilla. Estos bloques combinacionales de construccin constituyen los ladrillos con los que se edifican los sistemas combinacionales. Uno de los bloques electrnicos ms importantes de este tipo lo constituyen los denominados elementos MSI (Medium Scale of Integration) combinacionales estudiados en la asignatura de Electrnica Digital: multiplexores, decodificadores, comparadores, sumadores y dems. Las estructuras ms importantes se describen en esta unidad desde una perspectiva de los lenguajes de descripcin de hardware, en concreto usando el lenguaje VHDL. DESCRIPCIN VHDL DE LGICA COMBINACIONAL Para describir circuitos combinacionales utilizaremos sentencias de asignacin concurrentes y procesos. Sentencias de asignacin concurrentes. Las sentencias de asignacin concurrentes van fuera de proceso. Esto se debe a que en una declaracin concurrente no importa el orden en que se escriban las seales, ya que el resultado para una determinada funcin sera el mismo. Se utilizarn tres tipos de sentencias de asignacin concurrentes: Sentencias de asignacin simples, por ejemplo: Y <= A and B; Sentencias de asignacin condicionales, por ejemplo: Z <= B when S = 1 else A; Sentencias de seleccin, por ejemplo: with S select C <= 1 when 00; 0 when others; Universidad de El Salvador Pgina 5

SIMULACION VHDL DE CIRCUITOS MSI

Siempre hay que evitar la realimentacin combinacional, ya que esto modela elementos de memoria asncronos. Es decir, hay que evitar que una misma seal aparezca en el lado izquierdo y en el lado derecho de la sentencia de asignacin: -- Evitar sentencias de este tipo: Y <= Y nand X; Procesos. Se debe respetar las siguientes reglas: Si una seal es leda en el interior de un proceso (aparece en el lado derecho de una sentencia de asignacin o en una condicin), debe aparecer en su lista de sensibilidad. Si a una seal se le asigna un valor de forma condicional (con sentencias if o case) nos debemos asegurar que no existen condiciones para las cuales el valor de la seal no se ha definido en el cdigo. En VHDL las seales mantienen su valor hasta que se les asigna uno nuevo; por lo tanto, si para una seal dada el valor de una seal est indefinido, el compilador sintetiza un latch (biestable) que almacena la seal. MULTIPLEXORES Un circuito multiplexor acepta N entradas y presenta una salida en la que aparecer el valor lgico asociado a una de estas entradas. La seleccin de cul de esas entradas es la que aparece en la salida se determina por un conjunto de M seales de control, cumplindose que N = 2M. La salida presentar aquella entrada cuyo ndice concuerda con el nmero codificado en binario en las lneas de control (o seleccin).
Ej_1: Multiplexor 4 a 1. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Multiplexor4a1 IS PORT ( svEntrada: IN std_logic_vector(3 DOWNTO 0); sSalida: OUT std_logic; svSeleccion: IN std_logic_vector(1 DOWNTO 0)); END Multiplexor4a1; ARCHITECTURE Multiplexor4a1Arch OF Multiplexor4a1 IS BEGIN WITH svSeleccion SELECT sSalida <= svEntrada(0) WHEN "00", svEntrada(1) WHEN "01", svEntrada(2) WHEN "10", svEntrada(3) WHEN OTHERS; -- Importante. No olvidar. END Multiplexor4a1Arch;

DECODIFICADORES Un decodificador es un circuito lgico con N entradas y 2N salidas que funciona de forma tal que en cada instante se encuentra activa la salida correspondiente con la codificacin binaria codificada en la entrada. Ej_2: Decodificador 3 a 8 con salida activa a nivel alto.
LIBRARY IEEE;

Universidad de El Salvador

Pgina 6

SIMULACION VHDL DE CIRCUITOS MSI

USE IEEE.STD_LOGIC_1164.ALL; ENTITY Decodificador3a8 IS PORT ( svEntrada: IN std_logic_vector(2 DOWNTO 0); svSalida: OUT std_logic_vector(7 DOWNTO 0)); END Decodificador3a8; ARCHITECTURE Decodificador3a8Arch OF Decodificador3a8 IS BEGIN WITH svEntrada SELECT -- Orden salidas: "76543210" svSalida <= "00000001" WHEN "000", "00000010" WHEN "001", "00000100" WHEN "010", "00001000" WHEN "011", "00010000" WHEN "100", "00100000" WHEN "101", "01000000" WHEN "110", "10000000" WHEN OTHERS; END Decodificador3a8Arch; Ej_3: Decodificador 3 a 8 con salida activa a nivel alto y con seal de enable (Versin Concurrente). LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Decodificador3a8En IS PORT ( svEntrada: IN std_logic_vector(2 DOWNTO 0); svSalida: OUT std_logic_vector(7 DOWNTO 0); sEnableH: IN std_logic); END Decodificador3a8En; ARCHITECTURE Decodificador3a8EnArch OF Decodificador3a8En IS --Seal auxiliar para una asignacin concurrente intermedia. signal svAux: std_logic_vector(7 DOWNTO 0); BEGIN --Asignacin del valor temporal WITH svEntrada SELECT -- "76543210" svAux <= "00000001" WHEN "000", "00000010" WHEN "001", "00000100" WHEN "010", "00001000" WHEN "011", "00010000" WHEN "100", "00100000" WHEN "101", "01000000" WHEN "110", "10000000" WHEN OTHERS; --Asignacin a la salida en funcin de la seal de ENABLE. svSalida <= svAux WHEN sEnableH = '1' ELSE "00000000"; END Decodificador3a8EnArch;

Ej_4: Decodificador 3 a 8 con salida activa a nivel alto y con seal de enable (Versin Secuencial).
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Decodificador3a8En IS PORT ( svEntrada: IN std_logic_vector(2 DOWNTO 0); svSalida: OUT std_logic_vector(7 DOWNTO 0); sEnableH: IN std_logic); END Decodificador3a8En; ARCHITECTURE Decodificador3a8EnArch2 OF Decodificador3a8En IS BEGIN DecEnable: PROCESS (svEntrada, sEnableH) BEGIN -- Definicin del proceso de forma secuencial (estructura IF..ELSE).

Universidad de El Salvador

Pgina 7

SIMULACION VHDL DE CIRCUITOS MSI

IF (sEnableH='1') THEN CASE svEntrada IS WHEN "000" => svSalida <= "00000001"; WHEN "001" => svSalida <= "00000010"; WHEN "010" => svSalida <= "00000100"; WHEN "011" => svSalida <= "00001000"; WHEN "100" => svSalida <= "00010000"; WHEN "101" => svSalida <= "00100000"; WHEN "110" => svSalida <= "01000000"; WHEN OTHERS => svSalida <= "10000000"; END CASE; ELSE svSalida <= "00000000"; END IF; END PROCESS DecEnable; END Decodificador3a8EnArch2;

Ej_5: Decodificador BCD a display de 7 segmentos (nodo Comn). nodo comn Cada segmento se enciende con 0. Ctodo comn Cada segmento se enciende con 1.
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DecodificadorBCD7seg IS PORT ( svEntrada: IN std_logic_vector(3 DOWNTO 0); svSalida: OUT std_logic_vector(6 DOWNTO 0)); END DecodificadorBCD7seg; ARCHITECTURE DecodificadorBCD7segArch OF DecodificadorBCD7seg IS BEGIN Dec7seg: PROCESS (svEntrada) BEGIN CASE svEntrada IS -- Orden de las salidas (segmentos) abcdefg WHEN "0000" => svSalida <= "0000001"; WHEN "0001" => svSalida <= "1001111"; WHEN "0010" => svSalida <= "0010010"; WHEN "0011" => svSalida <= "0000110"; WHEN "0100" => svSalida <= "1001100"; WHEN "0101" => svSalida <= "0100100"; WHEN "0110" => svSalida <= "0100000"; WHEN "0111" => svSalida <= "0001110"; WHEN "1000" => svSalida <= "0000000"; WHEN "1001" => svSalida <= "0000100"; WHEN OTHERS => svSalida <= "1111111"; END CASE; END PROCESS Dec7seg; END DecodificadorBCD7segArch;

CODIFICADORES Un codificador es un circuito lgico con 2N entradas y N salidas que funciona de forma tal que en cada instante se encuentra codificado en binario en la salida el nmero decimal correspondiente a la entrada activa. Es necesario establecer una prioridad para los casos en los que sean varias las entradas activas en un momento determinado. Ej_6: Codificador 8 a 3.

Universidad de El Salvador

Pgina 8

SIMULACION VHDL DE CIRCUITOS MSI

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Codificador8a3 IS -- El uso de un rango clarifica el cdigo. PORT ( iEntrada: IN INTEGER RANGE 0 TO 7; svSalida: OUT std_logic_vector(2 DOWNTO 0)); END Codificador8a3; ARCHITECTURE Codificador8a3Arch OF Codificador8a3 IS BEGIN Codif: PROCESS (iEntrada) BEGIN -- El uso de una estructura tipo IF_THEN_ELSE -- permite establecer de forma clara la prioridad -- del proceso de codificacin. IF iEntrada = 0 THEN svSalida <= "000"; ELSIF iEntrada = 1 THEN svSalida <= "001"; ELSIF iEntrada = 2 THEN svSalida <= "010"; ELSIF iEntrada = 3 THEN svSalida <= "011"; ELSIF iEntrada = 4 THEN svSalida <= "100"; ELSIF iEntrada = 5 THEN svSalida <= "101"; ELSIF iEntrada = 6 THEN svSalida <= "110"; ELSE svSalida <= "111"; END IF; END PROCESS; END Codificador8a3Arch;

Ej_7: Codificador 8 a 3. Uso de la macro NULL. VHDL93 soporta la macro NULL, la cual permite dar an ms claridad a la descripcin de funcionamiento de los elementos modelados en VHDL.
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Codificador8a3 IS -- El uso de un rango clarifica el cdigo. PORT ( iEntrada: IN INTEGER RANGE 0 TO 7; svSalida: OUT std_logic_vector(2 DOWNTO 0)); END Codificador8a3; ARCHITECTURE Codificador8a3Arch OF Codificador8a3 IS BEGIN Codif: PROCESS (iEntrada) BEGIN -- El uso de una estructura tipo IF_THEN_ELSE -- permite establecer de forma clara la prioridad -- del proceso de decodificacin. IF iEntrada = 0 THEN svSalida <= "000"; ELSIF iEntrada = 1 THEN svSalida <= "001"; ELSIF iEntrada = 2 THEN svSalida <= "010"; ELSIF iEntrada = 3 THEN svSalida <= "011"; ELSIF iEntrada = 4 THEN svSalida <= "100"; ELSIF iEntrada = 5 THEN svSalida <= "101"; ELSIF iEntrada = 6 THEN svSalida <= "110"; ELSIF iEntrada = 7 THEN svSalida <= "111"; ELSE NULL; -- La sentencia ELSE NULL; indica de forma clara que ante otras posibles -- valores no controlados asociados a la entrada, el circuito no har nada. -- Suele ser muy til con el tipo std_logic, donde valores como Z, H, L, U -- contemplados por este tipo podran originar comportamientos extraos. END IF; END PROCESS; END Codificador8a3Arch;

Universidad de El Salvador

Pgina 9

SIMULACION VHDL DE CIRCUITOS MSI

DISPOSITIVOS TRIESTADO Los dispositivos triestado bsicamente consisten en componentes bsicos combinacionales que presentan una seal adicional que permite controlar la salida, de forma que sta presente un funcionamiento en condiciones normales o pase a un estado adicional de alta impedancia Z, de forma que no interfiera elctricamente con otros elementos que podran compartir la ruta de datos conectada a su salida. TIPOS DE DESCRIPCION Como se ha dicho antes, VHDL sirve para describir un circuito electrnico, pero el mismo circuito puede ser descrito de varias formas. Las formas de hacerlo son:

Descripcin de comportamiento Descripcin de flujo de datos (RTL Registred Transfer Level) Descripcin estructural

A continuacin se presenta una descripcin de cada tipo de descripcin y un ejemplo en VHDL, obviamente an no se ha visto la sintaxis de VHDL por lo que habr partes del cdigo que el lector no pueda entender. El cdigo se pone slo para poder comparar las distintas formas de descripcin. Los tres ejemplos de cdigo son slo las arquitecturas, los tres podran tener como entidad:

ENTITY mux PORT(control, entrada1, entrada2: IN BIT; salida: OUT BIT); END mux;

DESCRIPCION DE COMPORTAMIENTO Una descripcin de comportamiento de un multiplexor de dos entradas, una salida y una seal de seleccin sera: la salida ser igual a la primera entrada si la seal de control est desactivada y la salida ser la segunda entrada si la seal de control est activada. En VHDL la arquitectura de este multiplexor para la entidad llamada mux sera:

ARCHITECTURE mux_comportamiento OF mux IS BEGIN PROCESS(entrada1, entrada2, control) BEGIN IF(control = '0') THEN salida <= entrada1; ELSE salida <= entrada2; END IF; Universidad de El Salvador Pgina 10

SIMULACION VHDL DE CIRCUITOS MSI

END PROCESS; END mux_comportamiento;

DESCRIPCION DE FLUJO DE DATOS En una descripcin de flujo de datos del mismo multiplexor la salida sera la ecuacin lgica: s=(entrada1 AND NOT control) OR (entrada2 AND control) En VHDL la arquitectura sera:

ARCHITECTURE mux_rtl OF mux IS SIGNAL int1, int2, int3 : BIT; BEGIN int1 <= NOT control; int2 <= entrada1 AND int1; int3 <= entrada2 AND control; salida <= int2 OR int3; END mux_rtl;

Esta descripcin hay varias instrucciones concurrentes, por lo que son ejecutadas cada vez que una seal interviene en su asignacin. Realmente, se trata casi de una descripcin estructural, puesto que se estn describiendo seales y sus componentes. Aunque tambin son asignaciones a seales y no una lista de componentes y sus conexiones. En el siguiente ejemplo se muestra una descripcin de flujo de datos pura.

ARCHITECTURE mux_rtl OF mux IS BEGIN salida <= entrada1 WHEN control = '0' ELSE entrada2; END mux_rtl;

DESCRIPCION ESTRUCTURAL Una descripcin estructural consistira en decir que el circuito tiene una puerta inversora U1, dos puertas AND de dos entradas U2 y U3 y una puerta lgica OR de dos entradas U4, adems tambin describe las conexiones entre estas puertas, un ejemplo sera: la entrada de U1 es la seal de control, la salida de U1 se conecta a la segunda entrada de U2, la primera entrada de U1 es entrada1, etc. El cdigo VHDL sera:

ARCHITECTURE mux_estructural OF mux IS Universidad de El Salvador Pgina 11

SIMULACION VHDL DE CIRCUITOS MSI

SIGNALl int1, int2,int3:bit; BEGIN U1: inversor PORT MAP(control, int1); U2: and_2_entradas PORT MAP(entrada1, int1, int2); U3: and_2_entradas PORT MAP(entrada2, control, int3); U4: or_2_entradas PORT MAP(int2, int3, salida); END mux_estructural;

En el cdigo anterior se deberan haber definido previamente las puertas inversor, and_2_entradas y or_2_entradas OBTENCION DEL SOFTWARE DE SIMULACION TINA

http://www.mediafire.com/?w2e2g9cqrv8pmoa

Descomprimimos el archivo.rar en una carpeta de nombre: DesignSoft Tina Industrial V8, abrimos y ejecutamos el archivo .exe

Universidad de El Salvador

Pgina 12

SIMULACION VHDL DE CIRCUITOS MSI

Aparecer el asistente para la instalacin

Universidad de El Salvador

Pgina 13

SIMULACION VHDL DE CIRCUITOS MSI

Luego de finalizar la instalacin, volvemos a la carpeta DesignSoft Tina Industrial V8.0 y abrimos la carpeta crack y le damos COPIAR al archivo PCB_Key.exe

Lo PEGAMOS en la carpeta raz de Tina que es C:\DesignSoft\Tina-8 Industrial

Universidad de El Salvador

Pgina 14

SIMULACION VHDL DE CIRCUITOS MSI

Lo ejecutamos, vamos a ayuda ->autorizacin ->autorizar ->otros y rellenamos el cuadro de texto SITEKEY con 0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-0000-00, le damos OK y tendremos activada la licencia. Cerramos el PCB_Key.exe Iniciamos Tina

Universidad de El Salvador

Pgina 15

SIMULACION VHDL DE CIRCUITOS MSI

DESARROLLO DE LOS CIRCUITOS: Pasos para la solucin ejercicio 3:

Ir a la barra de MENU opcin TOOLS, luego en el submen elegir New Macro Wizard; En la ventana emergente colocamos el nombre del elemento que deseamos crear, solo dejamos la casilla de verificacin AUTOGENERATED, entendindose que las dems debern de quedar sin marcar; colocamos el mismo nombre en DEFAULT LABEL, para cargar el vhd respectivo damos clic en el botn a la derecha de CONTENT, buscamos el archivo correspondiente .vhd ACEPTAR A continuacin, aparecer otra ventana emergente donde guardaremos el archivo con el mismo nombre pero con la extensin .TSM

Universidad de El Salvador

Pgina 16

SIMULACION VHDL DE CIRCUITOS MSI

Ahora vamos de nuevo a la barra de MENU->INSERT->MACRO

Elegimos el elemento que deseamos aplicar, del conjunto de archivos .TSM y luego ACEPTAR

Universidad de El Salvador

Pgina 17

SIMULACION VHDL DE CIRCUITOS MSI

Cuando tenemos los diferentes tipos de elementos MSI que integraran nuestro circuito, podemos copiarlo y pegarlo las veces que lo necesitemos, en el ejemplo puede observarse que tanto el FULL ADDER como el MUX_2a1, se necesitan 4 veces cada uno para obtener el circuito deseado

Universidad de El Salvador

Pgina 18

SIMULACION VHDL DE CIRCUITOS MSI

Luego insertamos los SWITCHES necesarios, realizamos las conexiones pertinentes con la herramienta WIRE, si fuere necesario, incluir compuertas bsicas como en este caso se utiliza de la barra de herramientas GATES->INVERTER o cualesquiera que se consideren para cada caso CODIGOS .VHD EJERCICIO 1 DECODER 3 A 8
library IEEE; use IEEE.STD_LOGIC_1164.all; entity DECODER is port( A : in STD_LOGIC; B : in STD_LOGIC; C : in STD_LOGIC; Y : out STD_LOGIC_VECTOR (7 downto 0) ); end DECODER; architecture DECODER1 of DECODER is signal ABC : STD_LOGIC_VECTOR (2 downto 0) ; begin ABC <= A & B & C ; with ABC select Y <= "00000001" when "000", "00000010" when "001", "00000100" when "010", "00001000" when "011", "00010000" when "100", "00100000" when "101", "01000000" when "110", "10000000" when others ; end DECODER1;

CODER 8 A 3

library IEEE; use IEEE.STD_LOGIC_1164.all; entity CODER_8A3 is port( A : in STD_LOGIC; B : in STD_LOGIC; C : in STD_LOGIC; D : in STD_LOGIC; E : in STD_LOGIC; F : in STD_LOGIC; G : in STD_LOGIC; H : in STD_LOGIC; Y : out STD_LOGIC_VECTOR (2 downto 0) );

Universidad de El Salvador

Pgina 19

SIMULACION VHDL DE CIRCUITOS MSI

end CODER8A3; architecture CODER_8A3 of CODER8A3 is signal ABCDEFGH : STD_LOGIC_VECTOR (7 downto 0) ; begin ABCDEFGH <= A & B & C & D & E & F & G & H ; with ABCDEFGH select Y <= "111" when "10000000", "110" when "01000000", "101" when "00100000", "100" when "00010000", "011" when "00001000", "010" when "00000100", "001" when "00000010", "000" when others ; end CODER_8A3;

CODIGO MUX 2 A 1 DE UN BIT


ENTITY mux_2a1 IS PORT( A, B, S: IN BIT; X: OUT BIT); END mux_2a1; ARCHITECTURE arch_mux OF mux_2a1 IS BEGIN X <= (((NOT S) AND A) OR (S AND B)); END arch_mux;

CODIGO FULL ADDER


ENTITY full_adder IS PORT( A, B, Cin: IN BIT; SUM,Cout: OUT BIT); END full_adder; ARCHITECTURE arch_adder OF full_adder IS BEGIN SUM <= (NOT A AND NOT B AND Cin) OR (NOT A AND B AND NOT Cin) OR (A AND NOT B AND NOT Cin) OR (A AND B AND Cin); Cout <= (NOT A AND B AND Cin) OR (A AND NOT B AND Cin) OR (A AND B AND NOT Cin) OR (A AND B AND Cin); END arch_adder;

DEMULTIPLEXOR 2 A 4 CON 2 VARIABLES DE SELECCIN


library IEEE; use IEEE.STD_LOGIC_1164.all; entity DEMUX is port( S1 : in STD_LOGIC; S2 : in STD_LOGIC; X : in STD_LOGIC; Y : out STD_LOGIC_vector(3 downto 0) );

Universidad de El Salvador

Pgina 20

SIMULACION VHDL DE CIRCUITOS MSI

end DEMUX; architecture DEMUXF of DEMUX is signal S1S2 : STD_LOGIC_VECTOR (1 downto 0) ; begin S1S2 <= S1 & S2 ; process (S1,S2, X) begin case S1S2 is when "00" => Y(0) <= X; Y(1) <= '0'; Y(2) <= '0'; Y(3) <= '0'; when "01" => Y(0) <= '0'; Y(1) <= X; Y(2) <= '0'; Y(3) <= '0'; when "10" => Y(0) <= '0'; Y(1) <= '0'; Y(2) <= X; Y(3) <= '0'; when "11" => Y(0) <= '0'; Y(1) <= '0'; Y(2) <= '0'; Y(3) <= X; when others => Y(0) <= '0'; Y(1) <= '0'; Y(2) <= '0'; Y(3) <= '0'; end case; end process; end DEMUXF; MUX DE 2 A 1 DE 4 BITS use IEEE.STD_LOGIC_1164.all; entity MUX2A1 is port( X1 : in STD_LOGIC; X2 : in STD_LOGIC; S : in STD_LOGIC; Y : out STD_LOGIC ); end MUX2A1; architecture MUX2A1A of MUX2A1 is begin Y <= X1 when S = '1' else X2; end MUX2A1A;

Se utilizo el cdigo del MUX de 2 a 1 de un bit y se utilizo conexiones en cascada para su implementacion EJERCICIO 2 NO SE UTILIZO CODIGO VHDL EJERCICIO 3
ENTITY full_adder IS PORT( A, B, Cin: IN BIT; SUM,Cout: OUT BIT); END full_adder;

Universidad de El Salvador

Pgina 21

SIMULACION VHDL DE CIRCUITOS MSI

ARCHITECTURE arch_adder OF full_adder IS BEGIN SUM <= (NOT A AND NOT B AND Cin) OR (NOT A AND B AND NOT Cin) OR (A AND NOT B AND NOT Cin) OR (A AND B AND Cin); Cout <= (NOT A AND B AND Cin) OR (A AND NOT B AND Cin) OR (A AND B AND NOT Cin) OR (A AND B AND Cin); END arch_adder; Para la implementacin se utilizaron Sumadores Totales conectados en paralelo y compuertas basicas

GRAFICOS DE CADA CIRCUITO EN TINA DECODER 3 A 8

CODER 8 A 3

Universidad de El Salvador

Pgina 22

SIMULACION VHDL DE CIRCUITOS MSI

MULTIPLEXOR DE 2 A 1

DEMULTIPLEXOR DE 1 A 4

Universidad de El Salvador

Pgina 23

SIMULACION VHDL DE CIRCUITOS MSI

FULL ADDER

MULTIPLEXOR 2 A 1 DE 4 BITS

Universidad de El Salvador

Pgina 24

SIMULACION VHDL DE CIRCUITOS MSI

CAPTURAS DEL FUNCIONAMIENTO DE LOS CIRCUITOS


EJERCICIO 1 DECODER 3 A 8

Universidad de El Salvador

Pgina 25

SIMULACION VHDL DE CIRCUITOS MSI

Universidad de El Salvador

Pgina 26

SIMULACION VHDL DE CIRCUITOS MSI

CODER 8 A 3

Universidad de El Salvador

Pgina 27

SIMULACION VHDL DE CIRCUITOS MSI

MUX 2 A 1 DE UN BIT

Universidad de El Salvador

Pgina 28

SIMULACION VHDL DE CIRCUITOS MSI

DEMULTIPLEXOR DE DOS VARIABLES DE SELECCIN

Universidad de El Salvador

Pgina 29

SIMULACION VHDL DE CIRCUITOS MSI

FULL ADDER

Universidad de El Salvador

Pgina 30

SIMULACION VHDL DE CIRCUITOS MSI

MUX DE 2 A 1 DE 4 BITS

Universidad de El Salvador

Pgina 31

SIMULACION VHDL DE CIRCUITOS MSI

EJERCICIO 2

Universidad de El Salvador

Pgina 32

SIMULACION VHDL DE CIRCUITOS MSI

EJERCICIO 3

Universidad de El Salvador

Pgina 33

SIMULACION VHDL DE CIRCUITOS MSI

Universidad de El Salvador

Pgina 34

SIMULACION VHDL DE CIRCUITOS MSI

RESULTADOS DE LA INVESTIGACION Bibliotecas Una biblioteca en VHDL es un lugar en donde se guarda la informacin relacionada con un diseo determinado. Al comienzo de cada diseo el compilador crea automticamente una biblioteca llamada WORK con este objetivo. Adems de esta biblioteca particular existen otras bibliotecas de tipo general que contienen un conjunto de definiciones que pueden utilizarse en cualquier diseo. Un ejemplo de biblioteca general es la llamada Library IEEE, que contiene definiciones estndar para VHDL. Para utilizar una biblioteca general es necesario escribir su nombre al inicio del programa, por eso es muy comn que en la primera lnea de un diseo en VHDL aparezca escrito "Library IEEE", de sta forma dicha biblioteca se hace visible para el diseo. Paquetes En los paquetes se guardan definiciones de tipos y objetos que pueden ser utilizados en los diferentes diseos que invoquen su utilizacin. Un paquete muy utilizado es el paquete estndar IEEE_STD_LOGIC_1164.ALL; La utilizacin de un paquete en un diseo se realiza invocando su empleo mediante la clusula USE y el nombre del paquete. Por ejemplo USE IEEE_STD_LOGIC_1164.ALL; La terminacin ALL, permite utilizar todas las definiciones y objetos que contiene dicho paquete. Adems del estndar, existen otros paquetes de utilizacin general y tambin los diseadores que trabajan con VHDL pueden definir sus propios paquetes, lo que les permite reutilizar diseos realizados anteriormente como parte de nuevos diseos. Sintaxis para la definicin de paquetes. La sintaxis para la definicin de un paquete es la siguiente: PACKAGE nombre_paquete IS Declaracin de tipos Declaracin de seales. Declaracin de constantes Declaracin de componentes Definicin de funciones Definicin de procedimientos END nombre_paquete PACKAGE BODY nombre_paquete IS Declaracin de tipos Declaracin de constantes Definicin de funciones Definicin de procedimientos END nombre_paquete Esta ltima parte que aparece entre los dos END, la relacionada con el cuerpo del paquete puede o no existir y en el caso de existir las declaraciones y definiciones contenidos en la misma son

Universidad de El Salvador

Pgina 35

SIMULACION VHDL DE CIRCUITOS MSI

locales, visibles solo dentro del paquete, mientras que las declaraciones y definiciones contenidas en la primera parte del paquete son visibles para todos los diseos que los utilicen. Sintaxis para la declaracin de una componente en VHDL COMPONENT nombre_componente PORT ( Nombre de seal: modo tipo de seal; ... Nombre de seal: modo tipo de seal); END COMPONENT; Extensin (Overload) de los operadores en VHDL La validez de los operadores dados anteriormente se ha extendido a otros tipos para los que no estaban originalmente definidos. Por ejemplo el paquete estndar IEEE.Std_Logic_1164 define la extensin de los operadores lgicos para los tipos std_logic y Std_logic_Vector. Sin embargo la extensin de los operadores de relacin y aritmticos para los tipos std_logic y std_logic_vector no estn definidos en el paquete standard sino en otro paquete llamado Work_Std_arith. DISEO JERARQUICO EN VHDL En VHDL un diseo puede utilizar componentes que son a su vez otros circuitos o sistemas ms sencillos previamente diseados. Esto constituye una gran ventaja pues facilita el trabajo en equipo y la distribucin de tareas entre distintos grupos de diseadores. A medida que se sube hacia el nivel de jerarqua mxima la arquitectura se hace ms general mientras que en los niveles inferiores el grado de detalles es mayor. Librerias Las principales libreras VHDL son las siguientes:

STD: Contiene los paquetes standard y texto. Work: Es la librera donde se almacenan por defecto las unidades de diseo una vez compiladas. IEEE: Contiene paquetes para tipos std_logic, unsigned, paquetes aritmticos, etc. Las proporciona la propia herramienta de desarrollo. Synopsys: Define los operadores y vectores derivados de IEEE. Vital: Librera para soporte de simulacin a nivel de puertas. Las proporciona la propia herramienta de diseo. LIBRERIA
STD

PACKGE
Standard

DESCRIPCION
Define los tipos y subtipos bsicos de VHDL: boolean, bit, bit_vector, character, string, integer, real, time, etc. Define tipo de datos como line y text y procedimientos de lectura y escritura en archivos. Librera por defecto donde se almacenan las unidades de diseo del usuario. Define los tipos std_logic y std_logic_vector.

STD WORK IEEE

textio

Std_logic_1164

Universidad de El Salvador

Pgina 36

SIMULACION VHDL DE CIRCUITOS MSI

IEEE

Numeric_std

IEEE IEEE IEEE IEEE IEEE SYNOPSYS SYNOPSYS

Std_logic_arith Std_logic_signed Std_logic_textio numeric_bit numeric_std std_logic_unsigned std_logic_misc

Define los tipos signed y unsigned y operaciones aritmticas entre Ellos Define los tipos signed y unsigned y operaciones aritmticas entre ellos. Define operaciones aritmticas con signo, operaciones de conversin y comparacin para std_logic_vector. Define operaciones aritmticas sin signo, operaciones de conversin Y comparacin para std_logic_vector. Define tipos de datos y procedimientos de lectura y escritura de archivos para std_logic y std_logic_vector. Define funciones extendidas y de conversin para dichos tipos. Paquete equivalente al Paquete std_logic_arith. Define operadores aritmticos sobre el tipo std_ulogic_vector y los considera como operadores no-signados. Define tipos, subtipos, constantes y funciones complementarios para el paquete std_logic_1164.

OBSERVACIONES El lenguaje VHDL, se caracteriza por la similitud con otros editores mayormente difundidos o de gran comercializacin, como c o c++, adems se destaca la caracterstica principal que puede ser exportado en muchos editores como TINA, para el modelo de circuitos de mayor complejidad

La versatilidad que ofrece TINA, en cuanto a la facilidad que ofrece su simulador para la creacin de circuitos que contienen el mismo elemento un sin nmero de veces, bastara con insertar la macro una vez, para disponer de ella simplemente copiando y pegando cuantas veces fuere necesario

La creacin o diseo de circuitos, resulta muy fcil en TINA, este brinda las herramientas adecuadas en un estilo y formato muy legible para todo tipo de usuarios, esto significa que tanto diseadores profesionales como principiantes, encuentran muy favorable el desarrollo en esta plataforma industrial

Universidad de El Salvador

Pgina 37

SIMULACION VHDL DE CIRCUITOS MSI

CONCLUSIONES

En cuanto al desarrollo de la investigacin y en base a los objetivos definidos para la realizacin de esta podemos concluir que:

El uso de las libreras VHDL, permiten la creacin de circuitos MSI de gran complejidad, ya que estas ofrecen funciones predefinidas que simplemente han de cargarse para su uso

El Software de diseo Tina, permite gracias a su versatilidad, no solo la creacin de cdigos vhdl, sino tambin la simulacin respectiva en un ambiente grafico que nos ofrece gran calidad

Diversos manuales inyectan una documentacin de gran profundidad, si se quiere ser un desarrollador mas experto en la creacin de cdigo VHDL

La simulacin de los circuitos nos permiti realizar las pruebas necesarias, ajustando los valores a diversos escenarios, que necesariamente se identificaran con los aspectos de un ambiente real

El desarrollo de diferentes elementos MSI en TINA, permite al estudiante observar de forma ms cercana, las operaciones que diferencian a cada elemento MSI, atendiendo con particularidad cada caracterstica que los desenvuelve en su desempeo

La obtencin del software para efectos estudiantiles no est considerada por los desarrolladores de TINA,

Universidad de El Salvador

Pgina 38

SIMULACION VHDL DE CIRCUITOS MSI

BIBLIOGRAFIA

http://www.cannic.uab.es/docencia/vhdli06/Capitol5/Cap5_a.htm

http://es.wikipedia.org/wiki/Paquetes VHDL

Digital Principles Switching Theory, A.K. Singh, Arun Prakash

Circuitos combinacionales y puertas lgicas; Luis Corcoles, Jos Torre, Universidad Rey Juan Carlos

Diseo de Sistemas Combinacionales Con VHDL; Andrs Iborra

Nelson, Vctor P; Anlisis y Diseo de Circuitos Lgicos Digitales, Prentice-Hall, Mxico 1996

Universidad de El Salvador

Pgina 39

Vous aimerez peut-être aussi