Traducción de Systemverilog a Verilog

4

Tengo un bloque de código (varios archivos) en Systemverilog. Estoy usando el flujo de herramientas Xilinx que no comprende SystemVerilog (una parte antigua). ¿Existe una herramienta (o un libro de reglas) que pueda usar para convertir SystemVerilog a código Verilog-2001 estándar?

    
pregunta boffin

2 respuestas

7

No tengo conocimiento de ninguna herramienta que realice la conversión automáticamente. Podrías hacerlo a mano o escribir tu propio guión. Aquí hay una lista de SystemVerilog común a Verilog-2001 (o viceversa)

  • conversiones fáciles:
    • always_comb - > %código%
    • always @* - > always_latch , puede querer agregar una directiva de síntesis para pestillo
    • always @* - > %código%
    • always_ff - > always o int
    • integer - > %código%
    • reg signed [31:0] - > shortint o reg signed [15:0]
    • longint / time - > %código%
    • reg signed [63:0] - > %código%
    • bit - > Eliminar y agregar directivas de síntesis logic
    • reg - > Eliminar y agregar directivas de síntesis byte
  • conversiones más desafiantes:
    • reg [7:0] - > %código%
    • unique / full_case parallel_case / priority - > igual que full_case y sustituya todos var = '0; con var = {PARAM_VAR_BITS{1'b0}}; / '1 / 'X respectivamente
    • 'Z - > si ninguna otra función lo llama, entonces '0 else 0 cualquier llamada debe asignar un bit ficticio.
    • 1 - > o bien agregue cada red a la lista de puertos del módulo correspondiente o cree X archivos.
    • Z - > haga que cada elemento sea function void , haga que la variable de la matriz empaquetada (también conocida como vector IEEE 1364) de task
    • function reg - > o bien separe cada elemento o haga un bus con interface como claves de posición
    • 'include - > igual que enum más algunas conexiones de bus inteligentes (ej: parameter )
respondido por el Greg
1

Sé que esto es antiguo, pero solo para compartir una solución que usé. No es una gran, pero aquí está. Utilice el compilador RTL con sintetizar -to_generico. Eso crea un netlist compatible con Verilog. Esto no es perfecto porque también implementa la lógica de flip-flop en términos que no son exactamente óptimos para las herramientas de Xilinx.

    
respondido por el nachum

Lea otras preguntas en las etiquetas