Sunteți pe pagina 1din 19

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENERIA ELECTRICA
SISTEMAS DIGITALES I

TAREA 3

Simulacin VHDL de circuitos MSI

Integrante: carnet: GT GL

Cruz Meja, Walter Antonio CM10024 01 02

Ciudad universitaria 23 mayo de 2016


ndice

Pag

Introduccin.. 3

Objetivos.. 4

General... 4

Especficos.4

Marco Terico.. 5

Desarrollo de los circuitos.. 10

Ejercicio 1. 10

Ejercicio 2. 11

Ejercicio 3. 14

Investigacin. 17

Conclusin.. 19
Introduccin

En el presente trabajo se realiza una investigacin terica acerca del


funcionamiento lgico de los codificadores, decodificadores, multiplexores y
sumadores, funcionamiento ecuacin lgica, al mismo tiempo que se
trabajara con estos dispositivos, de manera simulada, para analizar y
comprender mejor su funcionamiento, se ver una introduccin a la
herramienta de trabajo TINA para realizar las simulaciones.

Se tratara de comprender el funcionamiento y la importancia de estos


dispositivos en la implementacin de problemas de la vida real para poder
implementar soluciones ms factibles y mejores.

Se mostrara la manera en la cual se puede simular casi cualquier circuito


lgico a partir de su cdigo escrito en vhdl, analizaremos al mismo tiempo la
dependencia del cdigo ya que se utilizara Quartuss para la codificacin y
TINA para la simulacin, y veremos que el cdigo es compatible en diferentes
plataformas de trabajo.
Objetivos

Objetivo General:

Construir elementos de circuitos integrados que realicen funciones


especficas tales como codificadores decodificadores, multiplexores, y
sumadores para realizar tareas complejas.

Objetivos especficos:

Aprender a simular cdigos vhdl en unos circuitos integrados utilizando


la herramienta de simulacin TINA.

Codificar y ejecutar cdigos vhdl que simulen el comportamiento de


dispositivos electrnicos existentes en el mercado como los sumadores
completos y los codificadores y decodificadores, para comprender y
analizar su comportamiento real a partir de la simulacin.
Marco Terico

Decodificador
Un decodificador o descodificador es un circuito combinacional, cuya funcin es inversa a la del codificador, esto
es, convierte un cdigo binario de entrada (natural, BCD, etc.) de N bits de entrada y M lneas de salida (N puede
ser cualquier entero y M es un entero menor o igual a 2N), tales que cada lnea de salida ser activada para una
sola de las combinaciones posibles de entrada. Normalmente, estos circuitos suelen encontrarse como
decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.

Si por ejemplo se tiene un decodificador de 2 entradas con 22=4 salidas, su funcionamiento sera el que se indica
en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lgico:

Decodificador de 2 a 4 lneas.
Tabla de verdad para el decodificador de 2 a 4 lneas
Entradas Salidas
A1 A0 D3 D2 D1 D0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

Un tipo de decodificador muy empleado es el de siete segmentos. Este circuito decodifica la informacin de
entrada en BCD a un cdigo de siete segmentos adecuado para que se muestre en un visualizador de siete
segmentos.

Aplicaciones del Decodificador

Su funcin principal es la de direccionar espacios de memoria. Un decodificador de N entradas es capaz de


direccionar 2N espacios de memoria.
Para poder direccionar 1kb de memoria se necesitaran 10 bits, ya que la cantidad de salidas seria 2 10, igual a
1024.

De esta manera:

Con 20 bits se tienen 220 lo que equivale a 1Mb.


Con 30 bits se tienen 230 lo que equivale a 1Gb

Codificador
Un codificador es un circuito combinacional con 2N entradas y N salidas, cuya misin es presentar en la salida el
cdigo binario correspondiente a la entrada activada.

Existen dos tipos fundamentales de codificadores: codificadores sin prioridad y codificadores con
prioridad. En el caso de codificadores sin prioridad, puede darse el caso de salidas cuya entrada no pueda
ser conocida: por ejemplo, la salida 0 podra indicar que no hay ninguna entrada activada o que se ha
activado la entrada nmero 0. Adems, ciertas entradas pueden hacer que en la salida se presente la
suma lgica de dichas entradas, ocasionando mayor confusin. Por ello, este tipo de codificadores es
usado nicamente cuando el rango de datos de entrada est correctamente acotado y su funcionamiento
garantizado.


