backtick en constante numérica verilog

2

Así que estaba escribiendo un verilog en quartus y preguntándome por qué diablos se estaba portando mal.

Finalmente, descubrí que el problema eran algunas constantes en las que había usado inadvertidamente una marca inversa en lugar de una comilla simple. Por ejemplo, tuve "32'hdeadbeef" en lugar de "32'hdeadbeef"

Lo que me sorprende es que este compilado, ¿encontré un error en el quartus? ¿Es esto un poco oscuro de sintaxis verilog? Si es así, ¿qué significa?

    
pregunta Peter Green

2 respuestas

1

Acabo de leer el estándar IEEE sobre macros y definiciones. No hay nada allí que diga que el nombre de la macro debe ser conocido. (En su caso, 'hdeadbeef no coincidiría con ninguna definición).

Sin embargo, puedo imaginar que no definan eso, ya que sería demasiado descabellado.

Usando el sentido común, diría que es un error en el analizador.

Especular:
Se permite lo siguiente:

'ifdef this_variable_is_not_defined

Entonces, tal vez el código para eso también se usó para 'this_macro_does_not_exist

    
respondido por el Oldfart
0

Lo más probable es que sea un error y debería haber sido un error. El backtick 'solo se usa con las directivas del compilador

    
respondido por el dave_59

Lea otras preguntas en las etiquetas