Escolar Documentos
Profissional Documentos
Cultura Documentos
INTEGRANTES:
APELLIDOS NOMBRES CARNÉ
Vásquez Lara Marvin Josué VL16001
Mendoza Guardado David Edgardo MG16014
DOCENTE:
INSTRUCTORES:
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.
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.
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.
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
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.
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:
10
Sumador de dos números Binarios de tres bits:
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.
Ventajas
Desventajas
12
DESARROLLO DE LOS CIRCUITOS:
ASIGNACIÓN 1
Decoder de 3 a 8.
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.
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
15
Gráficos de cada 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
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.
18
Demultiplexor con cuatro salidas de datos de 1 bit y dos variables de
selección.
Códigos VHDL
19
Gráficos de cada 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
21
Gráficos de cada 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
Códigos VHDL
23
Gráficos de cada 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á.
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:
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.
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.
Códigos VHDL.
28
Gráficos de cada circuito en TINA.
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 . . .
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 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
el diseñador/a.
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.
Visto el Capítulo 4.
33