Direccin local de lugar.
Para evitar los problemas anteriormente comentados, se disean los codificadores con prioridad. En estos
sistemas, cuando existe ms de una seal activa, la salida codifica la de mayor prioridad (generalmente
correspondiente al valor decimal ms alto). Adicionalmente, se codifican dos salidas ms: una indica que
ninguna entrada est activa, y la otra que alguna entrada est activa. Esta medida permite discernir entre
los supuestos de que el circuito estuviera deshabilitado por la no activacin de la seal de capacitacin,
que el circuito no tuviera ninguna entrada activa, o que la entrada nmero 0 estuviera activada.
Tambin entendemos como codificador (cdec), un esquema que regula una serie de transformaciones
sobre una seal o informacin. Estos pueden transformar una seal a una forma codificada usada para la
transmisin o cifrado o bien obtener la seal adecuada para la visualizacin o edicin (no necesariamente
la forma original) a partir de la forma codificada.
En este caso, los codificadores son utilizados en archivos multimedia para comprimir audio, imagen o
vdeo, ya que la forma original de este tipo de archivos es demasiado grande para ser procesada y
transmitida por los sistema de comunicacin disponibles actualmente. Se utilizan tambin en la
compresin de datos para obtener un tamao de archivo menor.
Segn esta nueva definicin, podemos dividir los codificadores en cdecs sin prdidas y cdecs con
prdidas, segn si la informacin que se recupera coincide exactamente con la original o es una
aproximacin.
Multiplexor
Los multiplexores son circuitos combinacionales con varias entradas y una nica salida de datos.
Estn dotados de entradas de control capaces de seleccionar una, y slo una, de las entradas de
datos para permitir su transmisin desde la entrada seleccionada hacia dicha salida.

En el campo de la electrnica el multiplexor se utiliza como dispositivo que puede recibir varias
entradas y transmitirlas por un medio de transmisin compartido. Para ello lo que hace es dividir
el medio de transmisin en mltiples canales, para que varios nodos puedan comunicarse al mismo
tiempo.

Una seal que est multiplexada debe demultiplexarse en el otro extremo.

Segn la forma en que se realice esta divisin del medio de transmisin, existen varias clases de
multiplexacin:

Multiplexacin por divisin de frecuencia


Multiplexacin por divisin de tiempo
Multiplexacin por divisin de cdigo
Multiplexacin por divisin de longitud de onda

Diseo en Electrnica Digital

Esquema de un multiplexor 2 a 1. Puede ser comparado a un conmutador controlado.

Estos circuitos combinacionales poseen lneas de entrada de datos, una lnea de salida y n
entradas de seleccin. Las entradas de seleccin indican cul de estas lneas de entrada de datos es
la que proporciona el valor a la lnea de salida. Cada combinacin de las entradas de seleccin
corresponde a una entrada de datos, y la salida final del multiplexor corresponder al valor de
dicha entrada seleccionada. Para identificar la entrada de seleccin ms significativa, por convenio
esta siempre es la que est ms arriba (de mostrarse de forma vertical) o ms a la izquierda (en
horizontal), independientemente de su etiqueta identificatoria, a no ser que se especifique lo
contrario.
Tambin se pueden construir multiplexores con mayor nmero de entradas utilizando
multiplexores de menos entradas, utilizando la composicin de multiplexores.

En electrnica digital, es usado para el control de un flujo de informacin que equivale a un


conmutador. En su forma ms bsica se compone de dos entradas de datos (A y B), una salida de
datos y una entrada de control. Cuando la entrada de control se pone a 0 lgico, la seal de datos A
es conectada a la salida; cuando la entrada de control se pone a 1 lgico, la seal de datos B es la
que se conecta a la salida.

El multiplexor es una aplicacin particular de los decodificadores, tal que existe una entrada de
habilitacin (EN) por cada puerta AND y al final se hace un OR entre todas las salidas de las
puertas AND.

La funcin de un multiplexor da lugar a diversas aplicaciones:

1. Selector de entradas.
2. Serializador: Convierte datos desde el formato paralelo al formato serie.
3. Transmisin multiplexada: Utilizando las mismas lneas de conexin, se transmiten diferentes datos de
distinta procedencia.
4. Realizacin de funciones lgicas: Utilizando inversores y conectando a 0 o 1 las entradas segn interese,
se consigue disear funciones complejas, de un modo ms compacto que con las tradicionales puertas
lgicas.

