puede verilog do 'si está definido (ALGO) ...' elsif definido (SOMETHING_ELSE) ... 'endif?

5

Estoy bastante seguro de que he hecho algo como esto en C antes, donde tengo una variedad de opciones, pero solo una será verdadera en la compilación, y también me gustaría hacerlo para los simuladores de Verilog. Aunque no he encontrado nada al respecto. Esto es lo que me gustaría hacer:

define en la línea de comandos uno de los FLASH_IS _ ??? nombres para la corrida actual

en el archivo testbench:

'if defined(FLASH_IS_1MB)
    'define FLASH_TEA              19000000000 //19s max for 1MB erase cycle
'elsif defined(FLASH_IS_512KB)
    'define FLASH_TEA              12000000000 //12s max for 512KB erase cycle
'elsif defined(FLASH_IS_256KB)
    'define FLASH_TEA               6000000000 //6s max for 256KB erase cycle
'elsif defined(FLASH_IS_128KB)
    'define FLASH_TEA               4000000000 //4s max for 128KB erase cycle
'endif

...

#'FLASH_TEA; //wait for erase time

...
    
pregunta billt

1 respuesta

2

Esto funciona:

'ifdef FLASH_IS_1MB 
    'define FLASH_TEA              19000000000 //19s max for 1MB erase cycle
'elsif FLASH_IS_512KB
    'define FLASH_TEA              12000000000 //12s max for 512KB erase cycle
'elsif FLASH_IS_256KB
    'define FLASH_TEA               6000000000 //6s max for 256KB erase cycle
'elsif FLASH_IS_128KB
    'define FLASH_TEA               4000000000 //4s max for 128KB erase cycle
'endif
    
respondido por el Thorn

Lea otras preguntas en las etiquetas