Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diapositivas de VHDL Básico
Diapositivas de VHDL Básico
Todo entorno de interfaz gráfica al usuario contiene las siguientes partes que
pueden ser realizadas en forma secuencial:
Edición del archivo fuente (Es decir, el archivo VHDL que describe al circuito)
Compilación (Se efectúa sobre un archivo VHDL previamente creado y realiza
la interpretación y síntesis del circuito descrito)
Banco de pruebas
Declaración de librerías :
Library IEEE;
Use IEEE.std_logic_1164.all; Lógica estándar
Use IEEE.std_logic_arith.all; Aritmética estándar
Use IEEE.std_logic_unsigned.all; Aritmética estándar
Algunos proveedores del paquete de diseño VHDL agregan otras librerías adicionales a la librería
estándar y se debe tener cuidado al utilizarlas ya que pueden no ser compatibles con otros entornos.
Para nombrar las variables de las terminales externas se pueden utilizar todos los caracteres
alfanuméricos como las letras y los números, además de la barra inferior. VHDL no es sensitivo
al tipo al tipo de letra y es indistinto el uso de mayúsculas y minúsculas.
Reglas para dar nombre a una terminal:
1. Entradas simples
2. Salidas simples
3. Terminales bidireccionales
4. Salida con retroalimentación
...
component Componente_s
port(
--Prototipo del componente s
);
end component;
-- Sentencias descriptivas
End Nombre_de_la_arquitectura;
Sentencias descriptivas
•Asignación directa
Sentencias concurrentes •Asignación condicional
•Llamado a componentes externos
•if
Sentencias secuenciales •case
•for
Sentencias concurrentes
Asignación directa:
La asignación directa se lleva a cabo de manera incondicional
Y<=X;
B:in std_logic;
C:out std_logic;
Z:in std_logic_vector(3 downto 0);
W:out std_logic_vector(7 downto o);
D<=‘0’; E<=“111”;
El nombre de sentencias secuenciales se deriva del hecho de que éstas son capaces de
formar elementos de memoria, los cuales requieren que el sistema se describa en términos
de la lógica secuencial. Las sentencias secuenciales tienen que ser englobadas dentro de
un proceso.
Nombre_del_Proceso: process(Lista_de_sensitividades)
Begin
--Sentencias secuenciales
end process Nombre_del_Proceso;
if, case y for
if case
if (condicion_1) then case vector_de_seleccion is
--Conjunto de asignaciones 1 when condicion_1=>
elsif (condicion_2) then --Conjunto de asignaciones 1
--Conjunto de asignaciones 2 when condicion_2=>
… --Conjunto de asignaciones 2
elsif (condicion_n) then …
--Conjunto de asignaciones n when condicion_n=>
else --Conjunto de asignaciones n
--Conjunto de asignaciones por omision when others =>
end case; --Conjunto de asignaciones por omision
end case;
for
for i in Inicio to Fin loop
--Asignaciones recursivas
end loop;
Diagrama de bloque de un circuito secuencial
Entradas Salidas
Circuito
combinacional
Elementos de
memoria
Máquina Mealy
Y
Combinacional
2
X
Combinacional N Memoria
1
P
Combinacional N Memoria
1
P
Las máquinas Moore los cambios en las salidas solamente atienden a los cambios
de estado y las entradas no tienen una conexión directa a la salida.
Nota importante:
El uso de la estructura if debe realizarse con mucho cuidado para evitar una síntesis
errónea. Principalmente el if se utiliza en procesos secuenciales, no combinacionales,
y una asignación con el if debe estar siempre acompañada de la asignación
concurrente de los valores por omisión.
Es momento de empezar
a
programar
Compuerta NAND
A
F
A B F
0 0 1
0 1 1
1 0 1
1 1 0
Pasos para simular
N. Actividad a realizar Comentario
Nota:
Ver las imágenes de las siguientes diapositivas que corresponden a cada actividad
Actividad # 1 y # 2
Actividad # 3
Waveform editor
New Waveform
Actividad # 4 y #5
Add Signals
Actividad # 6
Actividad # 7
Compuertas_Basicas
Z Y X X and Y Y and Z F
0 0 0 0 0 0
0 0 1 0 0 0
0 1 0 0 0 0
0 1 1 1 0 1
1 0 0 0 0 0
1 0 1 0 0 0
1 1 0 0 1 1
1 1 1 1 1 1
Conmutadores
Uno de los bloques funcionales de mayor relevancia en la electrónica digital son los
conmutadores, también conocidos como multiplexores y demultiplexores. El
principio básico de un conmutador es el de permitir el paso selectivo de una o
varias señales hacia uno o varios puntos.
S2 S1 S0 Y
0 0 0 I0
0 0 1 I1
0 1 0 I2
0 1 1 I3
1 0 0 I4
1 0 1 I5
1 1 0 I6
1 1 1 I7
Demux_2_4
S1 S0 Y3 Y2 Y1 Y0
0 0 0 0 0 X
0 1 0 0 X 0
1 0 0 X 0 0
1 1 X 0 0 0
Circuitos aritméticos
Sumadores
Restadores
Multiplicadores
Sumadores
El elemento más básico de los circuitos aritméticos es el medio sumador. Este circuito
suma dos palabras de 1 bit y entrega como resultado la suma y el acarreo correspondiente.
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
El sumador medio no contempla la posibilidad de sumar en forma secuencial y para poder
realizar esto, se necesita un sumador completo.
A B Ci Co S
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
En una aplicación práctica no resulta útil sumador 2 ó 3 bits, ya que normalmente se
utilizan sumadores con una mayor cantidad de bits. El diseño de estos sumadores más
grandes tienen tres formas principales de ser realizado:
• Cascada
• 2-niveles
• Acarreo adelantado
En cascada
Realización en dos niveles
Para obtener los siguientes bits se utiliza la recursión de fórmulas de tal manera que:
Las ecuaciones para los bits superiores del sumador en dos niveles de compuertas se
complica extremadamente, de hecho, llega un punto que los circuitos requieren de
tantas entradas que la velocidad comienza a decrecer y ya no es una ventaja el diseño
en dos niveles. Sin embargo, existe un sumador denominado acarreo de propagación
adelantada o CLA (Carry Look-Ahead). La técnica CLA utiliza dos niveles de lógica que
se traducen en cuatro niveles de compuertas. El retardo es mayor que en el sumador
en dos niveles, pero es mucho menor que en el sumador en cascada.
La técnica CLA consiste en generar un primer nivel lógico con funciones parciales y en
base a estas, generar las funciones de suma. Las funciones intermedias de un sumador
con acarreo de propagación adelantada se llaman generadora, Gi, y propagadora Pi,
respectivamente.
Para que el segundo nivel lógico permanezca en una realización de dos niveles de
compuertas, se desarrollan, recursivamente, las expresiones para el acarreo, de tal
forma que:
Sección de propagación y Sección CLA Sección de suma
generación
Selector de operandos