回归正题。
我正是在开源骚客那学到的如何利用define来设置仿真模式和编译模式。
在文件第一行写`define SIM
在配置参数位置,用`ifndef来判断是否有定义SIM 或者说是否在仿真模式。如果在仿真模式则用仿真的参数,如果在编译模式则用真实的参数。
例如在SDRAM仿真中,不至于仿真时间太常,所以从新设置仿真模式下的参数以便仿真。
`ifndef SIM
localparam AREF_T = 13'd7813; //8192 times for every 64ms
localparam T200US = 15'd20000; //Wait 200us for Power-up
`else
localparam AREF_T = 13'd200; //8192 times for every 64ms
localparam T200US = 15'd80; //Wait 200us for Power-up
`endif
当要编译的时候,只要把`define SIM注释掉就可以了。方便简单。
但是这种发放也有缺点,就是当顶层文件例化多个模块的时候,每次仿真和编译都要一个一个模块进行注释或去注释`define SIM,也是很麻烦的。所以这时候就可以引入`include方法了。
套用【原创】关于include用法的总结【Verilog】的解释
这时候我只要include一个文件里面define SIM就可以了。
挺好的,感谢博主的分享。
回复删除好高级的样子
回复删除博主加油!
谢谢,没有啦,正在学的过程中。
回复删除谢谢留言哈~
回复删除