Tutorial: ModelSim version MentorGraphics
Versión de estudiante (limitada a 10.000 lineas, inactivas varias funcionalidades, no se
pueden mezclar lenguajes, restringido a VHDL y Verilog, …. )
La versión con la que se ha realizado este
tutorial es la 10.4a
1
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Índice
-Antes de empezar el diseño
-Flujos de trabajo
-Arranque de la herramienta
-Librerías iníciales
-Estructura de las ventanas
-Pasos para realizar la simulación
-1) Crear un proyecto
-2) Compilar
-3) simular
-Tareas a realizar
2
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar
- Crearse una carpeta (Mux_sintesis), y llevarse alli
los ficheros con los que se vaya a trabajar
(bajarselos de Moodle)
Importante: la ruta donde está la carpeta donde se va a trabajar no debe
tener blancos ni acentos - Por ejemplo INFORMÁTICA INDUSTRIAL no
serviría
3
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar: Fichero: mux_bus.vhd
•Entidad y arquitectura de
mux2:1
•Las entradas son vectores
de num_bits
•Los datos son binarios sin
signo del paquete
NUMERIC_STD
4
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar: Fichero: mux_bus.vhd
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; •Entidad y arquitectura de mux2:1
USE IEEE.NUMERIC_STD.all; •Las entradas son vectores de
num_bits
ENTITY mux_bus IS •Los datos son binarios sin signo del
GENERIC (num_bits : IN POSITIVE); paquete NUMERIC_STD
PORT (
control: IN STD_LOGIC;
data_in0, data_in1: IN UNSIGNED ((num_bits - 1) DOWNTO 0);
data_out: OUT UNSIGNED((num_bits - 1) DOWNTO 0)
);
END mux_bus;
ARCHITECTURE simple OF mux_bus IS
BEGIN
data_out <= data_in0 WHEN control = '0' ELSE data_in1;
END simple;
5
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar: Fichero: mux_bus_tb.vhd (1)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all; Entidad y arquitectura para test
USE IEEE.NUMERIC_STD.all;
-- Entidad para test
ENTITY test_mux_bus IS
END test_mux_bus;
-- Arquitectura para test
ARCHITECTURE test_mux_bus_arq of test_mux_bus IS
-- Parte declarativa
-- Declaración de componentes
COMPONENT mux_bus IS
GENERIC (num_bits : IN POSITIVE:= 3);
PORT (control: IN STD_LOGIC;
data_in0, data_in1: IN UNSIGNED ((num_bits - 1) DOWNTO 0);
data_out: OUT UNSIGNED((num_bits - 1) DOWNTO 0));
END COMPONENT;
6
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar: Fichero: mux_bus_tb.vhd (2)
-- Declaración de señales auxiliares
CONSTANT ciclo: TIME := 10 ns; -- para sincronizar la generación de señales
SIGNAL selector_entrada: STD_LOGIC:= '0';-- se inicializa a 0 para que arranque la
-- secuencia NOT
SIGNAL dato_entrada0,dato_entrada1 : UNSIGNED (2 DOWNTO 0);
SIGNAL salida: UNSIGNED (2 DOWNTO 0);
-- Comienzo de la arquitectura
BEGIN
selector_entrada <= NOT selector_entrada AFTER ciclo/2; -- la señal cambia cada ½
-- ciclo
-- Conexionado de los puertos del componente con las señales de entrada
U1: mux_bus GENERIC MAP (num_bits => 3)
PORT MAP (control => selector_entrada,
data_in0 => dato_entrada0,
data_in1 => dato_entrada1,
data_out => salida);
7
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Antes de empezar: Fichero: mux_bus_tb.vhd (3)
-- Generación de los datos de entrada “cero” en UNSIGNED con 3 bits (valores ascendentes)
PROCESS
BEGIN
FOR i IN 0 TO 7 LOOP
dato_entrada0 <= TO_UNSIGNED (i,3); -- convierte el valor de i a 3 bits
WAIT FOR ciclo; -- espera un tiempo = definido en ciclo
END LOOP;
END PROCESS;
-- Generación de los datos de entrada “uno”en UNSIGNED con 3 bits (valores descendentes)
PROCESS
BEGIN
FOR j IN 7 DOWNTO 0 LOOP
dato_entrada1 <= TO_UNSIGNED (j,3); -- convierte el valor de j a 3 bits
WAIT FOR ciclo; -- espera un tiempo = ciclo
END LOOP;
END PROCESS;
END test_mux_bus_arq;
8
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Flujos de trabajo
Flujo básico de simulación
Flujo de un proyecto (más facil)
para trabajar con distintas
librerias No hay que
crearse una
libreria de trabajo.
La crea la
herramienta
Los proyectos
permanecen
accesibles cuando
la herramienta
está abierta a no
ser que se cierren
explicitamente
9
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Arranque de la herramienta
10
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Librerias iniciales
11
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Estructura de las ventanas
La vista de las ventanas se puede personalizar en VIEW
12
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 1. Crear proyecto
Seleccionado por el usuario, es
conveniente que sea el mismo que
la entidad más alta de la jerarquia
Donde estan ubicados los ficheros
fuente
Crea la libreria WORK
13
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 1. Crear proyecto – Añadiendo ficheros
14
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 2. Compilar un diseño - Opciones
Funciones de compilación
15
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 2. Compilar un diseño – Opciones
Si no se añaden los ficheros al proyecto – se abren desde la carpeta donde
estan ubicados
16
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 2. Compilar un diseño - Opciones
Si no se añaden los ficheros al proyecto – se abren desde la carpeta donde
estan ubicados
17
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 2. Compilar un diseño – Resultados en WORK
Si hay errores de compilacion no
incluye las unidades de diseño en la
libreria WORK
18
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Seleccionar el diseño
Seleccionando el fichero desde la pestaña de simulación o bien haciendo
doble clic sobre él en la libreria work
19
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Ventanas informativas
Objetos – Constantes
variables, señales, nets
Jerarquia del diseño
Procesos – Sentencias
concurrentes
20
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Ventanas informativas
21
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Abrir una ventana para las ondas
22
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Añadir ondas a visualizar
Se debe seleccionar de que
item se quieren visualizar las
ondas
23
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Añadir ondas a visualizar
Efecto de incluir todas los items del diseño
24
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Añadir ondas a visualizar
Efecto incluyendo las señales una a una
25
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Seleccionar las condiciones de simulación
Hemos incrementado el valor
por defecto de 100 ns a 200 ns
26
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Ejecutar la simulacion
Ejecuta la simulacion durante 100 ns
Ejecuta la simulación
durante el periodo
seleccionado
27
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
Para que se activen las funcionalidades de las ondas hay que desanclar la ventana
28
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
UTILIZACION DEL ZOOM
29
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
ZOOM
30
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
Formatos de visualización
-- Generación de los datos de entrada “cero” en UNSIGNED con 3 bits (valores
ascendentes)
PROCESS
BEGIN
FOR i IN 0 TO 7 LOOP
dato_entrada0 <= TO_UNSIGNED (i,3); -- convierte el valor de i a 3 bits
WAIT FOR ciclo; -- espera un tiempo = ciclo
END LOOP;
END PROCESS;
31
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
Se añaden más cursores
Click con boton izquierdo para
avanzar el cursor
32
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
3. Simular – Visualización de resultados
Se cambian las propiedades del grid
Para medir la diferencia entre dos cursores se bloquea uno de ellos se pone en rojo y marca el valor
33
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Pasos: 3. Simular – Visualización de resultados
34
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid
Tareas a realizar
- Sobre los ficheros mux_bus.vhd, mux_bus_tb.vhd, realizar las siguientes
modificaciones:
a) Cambiar el número de bits de las entradas del MUX a 4 bits
b) Los valores de la señal dato_entrada0 seran descendentes de 15 a 0
c) Los valores de la señal dato_entrada1 seran ascendentes de 0 a 15
d) El periodo de la señal selector_entrada sera de 8 ns
- Simular con ModelSim durante un tiempo de 300 ns
- Entrega de la captura de pantalla en Moodle
35
© Grupo de Tecnología de Computadores.- V. Rodellar
Departamento de Arquitectura y Tecnología de Sistemas Informátic Facultad de Informática – Universidad Politécnica de Madrid