Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> VHDL

Guía para principiantes sobre el uso de Modelsim para simulación FPGA y ASIC

Tutorial:uso de Modelsim para simulación, para principiantes.

Modelsim es un programa creado por Mentor Graphics que se utiliza para simular sus diseños VHDL y Verilog. Es el programa de simulación más utilizado en los negocios y la educación. Este tutorial explica primero por qué la simulación es importante y luego muestra cómo puede adquirir Modelsim Student Edition de forma gratuita para su uso personal.

La simulación es un paso crítico en el diseño de FPGA y ASIC. La simulación permite al diseñador estimular su diseño y ver cómo el código que escribió reacciona al estímulo. Una gran simulación ejercitará todos los estados posibles del diseño para garantizar que todos los escenarios de entrada se manejen adecuadamente. ¿Olvidaste una declaración if en alguna parte? ¿Recordó asignar todas las asignaciones de declaraciones de casos posibles? Estos son los tipos de errores que son muy fáciles de cometer cuando no simulas tu diseño. Empecemos.

¿Tienes Modelsim descargado e instalado en tu computadora? Consíguelo aquí. Realice la instalación con los parámetros predeterminados. Tenga en cuenta que deberá solicitar una licencia a Mentor Graphics . Al finalizar la instalación deberá seleccionar Finalizar y se abrirá una ventana del navegador con el formulario de Solicitud de Licencia. No funcionará hacer clic en un enlace de solicitud de licencia existente desde el marcador de su navegador o desde un enlace publicado en la web.

El código que simularemos es el diseño VHDL a continuación. El código real no es importante, así que si estás aprendiendo Verilog, ¡está bien! No necesitas saber VHDL para este tutorial. El código VHDL crea una puerta And simple y le proporciona algunas entradas a través de un banco de pruebas. Copie el siguiente código en and_gate.vhd y el banco de pruebas en and_gate_tb.vhd.

y_gate.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end and_gate;
architecture rtl of and_gate is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

and_gate_tb.vhd:

library ieee;
use ieee.std_logic_1164.all;
entity and_gate_tb is
end and_gate_tb;
architecture behave of and_gate_tb is
 signal r_SIG1 : std_logic := '0';
 signal r_SIG2 : std_logic := '0';
 signal w_RESULT : std_logic;
 
 component and_gate is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic);
 end component and_gate;
 
begin
 
 and_gate_INST : and_gate
 port map (
 input_1 => r_SIG1,
 input_2 => r_SIG2,
 and_result => w_RESULT
 );
 process is
 begin
 r_SIG1 <= '0';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '0';
 r_SIG2 <= '1';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '0';
 wait for 10 ns;
 r_SIG1 <= '1';
 r_SIG2 <= '1';
 wait for 10 ns; 
 end process;
 
end behave;

Abramos Modelsim. Serás recibido con una ventana similar a esta

Ventana principal de Modelsim

Para ejecutar su simulación, necesita crear un proyecto. Haga clic en Archivo -> Nuevo -> Proyecto. Verá la ventana presentada a la izquierda. Elija una ubicación para su nuevo proyecto y asígnele el nombre and_gate. Los proyectos en Modelsim tienen la extensión de archivo .prj. Deje las otras configuraciones en sus valores predeterminados. Esto simplemente dice que todo el código se compilará en la biblioteca "trabajo".

Haga clic en Agregar archivo existente como se muestra en la imagen de la derecha. Navegue hasta la ubicación donde descargó and_gate.vhd y and_gate_tb.vhd y agréguelos a su proyecto. Mantenga otras configuraciones en sus valores predeterminados. Haga clic en Aceptar cuando haya terminado.

Ventana de proyecto de Modelsim:archivos agregados al proyecto

Observe ahora que los archivos se han agregado correctamente a su proyecto. ¿Ves esos dos signos de interrogación azules en la figura de arriba de la ventana del proyecto Modelsim? Eso significa que Modelsim aún no ha compilado los archivos. Deberá compilar los archivos fuente. Para hacer esto, haga clic derecho en and_gate.vhd, haga clic en Compilar, luego haga clic en Compilar todo. Deberías ver mensajes en la ventana de la consola en verde indicando que la compilación se realizó correctamente, como se muestra en la captura de pantalla siguiente.

Resultados de una compilación exitosa

Para iniciar su simulación, haga clic en Simular en la barra de menú, luego haga clic en Iniciar simulación. Esto abre la ventana Iniciar simulación. Haga clic en el signo más al lado de trabajo, luego haga clic en el signo más al lado de and_gate_tb. Asegúrese de seleccionar and_gate_tb y no and_gate ya que queremos simular el diseño a nivel del banco de pruebas. Una vez resaltado and_gate_tb, haga clic en Aceptar.

Ventana de simulación de Modelsim:lista para simulación

¡Ya casi llegamos! La simulación está lista y esperando. Ahora, la mayor parte del tiempo que utilice Modelsim lo pasará mirando la vista de forma de onda. La vista de forma de onda contiene ondas (ceros y unos binarios, dígitos hexadecimales, dígitos binarios, tipos enumerados, etc.) para todas las señales de su diseño. Muestra cómo reacciona su módulo a diferentes estímulos. La siguiente figura muestra cómo se ve su vista de forma de onda, pero primero necesita agregar algunas señales para monitorear. En este ejemplo, monitorearemos todas las señales en el banco de pruebas. Para ello, haga clic derecho en and_gate_tb en la ventana de simulación y haga clic en Agregar Wave . También puedes hacer clic y arrastrar señales a la ventana de forma de onda desde otras ventanas en Modelsim.

Aquí está su ventana de forma de onda. Todas las señales del banco de pruebas se han agregado como señales que puede monitorear. Para ejecutar la simulación, haga clic en el ícono con un pequeño trozo de papel y una flecha hacia abajo al lado del tiempo de 100 ns. Esto ejecutará su simulación durante 100 nanosegundos. ¡Mira cómo cambian las señales! ¡Felicidades! ¡Has creado tu primera simulación de Modelsim!

Este tutorial le mostró cómo crear su propio proyecto en Modelsim, agregar archivos a su proyecto, compilar sus archivos fuente, iniciar su simulación y ver sus formas de onda. Está listo para explorar todos los ejemplos en esta página web y ejecutar las simulaciones usted mismo. Utilice la barra lateral en la parte superior de la página para navegar.


VHDL

  1. Cómo usar sentencias condicionales en VHDL:If-Then-Elsif-Else
  2. Verificación aleatoria restringida
  3. Cómo usar una función impura en VHDL
  4. Cómo crear un proceso sincronizado en VHDL
  5. Cuestionario VHDL básico - parte 1
  6. Servocontrolador RC usando PWM desde un pin FPGA
  7. Cómo retrasar el tiempo en VHDL:Esperar
  8. Cómo usar Loop y Exit en VHDL
  9. Cómo detener la simulación en un banco de pruebas VHDL
  10. Cuestionario básico de VHDL - parte 4
  11. Uso del analizador lógico integrado (ILA) y entrada/salida virtual (VIO)