



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: DSD, Profesor: , Carrera: Ingeniería Informática - Ingeniería de Computadores, Universidad: US
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




En lo que sigue se han resumido los pasos básicos para realizar simulaciones con Modelsim.
Puedes acceder a documentación más completa en el help del propio simulador.
Si ya la tienes puedes omitir este paso.
Seleccionar Menú File -> New -> Library Seleccionar la opción a new library and a logical mapping to it Indicar nombre work para el Library Name y para el Physical Name
La librería work se añade a la lista en la pestaña Library del Workspace
Si ya dispones de ellos puedes omitir este paso.
Seleccionar Menú File -> New -> Source -> Verilog Editar el código Salvar (elegir un nombre con extensión .v)
Seleccionar Menú Compile -> Compile Seleccionar los ficheros que se quieren compilar
El correspondiente módulo debe de aparecer en la librería de trabajo en el Workspace. Si se modifica un código que ya había sido compilado no olvidar recompilarlo.
Picar dos veces el módulo que se quiere simular
Aparecen nuevas pestañas en el Workspace y se selecciona automáticamente la pestaña Sim.
Con el modulo seleccionado en la pestaña Sim del Workspace seleccionar Menú Add -> Wave -> Selected instante
El visualizador de formas de onda se abre.
Seleccionar el tiempo que se quiere simular en la parte central de la barra superior y pulsar el icono inmediatamente a la derecha. Se puede simular más tiempo picando de nuevo dicho icono.
Trabajar con proyectos es cómodo porque todas las fuentes añadidas se muestran en la vista Project del Workspace. Esto permite, entre otras cosas, manejarlos y editarlos con comodidad.
Seleccionar Menú File -> New -> Project Indicar nombre para el proyecto, localización y work para Default Library name
Se crea la pestaña Project en el Workspace Se abre una ventana que permite añadir ítems al proyecto. Puede, por ejemplo, añadirse los ficheros fuentes si ya se tienen ó crearlos nuevos
Siguiendo los pasos indicados obtendríamos las siguientes formas de onda:
Simulando con Modelsim el siguiente código:
`timescale 1ns/10ps module ejemplo2(in1, in2, sal); input in1, in2; output sal; assign sal = in1 & in2; endmodule
en el visualizador de formas de onda obtengo, independientemente del tiempo que deje correr la simulación, HiZ (alta impedancia, línea azul en la configuración por defecto) para in 1 e in 2 y desconocido (línea roja en la configuración por defecto) para sal.
En este caso necesito un testbench en él que instanciar el módulo anterior y asignar valores a in 1 e in 2 (estímulos para la simulación). Por ejemplo:
`timescale 1ns/10ps module testbenchejemplo2();
reg in1, in2; // no es obligatorio que use los mismos nombres que en la descripción // del module ejemplo
ejemplo2 dut (in1, in2, sal); // se instancia
initial // aplico las cuatro combinaciones de entrada. Una cada 10ns begin in1 = 0; in2 = 0; #10 in1 = 1; #10 in2 = 1; #10 in1 = 0; end endmodule
La simulación del módulo testbenchejemplo2 (el módulo ejemplo2 también tiene que estar compilado en la librería de trabajo) proporciona el siguiente resultado