Sumador

Esquema lgico de un sumador completo.

En electrnica un sumador es un circuito lgico que calcula la operacin suma. En los computadores
modernos se encuentra en lo que se denomina Unidad aritmtico lgica (ALU). Generalmente realizan las
operaciones aritmticas en cdigo binario decimal o BCD exceso 3, por regla general los sumadores
emplean el sistema binario. En los casos en los que se est empleando un complemento a dos para
representar nmeros negativos el sumador se convertir en un sumador-restador (Adder-subtracter).

Las entradas son A,B,Cin que son la entradas de bits A y B, y Cin es la entrada de acarreo. Por otra parte,
la salida es S y Cout es la salida de acarreo.

En la siguiente tabla muestra los resultados de este circuito.


Entrada Salida

0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

la forma de las funciones para el acarreo y la suma respectivamente son:

S = a'b'Ci + a'bCi' + ab'Ci' + abCi

Co = a'bCi + ab'Ci + abCi' + abCi

Co = bCi + aCi + ab

Tambin se puede poner la salida S en funcin de Co:

S = CiCo' + bCo' + aCo' + abCi

Adems, como lo nico que se hace para incluir el acarreo en la suma es aadirlo a la operacin, este
mismo circuito se puede formar anidando dos semisumadores, de manera que, la salida S del primer
semisumador se conecte a una de las entradas del segundo semisumador, la entrada Ci se conecte con la
otra entrada del semisumador, las salidas de acarreo se conectan a un or para proporcionar la salida del
acarreo total de la suma (Co) y la salida S del segundo semisumador se queda como resultado total de la
operacin.
Desarrollo de los circuitos
1) Programar y simular en vhdl los siguientes circuitos:

1.1) Decoder 3 a 8;

Tabla de verdad

A B C X0 X1 X2 X3 X4 X5 X6 X7 X0 = ABC; X1= ABC X2 = ABC; X3 = ABC;


0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0 X4 = ABC; X5 = ABC; X6 = ABC; X7 = ABC;
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
Funcionamiento
2) Simular un convertidor de exceso 3 a 7 segmentos utilizando TINA como simulador y un display de 7 segmentos

A B C D Ex3 a b c d e f g
0 0 0 0 0 X X X X X X X X
1 0 0 0 1 X X X X X X X X
2 0 0 1 0 X X X X X X X X
3 0 0 1 1 0 0 0 0 0 0 0 1
4 0 1 0 0 1 1 0 0 1 1 1 1
5 0 1 0 1 2 0 0 1 0 0 1 0
6 0 1 1 0 3 0 0 0 0 1 1 0
7 0 1 1 1 4 1 0 0 1 1 0 0
8 1 0 0 0 5 0 1 0 0 1 0 0
9 1 0 0 1 6 0 1 0 0 0 0 0
10 1 0 1 0 7 0 0 0 1 1 1 1
11 1 0 1 1 8 0 0 0 0 0 0 0
12 1 1 0 0 9 0 0 0 0 1 0 0
13 1 1 0 1 X X X X X X X X
14 1 1 1 0 X X X X X X X X
15 1 1 1 1 X X X X X X X X

NOTA: Como se utilizara un display de nodo comn las salidas para activar cada segmento tendrn que ser cero
0

Para a = ACD + BCD Para b = B C Para c = B C D Para d = ACD+BCD+ACD

Para e = D + BC Para f = AC + CD Para g = BCD + AB + ACD


Cdigo vhdl
library ieee;

use ieee.std_logic_1164.all;

entity exc3_a_7seg is

port (

Ain,Bin,Cin,Din : in bit;

a,b,c,d,e,f,g : out bit);

end exc3_a_7seg;

architecture archi_tarea of exc3_a_7seg is

begin

a <= ((not Ain)and(not Cin)and(not Din)) or (Bin and Cin and Din);

b <= (not Bin) and (not Cin);

c <= Bin and (not Cin) and Din;

d <= ((not Ain)and(not Cin)and(not Din)) or (Bin and Cin and Din) or (Ain and Cin and (not Din));

e <= (not Din) or (Bin and Cin);

f <= ((not Ain)and(not Cin)) or (Cin and (not Din));

g <= ((not Bin) and Cin and (not Din))or((not Ain)and(not Bin))or((not Ain)and(not Cin)and(not Din));

