Laboratorio 02
Laboratorio 02
Laboratorio 02
ESCUELA DE ELECTRÓNICA
LABORATORIO DE SISTEMAS DIGITALES
LABORATORIO DEL QUARTUS II AL
MODELSIM ALTERA
Objetivo:
Logro:
Introducción:
Figura 1
3. Haga clic en siguiente. Le saldrá una ventana, ver fig 2, que le dice que
el directorio no existe y si lo quiere crear, acepte.
Figura 2
--*************************************
-- diseñador: Gustavo Roselló
-- Entidad: Universidad Ricardo Palma
-- Facultad: Ingeniería, Escuela de Electrónica
--Descripcion: Implementación de un circuito simple en VHDL,
-- Nombre del archivo: lab_logica.vhd
--************************************************
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity lab_logica is
port ( x1,x2,x3: in std_logic;
F: out std_logic );
end lab_logica;
End func;
--*************************************************
Figura7 código VHDL del circuito lablogica
Figura 8
Las líneas verdes, son comentarios, las palabras azules son palabras
reservadas para el compilador, y las palabras rojas son las funciones que
usamos.
Figura 9
Figura 10
Figura 11
Figura 12
Figura 13
figura 14
Figura 15
Los fabricantes de FPGA han modificado su EDA para dejar de producir las
formas de onda directamente como modo de prueba del diseño esquemático,
pasando a realizar la simulación a partir de la versión HDL desde lo que se
llama tesbench.
Un banco de pruebas tiene una entidad sin puertos, una caja sin señales de
conexión exterior, es decir está vacía, esto es porque el banco de prueba
mismo no tiene entradas ni salidas. Su estructura contiene un componente que
corresponde al circuito que se desea simular. Así mismo contiene la alteración
de todas las señales de entrada, que llamaremos estímulos o vectores de
prueba, del componente, para poder abarcar un mayor número de casos de
prueba. Los vectores de prueba se generan y se aplican al dispositivo bajo
prueba en el Banco de pruebas. Tenga en cuenta que es ilegal tener un cuerpo
de arquitectura sin una declaración de la entidad.
El test-bench es un tipo de descripción entre la estructural y la comportamental.
Se utiliza para comprobar el correcto funcionamiento de los modelos mediante
un programa independiente de la plataforma de compilación-simulación.
La arquitectura cuenta con una instancia del modelo bajo test y un proceso que
le inyecta señales. Las señales de entrada adoptarán los valores que se
requiera en el instante de tiempo preciso para comprobar el correcto
funcionamiento del modelo.
Componentes
Pero para simular el archivo aun es necesario crear otro archivo, se le llama test bench
o banco de prueba, afortunadamente el quartus lo genera automáticamente, para ello
del menú desplegable seleccione:
PROCESSING START START TESTBENCH TEMPLATE WRITER.
Figura 17
Luego de crearlo el archivo, este tendrá el mismo nombre pero con otra extensión de
archivo, ábralo con open file y cambie el tipo de archivo por el de test bench output
files, tal como se muestra en la figura 18.
Figura 18
El archivo debe ser como el que se muestra en la figura 19, observe que la entidad es
easy_vhd_tst , contiene las declaraciones de señales, el componente y el mapeo
después crea dos procesos init y always, son procesos que inician el circuito y otro
que siempre se ejecuta. No es necesario mantenerlos y puede si quiere solo tener un
solo proceso.
Figura 19
Guarde el archivo con el mismo nombre borrando vhd_tst reemplazandolo con _tb y
con extension .VHD. Tal como se muestra en la ventana de la figura 20. No se olvide
que es importante que reemplace dentro del archivo vhd_tst con _tb, sino no va
funcionar su simulación.
Figura 20
Agregarle las siguientes expresiones en uno de los process y elimine el otro, para
luego poder usarlo como patrón de estímulos de las señales, para ver luego las formas
de ondas directamente.
for Z in 1 to 4 loop --declaro un evento ciclico por equivalente al tiempo de simulación de 800ns
clk <= '1' ;
wait for 100 ns ; -- tiempo que el 1 esta activo
clk <= '0' ;
wait for 100 ns ; -- tiempo que el cero esta activo
end loop; -- hasta los 900 ns, repite patron del loop.
-- "Constant Pattern"
-- Start Time = 0 ns, End Time = 1 us, Period = 0 ns
Process
Begin
mm <= '1' ;
wait for 1 us ;
-- dumped values till 1 us
wait;
End Process;
-- "Constant Pattern"
-- Start Time = 0 ns, End Time = 1 us, Period = 0 ns
Process
Begin
pc_in <= "00000000000000000001000100010001" ;--00001111
wait for 320 ns ;
pc_in <= "11111111111111111110111011101110" ;--FFFFEEEE
wait for 192 ns ;
pc_in <= "00000000000000000001000100010001" ;--00001111
wait for 488 ns ;
-- dumped values till 1 us
wait;
End Process;
Para el caso que nos interesa declararemos las señales X1; X2; X3 como reloj pero
cada una del doble de periodo que el anterior.
Figura 21
Figura 22
Figura 23
Figura 24
Figura 25
Figura 26
Figura 27
Observe que es un archivo tipo estructural, como el bloque es uno solo, este es un
solo componente, antes de describir la arquitectura, se define el componente a
instanciar, luego en la arquitectura se mapea al componente de manera explícita y se
cierra el archivo.
Luego cree un test bench a partir de él, para ello retome los pasos desde la página 10
hasta la página 15 y realice la simulación en el Modelsim y muestreselo al docente.