Universidad Autónoma Metropolitana
Unidad Azcapotzalco.
División: Ciencias Básicas e Ingeniería.
Departamento de Electrónica
Laboratorio de Diseño Lógico F302.
Práctica #5: “CODIFICADORES Y
DECODIFICADORES”
Fecha: 21/12/2023
Grupo: CEL03 Trimestre: 23-O
Equipo 8:
Macedo Becerril Syndhell Yevyany 2212001175
Mejía Barrera Emilio 2213031999
Medina Nieto Cira Lizbeth 2202002599
Profesor: Sánchez Rangel Francisco Javier
1. OBJETIVOS
1. Describir el funcionamiento de circuitos combinatorios MSI.
2. Conocer y describir los codificadores.
3. Conocer y describir los decodificadores.
4. Diseñar e implementar circuitos combinatorios empleando VHDL.
2. MARCO TEÓRICO
1. Describa que es un circuito combinatorio MSI.
Los sistemas combinacionales son aquellos en los que las salidas dependen exclusivamente
de las entradas, luego para una misma entrada siempre se tiene la misma salida.
Hasta ahora el diseño de funciones lógicas, o de circuitos lógicos, se ha realizado mediante
el uso exclusivo de puertas básicas. Los circuitos que contienen estas puertas básicas son
conocidos como SSI (Small Scale of Integration) por que contienen un número pequeño de
transistores. El diseño que se realiza con estos dispositivos se denomina CUSTOM.
Un paso más profundo en el diseño HARDWARE es realizar un diseño SEMICUSTOM,
basado en el uso de bloques constructores más complejos. Esto se puede hecer mediante el
uso de sistemas o circuitos MSI (Medium Scale of Integration) dónde el número de puertas
básicas puede llegar a 100.
En un computador se realizan principalmente operaciones de codificación y decodificación
de datos usando codificadores y decodificadores; transmisión y control de datos usando
líneas de bus, multiplexadores y demultiplexadores; y procesado de datos mediante
circuitería aritmética.
En nuestro computador podemos encontrarnos los siguientes sistemas MSI:
• Codificadores y decodificadores
• Multiplexores y demultiplexores
• Sumadores, comparadores, entre otros.
2. Describa que es un Codificador.
Son los dispositivos MSI que realizan la operación inversa a la realizada por los
decodificadores. Generalmente, poseen 2 n entradas y n salidas. Cuando solo una de las
entradas está activa para cada combinación de salida, se le denomina codificador completo.
3. Describa que es un Decodificador.
Un decodificador es un circuito lógico con n entradas y 2n salidas, tal que para cada
combinación de entradas se activa al menos una salida. Si sólo se activa una salida se
denomina decodificador completo.
Fig. 1. Ejemplo de un decoder 3x8
4. ¿Qué significa el hecho de que el circuito trabaje en activo bajo?
Tanto las entradas como las salidas, principalmente estas últimas, pueden ser:
• ACTIVAS A NIVEL ALTO: la salida activa es 1 y la no activa 0.
• ACTIVAS A NIVEL BAJO: la salida activa es 0 y la no activa 1.
Además, el número de entradas de habilitación puede ser de una o más, y pueden estar
activas a nivel alto o bajo.
5. ¿Para qué sirve la entrada ENABLE en un decodificador?
Un decodificador puede disponer de una entrada de habilitación (ENABLE) que conecta o
desconecta el dispositivo. Esta entrada puede ser activo bajo o activo alto.
6. Display de 7 segmentos
En la figura no. 1 se muestra el diagrama de un display de 7 segmentos. Este display está
construido con un arreglo de 7 LEDs, cada LED representa un segmento, un display puede
exhibir diferentes caracteres cuando se encienden ciertos segmentos. Existen dos tipos de
displays: ánodo común y cátodo común. Los primeros se usan cuando el decodificador tiene
salidas activas a nivel bajo, mientras que los segundos son para los decodificadores con
salidas activas a nivel alto.
Fig. 2 Display de 7 segmentos
7. Decodificador BCD a 7 segmentos
Un decodificador de BCD a 7 segmentos es un circuito combinatorio que convierte un
número decimal codificado en binario a un código de 7 segmentos, con la finalidad de
mostrar cada uno de los dígitos decimales tal y como se muestra en la figura no. 2.
Fig. 3 Resultado de un Display empleando un CI 7446 decodificador de BCD a 7 segmentos.
3. DESARROLLO TEÓRICO
1. Diseñe en VHDL un codificador de Octal a Binario.
Análisis del codificador:
VHDL del codificador:
entity COD_8X3 is
port(I:in bit_vector(0 to 7);
O: out bit_vector (0 to 2));
end COD_8X3;
architecture COD_8X3_arch of COD_8X3 is
begin
O(0)<=I(4) or I(5) or I(6) or I(7);
O(1)<=I(2) or I(3) or I(6) or I(7);
O(2)<=I(1) or I(3) or I(5) or I(7);
end COD_8X3_arch;
2. Diseñe en VHDL un decodificador de BCD a Decimal (4 x 10) con salidas en activo bajo,
el decodificador debe tener una entrada de habilitación ENABLE (EN) activa bajo.
Análisis del decodificador:
VHDL del decodificador:
entity Dec_4x10 is
port(A,B,C,D: in bit;
EN: in bit;
E: out bit_vector(0 to 9));
end Dec_4x10;
architecture Dec_4x10_arch of Dec_4x10 is
begin
E(0)<= not(not EN and not A and not B and not C and not D);
E(1)<= not(not EN and not A and not B and not C and D);
E(2)<= not(not EN and not A and not B and C and not D);
E(3)<= not(not EN and not A and not B and C and D);
E(4)<= not(not EN and not A and B and not C and not D);
E(5)<= not(not EN and not A and B and not C and D);
E(6)<= not(not EN and not A and B and C and not D);
E(7)<= not(not EN and not A and B and C and D);
E(8)<= not(not EN and A and not B and not C and not D);
E(9)<= not(not EN and A and not B and not C and D);
end Dec_4x10_arch;
3. Diseñe en VHDL un decodificador de Binario a 7 segmentos, se deben desplegar los
caracteres en hexadecimal (Emplee el postulado with - select – when).
Análisis del decodificador:
VHDL del decodificador:
entity bin_7seg is
port(B: in bit_vector(0 to 3);
D: out bit_vector(0 to 6));
end bin_7seg;
architecture bin_7seg_arch of bin_7seg is
begin
with B select
D<="0000001" when "0000",
"1001111" when "0001",
"0010010" when "0010",
"0000110" when "0011",
"1001100" when "0100",
"0100100" when "0101",
"0100000" when "0110",
"0001111" when "0111",
"0000000" when "1000",
"0001100" when "1001",
"0001000" when "1010",
"1100000" when "1011",
"0110001" when "1100",
"1000010" when "1101",
"0110000" when "1110",
"0111000" when others;
end bin_7seg_arch;
4. DESARROLLO EXPERIMENTAL
Auxiliándose de las capturas de pantalla. Se describen a continuación los pasos para crear
un proyecto en el Programa Quartus II Ver. 13.0
Se abre Quartus II Se crea un nuevo proyecto
Se elige una carpeta y se le asigna el Se selecciona en Familia Cyclone II,
nombre al proyecto en pin count se coloca 672
Se da click Derecho y se selecciona VHDL file Queda abierto nuestro proyecto para trabajar
i) Implemente en VHDL el codificador de Octal a Binario diseñado y compruebe su
funcionamiento.
Código VHDL de Quartus RTL del circuito
Asignación de pines con Pin Planner Combinación “01000000” en la tarjeta
DE2
Combinación “00100000” en la tarjeta DE2 Combinación “00010000” en la tarjeta
DE2
ii) Implemente en VHDL el decodificador de BCD a Decimal diseñado y compruebe su
funcionamiento.
Código VHDL de Quartus RTL del circuito
Asignación de pines con Pin Planner Combinación “0000” en la tarjeta DE2
Combinación “0001” en la tarjeta DE2 Combinación “0010” en la tarjeta DE2
iii) Implemente en VHDL el decodificador de Binario a 7 segmentos diseñado y compruebe
su funcionamiento.
Código VHDL de Quartus RTL del circuito
Asignación de pines con Pin Planner Combinación “0000” en la tarjeta DE2
Combinación “0011” en la tarjeta DE2 Combinación “1111” en la tarjeta DE2
5. MATERIAL Y EQUIPO
• Computadora PC.
• Software Quartus II.
• Tarjeta de desarrollo ALTERA DE2.
6. BIBLOGRAFÍA Y/O PÁGINAS WEB
- MANO, KIME; “FUNDAMENTOS DE DISEÑO LÓGICO Y DE COMPUTADORAS”; 3ª
EDICIÓN; ED. PEARSON 2005.
- MAXINEZ, ALCALÁ; “VHDL: EL ARTE DE PROGRAMAR SISTEMAS DIGITALES”; ED.
CECSA 2010.
- SÁNCHEZ RANGEL; NOTAS DEL CURSO DE DISEÑO LÓGICO.
- SCHNADOWER; “FUNDAMENTOS DE DISEÑO DIGITAL Y VHDL”; UAM 2013.
- QUARTUS II HANDBOOK VERSION 13.0, VOLUME 1: DESIGN AND SYNTHESIS;
ALTERA 2013.
- DE2 DEVELOPMENT AND EDUCATION BOARD, USER MANUAL; ALTERA 2012.
7.CONCLUSIONES
Macedo Becerril Syndhell Yevyany 2212001175
Mejía Barrera Emilio 2213031999
En conclusión, la práctica fue enriquecedora y nos brindó una comprensión más profunda
de los conceptos relacionados con codificadores, decodificadores y el uso del ENABLE.
Aunque enfrentamos una pequeña confusión en el código del primer ejercicio al utilizar
erróneamente los números 0 en lugar de 1, logramos identificar y corregir el problema, lo
que destacó la importancia de la precisión en la programación. Además, adquirimos
conocimientos sobre el funcionamiento del display de 7 segmentos, lo que nos permitirá
aplicar estos conocimientos en futuros proyectos y codificaciones. En general, la experiencia
fortaleció nuestra habilidad para trabajar con estos componentes y amplió nuestra
comprensión en el campo de la electrónica y la programación.
Medina Nieto Cira Lizbeth 2202002599
En este trabajo, se abordaron diversos objetivos relacionados con los circuitos
combinatorios MSI y su implementación mediante el lenguaje de descripción de hardware
VHDL. Se exploraron los fundamentos de los circuitos combinatorios, destacando la
diferencia entre SSI y MSI, donde estos últimos, como los codificadores y decodificadores,
representan una mayor escala de integración.
Se profundizó en la comprensión de codificadores y decodificadores, esenciales para
operaciones de transmisión, control y procesamiento de datos en sistemas digitales. Se
explicó la importancia de la entrada ENABLE en los decodificadores y se ilustró la aplicación
de un display de 7 segmentos.
Esta práctica proporciona una sólida comprensión teórica y práctica de los circuitos
combinatorios MSI, destacando la importancia de su implementación en el ámbito de la
ingeniería de hardware digital. El uso de VHDL y la plataforma Quartus II facilitaron la
simulación y verificación de los diseños, contribuyendo así al desarrollo y comprensión de
sistemas digitales más complejos.