end archi_tarea;
Capturas
Funcionamiento
3) Desarrollar y simular un sumador-restador de dos nmeros de 4 bits utilizando TINA como simulador.

Utilizando el tercer mtodo:

Tabla de verdad del full adder


A B Cin Cout
Ecuaciones deducidas en clases
0 0 0 0 0 0
1 0 0 1 0 1 = Cin xor (A xor B)
2 0 1 0 0 1 Cout = AB + ACin + BCin

3 0 1 1 1 0
Sumador de dos nmeros de un bits
4 1 0 0 0 1
5 1 0 1 1 0
6 1 1 0 1 0
7 1 1 1 1 1

Tabla de verdad de Multiplexor


S A B Y
0 0 0 0
0 0 1 0 Ecuacin deducida en clases
0 1 0 1
0 1 1 1 Y = S*A + S*B
1 0 0 0
1 0 1 1
1 1 0 0 Multiplexor de dos entradas de un bit
1 1 1 1
Ckto
Cdigo del Fulladder

library ieee;
use ieee.std_logic_1164.all;
entity FA is
port (
a,b,cin : in bit;
z,cout : out bit);
end FA;
architecture archi_FA of FA is
begin
z <= ((not cin)and(((not a)and b)or(a and (not b))))or(cin and (((not a)and(not b))or(a and b)));
cout <= (a and b)or(a and cin)or(b and cin);
end archi_FA;

Cdigo del Multiplexor

library ieee;
use ieee.std_logic_1164.all;
entity Mux is
port (
a,b,s : in bit;
x : out bit);
end Mux;

architecture archi_Mux of Mux is


begin
x <= ((not s)and a) or (s and b);
end archi_Mux;
Capturas
Funcionamiento
Investigacin

Multiplexor
Este ejemplo simula un multiplexor de dos entradas. Es un ejemplo sencillo que muestra como describir un
elemento a partir de su funcionamiento.

entity MUX2a1 is
port( a: in std_logic;
b: in std_logic;
sel: in std_logic;
z: out std_logic);
end entity

architecture dataflow of MUX2a1 is


begin
z <= a when sel='0' else b;
end dataflow;

Un ejemplo algo ms complejo es el de un multiplexor de cuatro entradas. Este ejemplo trabaja con vectores para
controlar la entrada activa a travs de la entrada sel.

entity MUX4a1 is
port( a: in std_logic;
b: in std_logic;
c: in std_logic;
d: in std_logic;
z: out std_logic;
sel: in std_logic_vector(1 downto 0));
end entity;
architecture dataflow of MUX4a1 is
begin
process(a,b,c,d,sel) begin
case sel is
when "00" => z <= a;
when "01" => z <= b;
when "10" => z <= c;
when "11" => z <= d;
end case;
end process;
end dataflow;
Decodificadores
Modelo
VHDL
de un decodificador 2 a 4:
library
ieee;
use.ieee.std_logic_1164.all;
entity dec2to4 is
port (A:in std_logic_vector(1 downto 0); --- Entradas de direccin
E: in std_logic; --- Entrada de habilitacin
O: out std_logic_vector(3 downto 0)); --- Salidas
end dec2to4;
architecture DEC of dec2to4 is
begin process
(A, E)
begin
if E = 0 then
O <= 0000;
else
case A is
when 00 => O <= 0001;
when 01 => O <= 0010;
when 10 => O <= 0100;
when 11 => O <= 1000;
when others => O <= 0000;
end case;
end if;
end process;
end DEC
Conclusin

Del presente trabajo podemos concluir que la programacin por mdulos es de mucha ayuda ya que

facilita el manejo de cantidades grandes de informacin binaria, y se puede apreciar que si no existiese

la solucin a problemas reales de la vida cotidiana y laboral se complicara debido a la complejidad de

los circuitos generando as un mayor nmero de compuertas analgicas, que ocuparan espacios mucho

mayores que los circuitos diseados para cumplir las mismas funciones.

Podemos observar que la implementacin adecuada de los cdigos vhdl son de gran utilidad ya que

reduce la cantidad de dispositivos a utilizar para realizar una tarea en especfico y modela de mejor

manera lo que sucedera en un circuito real, y que los diseos que contienen menos dispositivos, es ms

sencillo observar las o la etapa en la que el circuito en general podra fallar y por ende una rpida

reparacin o ajuste del problema que en un circuito con muchos mas elementos.

S-ar putea să vă placă și