Professional Documents
Culture Documents
Arquitectura de Computadoras
Israel A. Suaste Rivas
Universidad del Mayab
Israel_suaste@yahoo.com.mx
VHDL Contenido
z Memorias
z Datapath
z Otros
18/03/2006
Niveles de abstracción
VHDL para el modelado en VHDL
z Nivel comportamental
z Nivel lógico
18/03/2006
VHDL Modelado Comportamental
z Cuerpo de la arquitectura (Entidad)
z Describe la implementación de una entidad
z Puede haber varias entradas y salidas por entidad
z Arquitectura comportamental
z Describe el algoritmo ejecutado por el módulo
z Contiene Procesos, donde cada uno tiene:
z Comandos secuenciales, tales como
z Asignaciónd e señales y
z Comandos wait
18/03/2006
Ejemplo de Modelado Comportamental
VHDL – Registro de 4-bits
18/03/2006
VHDL Registro de 4-bits Implementado
bit0
d_latch
d0 q0
d q
clk
Este es el diagrama
bit1 esquemático del registro
d_latch
d1
d q
q1 de 4 bits que se utiliza
clk como ejemplo para
bit2
mostrar la diferencia
d2
d_latch
q2
entre un diseño
d q
comportamental y uno
clk
estructural
bit3
d_latch
d3 q3
d q
gate clk
and2
en int_clk
a y
clk
b
18/03/2006
VHDL Modelado Estructural
z Arquitectura estructural
z Se implementa a través de subsistemas
z Contiene
z Declaraciones de señales para conexiones
internas
z Los puertos de la entidad son tratados como señales
z Implementación de componentes
z Se hace uso de entidades/arquitecturas previamente
declaradas
z Mapeo de puertos en las instancias
z Conecta señales a los puertos de los componentes
z Comandos wait
18/03/2006
Ejemplo de una estructura
VHDL – Código VHDL para el registro de 4-bits
18/03/2006
Ejemplo de una estructura
VHDL – Código VHDL para el registro de 4-bits
Ahora se usan componentes para crear el registro
architecture struct of reg4 is
signal int_clk : bit;
begin
bit0 : entity work.d_latch(arq)
port map ( d0, int_clk, q0 );
bit1 : entity work.d_latch(arq)
port map ( d1, int_clk, q1 );
bit2 : entity work.d_latch(arq)
port map ( d2, int_clk, q2 );
bit3 : entity work.d_latch(arq)
port map ( d3, int_clk, q3 );
gate : entity work.and2(arq)
port map ( en, clk, int_clk );
end architecture struct;
18/03/2006
VHDL Banco de Pruebas (Test Bench)
18/03/2006
VHDL Modelado lógico
z Se interconectan compuertas
18/03/2006
Modelado lógico – Ejemplo
VHDL Sumador de 1 bit con acarreo
18/03/2006
Combinación de modelado
VHDL Comportamental y estructural
18/03/2006
VHDL Ejemplo Data path
multiplier multiplicand
shift_reg
control_ shift_
section adder
reg
product
18/03/2006
VHDL Data path (1)
entity datap is
port ( clk, reset : in bit;
multiplicand, multiplier : in integer;
product : out integer );
end entity datap;
18/03/2006
VHDL Data path (2)
…
multiplier_sr : entity work.shift_reg(behavior)
port map ( d => multiplier, q => mult_bit,
load => mult_load, clk => clk );
product <= full_product;
control_section : process is
-- variable declarations for control_section
-- …
begin
-- sequential statements to assign values to control signals
-- …
wait on clk, reset;
end process control_section;
end architecture mixed;
18/03/2006
VHDL Unidades Aritméticas - Sumadores
18/03/2006
Modelo comportamental
VHDL de un sumador de 8 bits
18/03/2006
Modelo estructural de un
VHDL sumador de 8 bits (1)
18/03/2006
Modelo estructural de un
VHDL sumador de 8 bits (1)
18/03/2006
Modelo estructural de un
VHDL sumador de 8 bits (1)
18/03/2006
Modelo comportamental de un
VHDL multiplicador sin signo de 5x4 bits
18/03/2006
VHDL Acumulador de 4 bits
18/03/2006
VHDL RAM 32x8
18/03/2006
VHDL ROM 32x8
18/03/2006
VHDL Registros
z Registro simple
z Registro con “load enable”
z Registro con “load enable” y “Async clear”
z Registro con “load enable”, “Async clear” y “Async
set”
z Registro con “load enable”, “Sync clear” y “Sync
set”
18/03/2006
VHDL Registro simple
Registro Simple
D Q
Clk
18/03/2006
Registro con
VHDL “Load Enable”
Data Q
Enable
Clk
18/03/2006
Registro con
VHDL “Load Enable” y “Clear asincrono”
Registro con
Enable y Clear
Data Q
Enable
Clk
ACLR
18/03/2006
Registro con “Ser asincrono”
VHDL “Load Enable” y “Clear asincrono”
Registro con
Enable y Clear
ASET
Data Q
Enable
Clk
ACLR
18/03/2006
Registro con “Set sincrono”
VHDL “Load Enable” y “Clear sincrono”
Registro con
Enable y Clear
ASET
Data Q
Enable
Clk
ACLR
18/03/2006
VHDL Conversión de Códigos
18/03/2006
VHDL Binario a BCD
18/03/2006
VHDL Binario a Hot
18/03/2006
VHDL Hot a binario
18/03/2006
VHDL Hot a binario (2)
18/03/2006
VHDL Priority encoder
18/03/2006
VHDL Binario a Gray
18/03/2006
VHDL Gray a Binario
18/03/2006
VHDL
z ADC
z DAC
18/03/2006
VHDL ADC
18/03/2006
VHDL DAC (1)
18/03/2006
VHDL Buffer de Tercer Estado
sel
my_in my_out
ibufe
18/03/2006
VHDL Buffer Bidireccional
Buffer
e Bidireccional
a Y
18/03/2006