"El valor numérico excede la capacidad de 32 bits" error en QuestaSim

0

En el banco de pruebas para un módulo SystemVerilog, tengo la siguiente declaración de matriz e inicialización:

real testVals [][] = '{
    '{1.5, 1.5}, 
    '{2.0, 3.0},
    '{0.0, 0.0},
    '{-1.5, 1.5},
    '{-1.5, 4.0},
    '{-1.5, 3.0},
    '{-1.5, -3.0},
    '{9.5E255, 4.2E200},
    '{9.5E500, 4.2E200}   // line 63
};

Cuando intento compilar el código usando QuestaSim, recibo este error:

  

** Error: (vlog-13037) fp_adder_tb.sv (63): cerca de "9.5E500": el valor numérico excede la capacidad de 32 bits.

¿Por qué recibo un error sobre un límite de capacidad de 32 bits cuando el tipo de datos es real ? Esto tendría sentido para un entero o int, pero debería ser un flotador de doble precisión. Además, 9.5E255 también está más allá del rango de un valor de 32 bits. ¿Por qué está bien? Si elimino la línea ofensiva, se compila sin problemas.

Versión QuestaSim: QuestaSim-64 vlog 10.4c Compilador 2015.07 19 de julio de 2015

    
pregunta skrrgwasme

1 respuesta

3

Incluso los números de punto flotante tienen límites. 9.5e + 500 está fuera de los límites de binary64 (4.9e-324 a 1.8e + 308), que es lo que implementa real .

En cuanto a por qué se quejan de la "capacidad de 32 bits", no te lo podría decir. Podría ser un error de compilación.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas