Sie sind auf Seite 1von 33

UNIVERSIDAD DE EL SALVADOR.

FACULTA DE INGENIERÍA Y ARQUITECTURA.


ESCUELA DE INGENIERÍA ELÉCTRICA
SISTEMAS DIGITALES I
CICLO 01 - 2018

GUÍA NO. 3: Simulación VHDL de circuitos MSI

INTEGRANTES:
APELLIDOS NOMBRES CARNÉ
Vásquez Lara Marvin Josué VL16001
Mendoza Guardado David Edgardo MG16014

DOCENTE:

Ing. Salvador German.

INSTRUCTORES:

Br. Arturo José Martínez Medrano.

Br. Ronald Josué Garcia Avilés.

CIUDAD UNIVERSITARIA, 21 DE MAYO DE 2018

1
2
INDICE

Contenido
INDICE .............................................................................................. 3
OBJETIVOS ........................................................................................ 4
Objetivo General: ............................................................................ 4
Objetivos Específicos: ....................................................................... 4
INTRODUCCIÓN ................................................................................. 5
MARCO TEÓRICO ................................................................................ 6
DESARROLLO DE LOS CIRCUITOS: ...................................................... 13
ASIGNACIÓN 1 .................................................................................. 13
ASIGNACIÓN 2 .................................................................................. 25
ASIGNACIÓN 3 .................................................................................. 27
DESARROLLO DE LAS PREGUNTAS DE INVESTIGACIÓN. ......................... 30
CONCLUSIONES. ............................................................................... 32
BIBLIOGRAFÍA. ................................................................................. 33

3
OBJETIVOS

Objetivo General:
 Simular y programar en TINA y en lenguaje VHDL respectivamente distintos circuitos
combinacionales.

Objetivos Específicos:
 Reforzar conocimientos obtenidos sobre el lenguaje de programación VHDL en
el transcurso de la materia.

 Manejar y utilizar la herramienta llamada TINA para simular circuitos y verificar


el correcto funcionamiento del código escrito en VHDL para dicho circuito.

 Programar multiplexores, demultiplexores, sumadores, restadores,


codificadores, decodificadores y realizar las conexiones de los circuitos en las
simulaciones respectivas.

 Aplicar los conocimientos obtenidos en las clases teóricas para la realización de


las asignaciones.

4
INTRODUCCIÓN

Por medio de este reporte queremos dar a conocer el Programa TINA el cual nos sirve
para representar gráficamente, simulando distintos circuitos combinacionales, tales
como sumadores, convertidores de códigos BCD, restadores, codificadores,
decodificadores, multiplexores y demultiplexores.

Realizando una investigación sobre todos estos distintos circuitos combinacionales nos
damos cuenta de su importancia y su aplicación en las distintas áreas tecnológicas
actuales como por ejemplo la aplicación de los multiplexores en las telecomunicaciones,
al igual que los convertidores de códigos por ejemplo en los teclados de computadoras
se usan codificadores para pasar unos y ceros a su respectivo código en ASCII y obtener
finalmente en nuestras pantallas la A,B,C entre otros caracteres.

Nos damos cuenta también de la importancia de un sumador que es un circuito digital


que realiza la adición de números. En muchas computadoras y otros tipos de
procesadores se utilizan sumadores en las ALU. También se utilizan en otras partes del
procesador, donde se utilizan para calcular direcciones, índices de tablas, operadores de
incremento y decremento y operaciones similares.

5
MARCO TEÓRICO
Codificadores
Un codificador es un circuito combinacional con un conjunto de entradas (2N) y un
número de salidas N cuyo propósito es mostrar en la salida el código binario
correspondiente a la entrada activada.

Codificador binario
Por ejemplo, un codificador de 4 entradas X0, X1, X2, X3 y 2 salidas S0, S1. Si se activa la
entrada X0 mediante la introducción de un 1, el código mostrado a la salida será
S0S1=00. Y así para el resto de las entradas: X1 activará una salida 01, X2 activará una
salida 10 y X3 activará una salida 11. Obsérvese que el valor en binario de la salida en su
conjunto 00, 01,10, 11 es igual al número decimal de la entrada activada 0,1,2,3 que
acompaña a la letra ‘X’.
Las funciones algebraicas de un codificador se pueden deducir a partir de su
funcionamiento. Por ejemplo, en el caso de que se disponga de un codificador de 4
entradas (y dos salidas) éstas serán:
S0 = X1 + X3
S1 = X0 + X2
Para ello, se ha tenido en cuenta que la salida S0 sólo vale 1 para los valores 1 y 3 (en
decimal) o 01 y 11 (en binario). La salida S1 sólo vale 1 para los valores 2 y 3 (en
decimal) o 10 y 11 (en binario).
Para obtener estas funciones se ha considerado que nunca va a producirse una
combinación a la entrada que tenga más de un 1 y por lo tanto, no importa el valor que
produce a la salida esa situación. Todo ello lo podríamos resumir en la siguiente tabla
de verdad resumida en la que sólo se han puesto 4 combinaciones de las 24=16 posibles.
Las celdas sombreadas en azul son las salidas.
X3 X2 X1 X0 S1 S0
0 0 0 1 0 0

0 0 1 0 0 1

0 1 0 0 1 0

1 0 0 0 1 1
Si en algún momento se activarán más de una entrada, la salida no estaría definida, es
decir, no se puede saber a priori qué valor se obtendría. Dependiendo de cómo se haya
diseñado puede haber variaciones entre unos dispositivos y otros.

Decodificadores
Los decodificadores efectúan la operación inversa de los codificadores. Disponen de un
conjunto N de entradas y un conjunto 2N de salidas. Cuando aparece un código binario

6
a la entrada, se activa (tiene un 1) la salida identificada con el número decimal
equivalente.

Decodificador binario de 3 a 8.

En el siguiente ejemplo, se plantea un codificador de 2 a 4, que tiene la siguiente tabla


de verdad (las celdas sombreadas en azul son las salidas):

E1 E0 Z3 Z2 Z1 Z0
0 0 0 0 0 1

0 1 0 0 1 0

1 0 0 1 0 0

1 1 1 0 0 0

En esta tabla se disponen dos entradas E1, E0 y 4 salidas Z3, Z2, Z1 y Z0. Se activará un
1 en la salida correspondiente al código introducido en la entrada.
Las funciones de salida son bastante sencillas de obtener a partir de esta tabla de
verdad:
Z3 = E1·E0
Z2 = E1·E0′
Z1 = E1’·E0
Z0 = E1’·E0′
Se puede considerar que la función de estos dispositivos es la de generar
los 2N mintérminos de las “N” variables de entrada. Esta visión es muy interesante
porque pueden ser utilizados para la implementación de cualquier función
algebraica del mismo número de variables.

Multiplexores y Demultiplexores
Los multiplexores son circuitos combinacionales con varias entradas y una única salida
de datos. Están dotados de entradas de control capaces de seleccionar una, y sólo una,
de las entradas de datos para permitir su transmisión desde la entrada seleccionada
hacia dicha salida.
En el campo de la electrónica el multiplexor se utiliza como dispositivo que puede recibir
varias entradas y transmitirlas por un medio de transmisión compartido. Para ello lo que

7
hace es dividir el medio de transmisión en múltiples canales, para que varios nodos
puedan comunicarse al mismo tiempo.
Una señal que está multiplexada debe demultiplexarse en el otro extremo.
Según la forma en que se realice esta división del medio de transmisión, existen varias
clases de multiplexación:
Multiplexación por división de frecuencia
Multiplexación por división de tiempo
Multiplexación por división de código
Multiplexación por división de longitud de onda

En electrónica digital, un demultiplexor es un circuito combinacional que tiene una


entrada de información de datos d y n entradas de control que sirven para seleccionar
una de las 2n salidas, por la que ha de salir el dato que presente en la entrada. Esto se
consigue aplicando a las entradas de control la combinación binaria correspondiente a
la salida que se desea seleccionar. Por ejemplo, si queremos que la información que
tenemos en la entrada d, salga por la salida S4, en la entrada de control se ha de poner,
de acuerdo con el peso de la misma, el valor 100, que es el 4 en binario.
En el campo de las telecomunicaciones el demultiplexor es un dispositivo que puede
recibir a través de un medio de transmisión compartido una señal
compleja multiplexada y separar las distintas señales integrantes de la misma
encaminándolas a las salidas correspondientes.
La señal compleja puede ser tanto analógica como digital y estar multiplexada en
cualquiera de las distintas formas posibles para cada una de ellas.

Diagrama lógico de un demultiplexor 1 a 4.

El demultiplexor, es un circuito combinacional que aunque la función básica es la que


hemos explicado, puede utilizarse en muchos casos como decodificador y adopta
cualquiera de las funciones que un decodificador realiza.

Sumador Binario

8
Como su nombre lo indica un sumador binario calcula la suma de dos números binarios.
Y se encuentra en la unidad lógica aritmética (ALU) de microcontroladores,
microprocesadores, etc. A continuación, se explica que es un semisumador, un sumador
completo y sumadores completos en paralelo.

