He estado tratando de averiguar por qué mi programa verilog no funciona durante horas. Para probarlo, simplemente agregué algunas constantes como entradas a mi módulo y estoy usando el analizador lógico integrado para verificar las salidas. Por alguna razón, todos mis valores intermedios son 0.0 (flotación de 64 bits). Luego usé el ILA para verificar las entradas u y d y sus valores son cero. Ahora mismo estoy usando $ realtobits para crear constantes a partir de valores flotantes. ¿Es sintetizable esto?
binomial_controller bc(.u($realtobits(1.0025031276057951857)),
.d($realtobits(0.99750312239745997367)),
.u_v($realtobits(1.0026284483291278971)),
.d_v($realtobits(0.99737844229982886013)),
.p_up($realtobits(0.49968750024413099986)),
.p_up_v($realtobits(99.500999000666340066)),
.p_dn($realtobits(0.50031249975586900014)),
.p_dn_v($realtobits(0.50035863068484875971)),
.int_exp($realtobits(0.99999843750122074937)),
.price($realtobits(100.0)),
.strike($realtobits(100.0)),
.start(start),
.clk(cclk),
.last_nine_tree_elements(r),
.ready(ready));