Pregunta sobre cómo forzar las señales verilog netlist en la simulación

1

Estoy usando ModelSim para simular un diseño con verilog netlist y verilog RTL.

Mi jerarquía de diseño de verilog es así: tb crea una instancia de inv_dual_tb ; inv_dual_tb crea una instancia de GF_INV_8_tb ;

Hay varias señales en GF_INV_9_tb que me interesan. Hay una señal llamada c , ( c es de 2 bits), así que intento forzar el valor en mi archivo do (vsim -do 'fuerza .....'):

force \/tb/inv_dual_tb/GF_INV_8_tb/c\[0\] 0 0ns

Esto funciona bien. Pero hay otra señal en GF_INV_9_tb llamada /tb/inv_dual_tb/GF_INV_8_tb/\pmul/p (esto es de 2 bits), así que probé el comando a continuación. Pero ModelSim sigue quejándose. También adjunto la información de error a continuación.

force \/tb/inv_dual_tb/GF_INV_8_tb/\pmul/p\[0\]\  0 0ns
# ** Error: (vish-4008) Object '/tb/inv_dual_tb/GF_INV_8_tb/\pmul/p[0]' not found.

Nota: Modelsim no puede manejar el caso que mencioné. Pero la solución provista por dwikle puede manejar casos de un solo bit o varios bits sin caracteres de escape

    
pregunta drdot

1 respuesta

2

Coloque el nombre de la señal entre llaves e incluya un espacio después del nombre de la señal de escape.

force {/tb/inv_dual_tb/GF_INV_8_tb/\pmul/himul/abcd } 0 0ns

Otra opción, o simplemente como una forma de verificar la sintaxis de TCL correcta, es aplicar la fuerza en la GUI y ver qué se refleja en la ventana de la transcripción.

    
respondido por el dwikle

Lea otras preguntas en las etiquetas