¿Por qué declaramos las entradas de nuestro diseño como reg en testbench y las salidas como cable?

¿Por qué declaramos las entradas de nuestro diseño como reg en testbench y las salidas como cable ?

Respuestas (2)

La respuesta de Shashank es buena.

Me gustaría agregar que en un banco de pruebas más sofisticado, todas las señales de los pines del dispositivo bajo prueba podrían declararse como cables, ya que podría elegir que otro módulo controle sus entradas del dispositivo bajo prueba (es decir, un modelo funcional de bus).

Si todos sus estímulos provienen directamente del banco de pruebas, entonces tiene sentido declarar las señales de entrada del DUT como reg (o lógica) en el módulo del banco de pruebas.

¿Señales DUT Pin declaradas como cable? ¿Estás seguro de que eso es lo que quisiste decir?
Probablemente no debería haber usado el término "pin". Quise decir que todas las redes conectadas a los puertos en el DUT podrían declararse como cables en el caso de que las entradas del DUT sean impulsadas por otro modelo estructural instanciado en el banco de pruebas. (en lugar de conducirlos desde el código de comportamiento en el banco de pruebas).

Las entradas se declaran como regy las salidas como wiresolo en Verilog. En SystemVerilog, usamos logicpara simulación de 4 estados y bitpara simulación de 2 estados.

En Verilog, las entradas se declaran como regporque son variables que almacenan valores durante la simulación. El valor se almacena en las entradas de tipo reghasta que se sobrescribe con algún otro valor.

El tipo de datos wirese usa para las salidas porque las salidas en el banco de pruebas son impulsadas por el DUT (Dispositivo bajo prueba) continuamente y no almacenan ningún valor durante la simulación.

En SystemVerilog, declare una señal como wiresolo si espera que tenga varios controladores.

Lectura adicional: el excelente blog del Sr. Dave Rich sobre cable y registro en Siemens Blogs