Cómo utilizar Debussy y ModelSim para co-simulación
Este artículo presenta cómo usar Debussy y ModelSim para realizar co-simulación, y usar Verilog, VHDL y Verilog con VHDL para realizar simulación cruzada juntos.
Introducción
Entorno de uso: Debussy 5.4 v9 ModelSim SE 6.3e
He estado usando Debussy NC-Verilog para simulación antes, y Debussy (Verdi) puede Se dice que Source Insight de HDL es una poderosa herramienta para rastrear y depurar. NC-Verilog también es el más rápido entre los simuladores de Verilog. Sin embargo, debido a necesidades de trabajo recientemente, obtuve un paquete de código que usa Verilog para escribir RTL y VHDL. Escriba testbench. Por lo tanto, dos idiomas deben simularse juntos. No he podido simular con éxito los dos idiomas juntos en NC-Verilog. Aunque ModelSim admite la co-simulación Verilog VHDL, estoy acostumbrado a Debussy y todavía no puedo olvidar su conveniente método de código de rastreo, por lo que sería perfecto si ModelSim también pudiera volcar los archivos fsdb requeridos por Debussy.
Lo siguiente se discutirá de 4 maneras
1. Tanto RTL como testbench usan Verilog
2 Tanto RTL como testbench usan VHDL
<. p>3.RTL usa VHDL, testbench usa Verilog4.RTL usa Verilog, testbench usa VHDL
1.RTL y testbench usan Verilog
Paso 1:
Configure ModeSim para usar Verilog PLI (porque testbench usa Verilog)
Copiar C:\Novas\Debussy\share\PLI\modelsim_pli\WINNT\novas.dll a C: \Modeltech_6.3e\win32\under
Modifique C:\Modeltech_6.3e\modelsim.ini y modifique la parte de Veriuser de la siguiente manera:
; Lista de objetos cargados dinámicamente para Verilog PLI aplicaciones
; Veriuser = veriuser.sl
; uso por verilog
Veriuser = novas.dll
; p>
; Veriuser = novas_fli.dll
modelsim.ini es un archivo de sólo lectura. Recuerde modificar sus propiedades antes de poder guardarlo.
Paso 2:
Parte RTL (tomando el contador de 4 bits como ejemplo)
counter.v/Verilog
1 /*
2 (C) OOMusou 2011 blogs.com
3
4 Nombre de archivo: counter.v
5 Simulador: ModelSim 6.3e , Debussy 5.4 v9
6 Descripción: ModelSim con debussy
7 Lanzamiento: 31/01/2010 1.0
8 */
9
Contador de 10 módulos (
11 clk,
12 rst_n,
13 cnt
14)
15
16 entrada clk;
17 entrada rst_n
18 salida [3:0]
19
20 reg [3:0] cnt;
21
22 siempre@(posedge clk, negedge rst_n) comenzar
23 if (~rst_n)
24 cnt lt; = 4'h0;
25 else
26 cnt lt; b1 ;
27 end
28
29 endmodule
Paso 3:
Parte del banco de pruebas
counter_tb.v / Verilog
1 /*
2 (C) OOMusou 2011 blogs.com
3
4 Nombre de archivo: counter_tb.v
5 Compilador: ModelSim 6.3e, Debussy 5.4 v9
6 Descripción: ModelSim con debussy
7 Lanzamiento: 31/01/ 2010 1.0
8 */
9
10 módulo counter_tb
11
12 reg clk;
13 reg rst_n;
14 cables [3:0] cnt
15
16 // 50MHz
17 siempre #(10) clk = ~clk;
18
19 inicio inicial
20 #0; 21 clk = 1'b0;
22 primer_n = 1'b0;
23
24 #5
25 primer_n = 1'b1;
26
#195;
27 $finalizar
28 finalizar
29
30 inicio inicial
31 $ fsdbDumpfile("counter.fsdb");
32 $fsdbDumpvars(0, counter_tb);
33 fin
34
35 contador u_counter (
36 .clk(clk),
37 .rst_n(rst_n),
38 .cnt(cnt)
39 );
40
41 módulo final
19 líneas
comienzo inicial
#0;
clk = 1'b0;
primero_n = 1'b0;
#5; p>
p>
#195;
$finish;
end
En pocas palabras, si hacemos simulación en NC- Verilog, lo haremos en el banco de pruebas. Especifique el tiempo para finalizar la simulación. Sin embargo, en ModelSim, el tiempo de simulación está controlado por el script ModelSim. Es inútil escribir $finish en el banco de pruebas, por lo que se omitirá el tiempo de $finish. .
comienzo inicial
#0
clk = 1'b0
rst_n = 1'b0; p> #5;
rst_n = 1'b1;
end
Paso 4:
Parte del script de ModelSim
vsim.do
vlib trabajo
vlog counter.v
vlog counter_tb.v
vsim counter_tb
run 200ns
q
Entre ellos
vlib work
crea la biblioteca de trabajo.
vlog counter.v
vlog counter_tb.v
Compile RTL: counter.v y testbench: counter_tb.v, vlog es el compilador Verilog de modelsim.
vsim counter_tb
Utilice counter_tb como módulo superior para la simulación.
ejecutar 200 ns
Instruye a ModelSim a realizar una simulación de 200 ns.
q
Salir de ModelSim
Paso 5:
Ejecutar el archivo por lotes de ModelSim
mod.bat
vsim -c -do sim.do
-c significa que ModelSim se ejecutará en modo consola, porque en Debussy ModelSim, ModelSim solo se usa como NC-Verilog, que es inútil. Vaya al modo GUI de ModelSim.
-do significa ejecutar el script ModelSim.
Resultados de la ejecución
D:\0Clare\VerilogLab\ModelSim\counter_veriloggt; vsim -c -do sim.do
Lectura C:/Modeltech_6.3e/ tcl/vsim/pref.tcl
# 6.3e
# do sim.do
# ** Advertencia: (vlib-34) La biblioteca ya existe en "trabajo".
# Model Technology ModelSim SE vlog 6.3e Compilador 2008.02 2 de febrero de 2008
# -- Compilando el contador del módulo
#
# Módulos de nivel superior:
# contador
# Model Technology ModelSim SE vlog 6.3e Compilador 2008.02 2 de febrero de 2008
# -- Módulo de compilación counter_tb
#
# Módulos de nivel superior:
# counter_tb
# vsim counter_tb
# ** Nota: (vsim-3813) El diseño se está optimizando debido a la recompilación del módulo...
# ** Nota: (vsim-3865) Debido a la presencia de PLI, se está especificando acceso completo al diseño.
# Cargando C:\Modeltech_6.3e\win32/novas.dll
# // ModelSim SE 6.3e 2 de febrero de 2008
# //
# // Copyright 1991-2008 Mentor Graphics Corporation
# // Todos los derechos reservados.
# //
# // ESTE TRABAJO CONTIENE SECRETO COMERCIAL Y
# // INFORMACIÓN DE PROPIEDAD QUE ES PROPIEDAD
# // DE MENTOR GRAPHICS CORPORATION O SUS LICENCIANTES
# // Y ESTÁ SUJETA A LOS TÉRMINOS DE LICENCIA .
# //
# Cargando work.counter_tb(rápido)
# Cargando work.counter(rápido)
# Novas FSDB Dumper para ModelSim, versión 5.4v9 (Win95/NT) 04/05/2005
# Copyright (C) 1996 -
2004 por Novas Software, Inc.
# *Novas* Crear archivo FSDB 'counter.fsdb'
# *Novas* Comience a volcar el alcance (counter_tb), capa (0).
# *Novas* Fin del volcado.
# ** Nota: $finish: counter_tb.v(27)
# Tiempo: 200 ns Iteración: 0 Instancia: /counter_tb
Reimpreso solo como referencia, los derechos de autor pertenecen al autor original. Te deseo una vida feliz, acéptala si estás satisfecho