在实际的工作中会设置一些运行参数,运行参数有时候会很大,哪怕是1ms ,时钟计数会在仿真中持续很久。所以在仿真的时候变希望很快跳过此处的计时,或者计数的时间短一点。
一般情况下会用宏定义。
`define SIM_TEST
`ifdef SIM_TEST
localparam NUM_TIME = 32'd5000 ;
`else
localparam NUM_TIME = 32'd5000_000 ;
`endif
仿真的时候将宏定义声明,综合时候会把宏定义注释掉。后来发现比较麻烦,有时候仿真结束了,忘记注释便直接综合了,又要再运行一遍。
现在有一种方法可以自动操作,无需再修改。
/*synthesis translate_off*/
`define SIM_TEST
/*synthesis translate_on*/
`ifdef SIM_TEST
localparam NUM_TIME = 32'd5000 ;
`else
localparam NUM_TIME = 32'd5000_000 ;
`endif
稍微作此修改,仿真的时候会运行到 宏定义声明部分, 但是综合的时候便会跳过此部分。很方便。