Semisumador binario: Es la suma de dos números binarios de 1 bit. Da como resultado


la suma de los dos bits más el acarreo (carry). Tiene la siguiente tabla de la verdad:

Los mapas de Karnaugh para la sumatoria y el acarreo son los siguientes:

Da como resultado el siguiente bloque funcional:

El semisumador tiene el inconveniente de que no presenta acarreo de entrada, dando


como resultado que no se puedan apilar en paralelo, a menos que se agreguen
compuertas externas. De tal manera que la solución es el sumador completo, que si
tiene acarreo de entrada.

Sumador completo: El sumador completo presenta tres entradas, dos bits de entrada (A
y B) y un acarreo de entrada, y presenta dos salidas, la suma y un acarreo de salida. La
tabla de verdad para un sumador completo es la siguiente:

9
Los mapas de karnaugh para la suma y el acarreo de salida son los siguientes:

Da como resultado el siguiente bloque funcional:

Sumadores en paralelo: Un sumador completo se puede conectar en paralelo. El fin con


el que se realiza esto es para poder hacer sumas de dos números binarios de más de un
bit. Estas conexiones se logran uniendo el acarreo de salida de la primera suma con el
acarreo de salida de la siguiente suma y así sucesivamente. A continuación, se muestra
la conexión para lograr la suma de números de dos bits, tres bits y cuatro bits.

Sumador de dos números Binarios de dos bits:

10
Sumador de dos números Binarios de tres bits:

Sumador de dos números Binarios de 4 bits:

Sumador 74LS283: Circuito integrado producido por Motorola. Es un sumador de dos


números binarios de 4 bits y que presenta acarreo de entrada y acarreo de salida para
conexión en paralelo. Maneja voltajes TTL.

