Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXPERIMENTAL Versión 01
Talleres y Laboratorios de Docencia ITM Fecha 2014-08-20
1. IDENTIFICACIÓN DE LA GUÍA
CONTENIDO INDICADOR DE
COMPETENCIAS
TEMÁTICO LOGRO
Programa en
VHDL con estilo
de programación
Implementación de IC estructural sobre
El estudiante está en capacidad de comerciales de una FPGA para
diseñar e implementar circuitos digitales mediana escala de implementar IC
para la resolución de problemas prácticos, integración (Medium comerciales y
utilizando metodologías de trabajo que Scale Integration – MSI) ALU, manejando
incluyan FPGA y VHDL así como a partir de la hoja de decodificadores
herramientas de simulación datos del fabricante. y multiplexores
computacional. Unidad Aritmética para
Lógica– ALU. visualización de
la solución en
varios displays 7
segmentos
2. FUNDAMENTO TEÓRICO
Los circuitos integrados – IC (Integrated Circuits) son chips semiconductores que integran
un conjunto de circuitos digitales, cuyo objetivo es implementar una aplicación. Son
múltiples las aplicaciones que pueden realizarse con IC, entre ellas están:
1. IC para microcomputadores: incluyen varios tipos de procesamiento de datos.
2. IC para memoria: almacenan datos.
3. IC para lógica estándar: conjunto de circuitos combinacionales para implementar
funcionalidades particulares.
4. IC personalizados: circuitos dedicados a cumplir una función específica requerida por
un usuario.
Hay aproximadamente 600 tipos diferentes de IC para lógica estándar, los cuales van
desde compuertas básicas hasta complejas unidades lógico-aritméticas (ALU). Las
compuertas lógicas (AND, OR, NOT, XOR, etc.) son los IC combinacionales con más baja
escala de integración, seguido por los multiplexores, decodificadores, etc. En esta práctica
GUÍA DE TRABAJO PRÁCTICO - Código FGL 029
EXPERIMENTAL Versión 01
Talleres y Laboratorios de Docencia ITM Fecha 2014-08-20
nos ocuparemos de los IC para lógica estándar con mediana escala de integración y que
comercialmente han estado disponibles.
Multiplexor: son circuitos combinacionales que tienen 2N entradas, una sola salida y N
líneas de selección. Su funcionamiento se asemeja a un conmutador de varias posiciones,
que por medio de las líneas de selección lleva una de las entradas a la salida, esto es, el
multiplexor permite el envío por una sola línea de los datos presentes en múltiples líneas
(véase Figura 1). De acuerdo a su funcionamiento, el multiplexor es ideal como generador
de funciones representadas como suma de productos.
S1 S0 X
0 0 I0
0 1 I1
1 0 I2
1 1 I3
S1 S 0 Q3 Q2 Q1 Q0
0 0 0 0 0 Y
0 1 0 0 Y 0
1 0 0 Y 0 0
1 1 Y 0 0 0
S S Q Q Q
Q3
1 0 2 1 0
0 0 1 1 1 0
0 1 1 1 0 1
1 0 1 0 1 1
1 1 0 1 1 1
I S
I2 I1 I0 S1 V
3 0
0 0 0 0 X X 0
0 0 0 1 0 0 1
0 0 1 X 0 1 1
0 1 X X 1 0 1
1 X X X 1 1 1
Es posible generar una señal de reloj de menor frecuencia a partir de la señal de reloj
externa, con el fin de poder percibir visualmente la conmutación de los displays.
La Figura 5 muestra la implementación de un reloj de baja frecuencia, slowClock, a partir
de uno de más alta frecuencia, fastClock, donde la frecuencia está dada por (1).
Figura 5: Implementación de reloj de baja frecuencia a partir del reloj base de alta
frecuencia.
f fastClock
f slowClock = (1)
2 ∗ prescaler
Por ejemplo, para un reloj rápido con frecuencia f fastClock =100 MHz y con un
prescaler=50000000 , se puede obtener un reloj lento con frecuencia
f slowClock =1 Hz . Si el prescaler es 25000000 , 5000000 o 100000 se puede
obtener frecuencias de 2 Hz , 10 Hz y 500 Hz respectivamente.
D C B A a b c d e f g
0 0 0 0 0 0 0 0 0 0 1
0 0 0 1 1 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 0
0 0 1 1 0 0 0 0 1 1 0
0 1 0 0 1 0 0 1 1 0 0
0 1 0 1 0 1 0 0 1 0 0
0 1 1 0 0 1 0 0 0 0 0
0 1 1 1 0 0 0 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 1 0 0
Otros 1 1 1 1 1 1 1
entity vhdlEncoder10ToBCD is
Port ( I : in STD_LOGIC_VECTOR (9 downto 0);
Code : out STD_LOGIC_VECTOR (3 downto 0));
end vhdlEncoder10ToBCD;
process(I)
begin
end process;
end archEncoder10ToBCD;
Y_out[0] que corresponde al punto p. Los bits 7 a 0 de An_out corresponden a los ánodos
de los ocho display, donde An_out[7] es el display de la izquierda mientras que An_out[0]
el de la derecha.
El módulo VHDL para la implementación del componente vhdlDecoBCDTo7Seg puede
verse en la Figura 9. La señal de entrada y las dos de salida definidas en la entidad son
mudas, y se denominan respectivamente BCD, Ka y An. Con la sentencia An <=
“11111110” solamente se activa el display cero, correspondiente al de más a la derecha.
Si el código de entrada no es BCD, esto es un número entre 0 y 9, en el display solo
prenderá el segmento correspondiente al punto, LSB de Ka[7:0].
entity vhdlDecoBCDTo7Seg is
Port ( Ka : out STD_LOGIC_VECTOR (7 downto 0);
An : out STD_LOGIC_VECTOR (7 downto 0);
BCD : in STD_LOGIC_VECTOR (3 downto 0));
end vhdlDecoBCDTo7Seg;
begin
An <= "11111110";
end archDecoBCDTo7Seg;
Figura 9: Decodificador BCD a 7 segmentos con activación del únicamente del display
cero.
entity vhdlSistema is
Port ( X : in STD_LOGIC_VECTOR (9 downto 0);
Y_out : out STD_LOGIC_VECTOR (7 downto 0);
An_out : out STD_LOGIC_VECTOR (7 downto 0));
end vhdlSistema;
-- Components
component vhdlDecoBCDTo7Seg is
Port ( Ka : out STD_LOGIC_VECTOR (7 downto 0);
An : out STD_LOGIC_VECTOR (7 downto 0);
BCD : in STD_LOGIC_VECTOR (3 downto 0));
end component;
component vhdlEncoder10ToBCD is
Port ( I : in STD_LOGIC_VECTOR (9 downto 0);
Code : out STD_LOGIC_VECTOR (3 downto 0));
end component;
-- Signals
begin
Encoder_1: vhdlEncoder10ToBCD
port map(I => X,
Code => Y_bcd);
Codificador_1: vhdlDecoBCDTo7Seg
port map(Ka => Y_out,
An => An_out,
BCD => Y_bcd);
end archSistema;
3. OBJETIVO(S)
Utilizar VHDL para representar exactamente IC combinacionales comerciales de
media escala de integración a partir de la información entregada por los
fabricantes.
Implementar en VHDL sobre FPGA ALUs con operaciones lógico/aritmética.
4. RECURSOS REQUERIDOS
Estación de trabajo.
ISE Design Suite.
Nexys 2, Nexys 3 o Nexys 4.
Librería IEEE.NUMERIC_STD.
La ALU puede ser vista como la unión de dos etapas, un circuito aritmético y un circuito
lógico, donde S2 realiza la selección de cada etapa a través de un MUX. S 1 y S0
seleccionan las operaciones internas de cada etapa, ver Figura 12.
Al inicio del semestre se entrega una plantilla para la elaboración del informe.
7. BIBLIOGRAFÍA
Brown, S., & Vranesic, Z. (2007). Fundamentos de lógica digital con diseño VHDL.
México, 2a.
Floyd, T. L., Caño, M. J. G., de Turiso, E. B. L., & Herrero, L. P. (1997). Fundamentos de
sistemas digitales (Vol. 7). Prentice Hall.
Mandado, E., Acevedo, J., & Fernández, C. (2009). Autómatas programables y sistemas
de automatización. Marcombo.
Tocci, R. J., & Widmer, N. S. (2003). Sistemas digitales: principios y aplicaciones. Pearson
Educación.
GUÍA DE TRABAJO PRÁCTICO - Código FGL 029
EXPERIMENTAL Versión 01
Talleres y Laboratorios de Docencia ITM Fecha 2014-08-20