11
VHDL es un lenguaje definido por el IEEE (Institute of Electrical and Electronics
Engineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos digitales.
VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el
acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de
Hardware Description Language.

TINA Design Suite


Es un potente pero accesible paquete de programas para analizar, diseñar y probar en
tiempo real circuitos analógicos, digitales, HDL, MCU, electrónicos mixtos y sus circuitos
impresos (PCB). Puede también analizar circuitos RF, de comunicación, optoelectrónicos
y probar y depurar aplicaciones de microcontroladores. TINA posee una característica
única que permite animar un circuito mediante el hardware opcional TINALab II, con
conexión USB que convierte a su computadora en un inigualable instrumento
multifunción de prueba y medición (T&M). Con TINA, los ingenieros eléctricos tendrán
una herramienta de alto rendimiento, pero fácil de usar y los docentes dispondrán de
recursos únicos en contextos de práctica y entrenamiento.

Ventajas

 Muy ligero en instalación (hasta parece de juguete como dicen)


 No se cuelga, ya que no es en tiempo real, simula solo un tiempo específico y por
lo tanto no mantiene el PC ocupado, este es especial para PC's con bajos
recursos.
 Contiene una gran librería de componentes, en especial los de Texas
Instruments.

Desventajas

 No es tan fácil de usar (tampoco es exageradamente difícil).


 No tiene una interfaz bonita como los dos anteriores.
 No simula microcontroladores.

12
DESARROLLO DE LOS CIRCUITOS:

ASIGNACIÓN 1
 Decoder de 3 a 8.

Descripción de los pasos seguidos para la solución

 Declaramos las entradas a, b y c.


 Declaramos las salidas activas altas es mintérminos m0, m1, m2, m3, m4,
m5,m6 y m7
 Compilar el código y luego simular en Model Sim

Códigos VHDL.

OBSERVACIÓN: cuando se ingresa el “3” en binario, debe haber una salida “1” en m3 y
en los demás “0”, para el caso de ingresar “1” en binario debe salir 1 en m1 y en las
demás salidas “0”.

13
Gráficos de cada circuito en TINA.

Capturas del funcionamiento del circuito en TINA

14
 Coder de 8 a 3.
Descripción de los pasos seguidos para la solución
 Declaramos las variables de entrada y0 , y1,y2, y3 y4 y5 y6 e y7, es lo inverso
a decodificador.
 Declaramos las variables de salida a, b y c.
 Luego simulamos en Model Sim para comprobar su funcionalidad

Códigos VHDL

Observaciones:cuando en la variable de entrada y1 disponemos de un 1, el


codificador busca el numero en binario que lo representa para tal caso es el 001. En el
ejemplo de decoder se manifiesta con más claridad.

15
Gráficos de cada circuito en TINA

Capturas del funcionamiento del circuito en TINA

16
 Multiplexor con dos entradas de dato de 1 bit y una variable de
selección.
Descripción de los pasos seguidos para la solución
 Podemos ver el símbolo normalizado del multiplexor.

Mux 2 a 1

 De la misma forma declaramos las variables de salida.


 Declaramos las variables de entrada y seleccion que son fundamentales para el
funcionamiento del mux.
 Después que enviamos el archivo .vhd al software model sim para simular

Códigos VHDL

17
Observaciones: tal como se esperó cuando la variable de selección es un 0 lógico
habilita d0 que lo lleva a la salida representada con x.

Gráficos de cada circuito en TINA

Capturas del funcionamiento del circuito en TINA

18
 Demultiplexor con cuatro salidas de datos de 1 bit y dos variables de
selección.

Descripción de los pasos seguidos para la solución


 Selecciona una variable de selección y dos variables de entrada.
 Declaramos las variables de salidas, que son las variables de entrada en
multiplexores.
 Luego a simular en Model Sim para comprobar su funcionalidad

Códigos VHDL

Observaciones: Cuando se introduce “0” en las entradas habilita la salida d0 con un


“1”, en todos los casos sería igual

19
Gráficos de cada circuito en TINA

Capturas del funcionamiento del circuito en TINA

20
 Full adder.
Descripción de los pasos seguidos para la solución
 Conocido también como sumador completo, se procede a declarar variables de
entrada y acarreo de entrada.
 Luego a declarar las variables de salida acarreo de salida y una salida.
 Ahora se procede a la simulación en Model sim

Códigos VHDL

Observaciones: cuando hacemos la sumatoria de 0+1 si traemos un acarreo de 1,


tenemos: 1+0=1 pero como hay un acarreo de 1, tenemos nuevamente: 1+1=1 0, como
solo tenemos una variable de salida z=0 y acarreo de salida(Co)=1. La simulacion fue un
exito

21
Gráficos de cada circuito en TINA

Capturas del funcionamiento del circuito en TINA

22
 Multiplexor con dos entradas de datos de 4 bit y una variable de
selección
Descripción de los pasos seguidos para la solución
 Lo primordial es darle solución a la distribución de las 8 entradas en un mux de
2 a 1.
 corresponde a 4 entradas en cada entrada del mux de 2 a 1 y en la salida
también habrá 4, pero se tomaran como una sola. asi:

1
wxyz

 La simulación en Model Sim es:

Códigos VHDL

23
Gráficos de cada circuito en TINA

Capturas del funcionamiento del circuito en TINA

24
ASIGNACIÓN 2
Simular un convertidor de código 2421 a 7 segmentos utilizando TINA como simulador
y un display de 7 segmentos de la siguiente forma: Figura 1. La conexión de un
convertidor BCD a 7 segmentos con un display que se implementará.

Se podrá utilizar un decodificador de 8421 a 7 segmentos de ser necesario (según la


solución del problema) y un display de 7 segmentos para la etapa de salida, los cuales
se encuentran disponible en TINA.

Descripción de los pasos seguidos para la solución


 Se debe crear un código de binario natural y luego envié a un Display de 1 digito,
para ello utilizamos Quartus II, edition Web.
 Compilamos el código.
 Generamos un macro desde software TINA 8, con el objetivo de simularlo.
 Luego añadimos el macro al programa.

Códigos VHDL

25
Capturas del funcionamiento del circuito en TINA

Observaciones: al ingresa el valor 1110(aiken) el decoder está programa para que sea
equivalente a 8 en decimal. Hacer notar que si ingresa un n° que no pertenece a BDC
aiken, se apagan leds del display

26
ASIGNACIÓN 3
Desarrollar y simular un sumador- restador de dos números de 4 bits utilizando TINA
como simulador. El circuito se muestra a continuación:

Circuito sumador-restador de dos números de 4 bits.

Los 8 bits de entrada de los dos números a operar así como el bit de selección serán
generadas con switches que ya se encuentran en TINA e irán conectados a tierra o Vcc
(5V). El modelo de switch a utilizar queda a opción del estudiante. Para la implementación
de este circuito se podrán utilizar diferentes métodos los cuales quedarán a elección del
estudiante:
Primer método: Se genera en VHDL un código completo que tenga como entradas
los 2 números de
4 bits cada uno y una variable de selección para escoger entre la función de suma o resta
y tiene como salida 4 bits con el resultado de la operación y un bit de acarreo y se crea
un elemento en TINA con el código realizado como se muestra en la figura 3.

Ilustración del primer método de diseño del circuito.

27
Segundo método: Se genera en VHDL un código para el sumador 7483 y un código para
el MUX 74157 y utilizando las compuertas NOT que se encuentran en TINA se genera un
circuito idéntico al mostrado anteriormente en la Figura 2.
Tercer método: Se genera en VHDL un código para un FULL ADDER y se colocan 4
elementos FULL ADDER en paralelo para crear el sumador7483 y un código para un MUX
de 2 fuentes de datos de 1 bit cada una con una variable de selección y se colocan 4
elementos de MUX en paralelo para generar un MUX de dos entradas de datos de 4 bits
cada una con una entrada de selección. El modelo de circuito se muestra en la figura 4.

Figura 4 – Ilustración para el tercer método.

Luego, la interconexión de los elementos será como en el circuito mostrado


anteriormente en la Figura 2

Códigos VHDL.

28
Gráficos de cada circuito en TINA.

Observaciones: Al introducir los valores al sumador-restador se hace por medio los


swiches con valores de 1 o 0, luego la funcion de los mux conectado a los fulladder es
envíar señales al primero, para la simulación sea objetiva.

29
DESARROLLO DE LAS PREGUNTAS DE INVESTIGACIÓN.

Libreria IEEE
En el desarrollo de modelos VHDL resulta muy frecuente el uso de los
Paquetes de la librería IEEE. Dos de los paquetes de esa librería se llaman:
std_logic_1164 y numeric_std. El siguiente código:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY modelo1 IS . . .

Permitiría el uso del contenido del paquete std_logic_1164 en la Declaración de


Entidad modelo1 y en cualquiera de los Cuerpos de Arquitectura que tenga asociados
(debido a las reglas de herencia de visibilidad entre unidades primarias y secundarias).
Este otro código:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL, ieee.numeric_std.ALL;
ENTITY modelo1 IS . . .

Daría acceso al contenido de los dos Paquetes.


Dentro del Paquete std_logic_1164 se declara un tipo de datos llamado
std_ulogic. Si sólo queremos obtener visibilidad sobre ese objeto, podríamos utilizar la
fórmula:
LIBRARY ieee;
USE ieee.std_logic_1164.std_ulogic;

La librería Work.
Esto quiere decir que una cláusula por lo demás, perfectamente válida, como:
LIBRARY WORK;
Es superflua. Sin embargo, si existiera un Paquete (packwork, por ejemplo) en la librería
Work cuyo contenido se deseára utilizar, si sería necesario utilizar la fórmula:
USE WORK.packwork.ALL;

Librería STD y el contenido del paquete STANDARD son siempre visibles.


La librería STD contiene los paquetes STANDARD y TEXTIO; en realidad estos Paquetes
forman parte del lenguaje, ya que contienen la declaración de los tipos de datos
predefinidos y las operaciones de entrada-salida. La visibilidad sobre el primero es
automática; para utilizar el

Librería Synopsys.
USE ieee.std_logic_arith: Especifica tipos de datos con y sin signo, operaciones
aritméticas y de comparación numérica y funciones para conversión de datos.
Tipos de vectores con/sin signo
1. Signed(MSB downto LSB)
2. unsigned(MSB downto LSB)
3. Operaciones aritméticas entre enteros, signed y unsigned.

30
4. Comparación entre enteros, signed y unsigned
5. La operación de división por valores no 2n.
6. NO ESTA DEFINIDA
USE ieee.std_logic_signed: Permite operaciones con signo con datos tipo
STD_LOGIC_VECTOR
.

31
CONCLUSIONES.

 La simulación en Tina 8 tiene mayor aplicación en los circuitos MSI, ya que no solo

simula la funcionalidad de los dispositivos si no que ofrece la muestra de los

símbolos, además de tener más accesibles las herramientas complementarias para

el diseñador/a.

 VHDL sigue siendo un lenguaje adecuando aun cuando tengamos circuitos de


grandes tamaños.
 TINA es una herramienta de gran utilidad para simular circuitos lógicos ya que nos
permite depurar nuestro código y simularlo en tiempo real.
 Los símbolos normalizados por IEEE de los decodificadores y codificadores son muy

similar, la diferencia del primero y el segundo radica en su entradas pasan a ser las

salidas y viceversa. Los multiplexores tiene varias entradas y única salida, mientras

que los demultiplexores tiene una entrada y varias salidas. Una de las diferencias

entre los dec/cod y los demult/mut es la variable de selección que poseen los

primeros.

32
BIBLIOGRAFÍA.

VHDL Lenguaje para descripción y modelado de circuitos, Fernando Pardo Carpio,


Universidad de Valencia 1997.

Análisis y diseño de circuitos lógicos digitales, Víctor Nelson, 1ª Ed.

Visto el Capítulo 4.

33

Das könnte Ihnen auch gefallen