Modelsim加速仿真技巧
《前言》
最近在Modelsim仿真过程中,遇到一个大问题,对于分辨率2048*500的图像数据,在进行时序约束中,发现算法模块最高只能跑到60Mhz多,而要求必须跑到100Mhz,因而时序不满足要求;通过看时序报告,关键路径基本上都是在reg to mem和mem to reg path上,尝试修改对逻辑处理影响较大。
如何在不修改核心算法逻辑的前提下,保证功能和时序满足,办法还是有的,后来发现100Mhz频率下算法模块输入的数据有效带宽只有50% ,因此考虑算法模块入口处增加一个整形的异步FIFO,写时钟100Mhz,读时钟50Mhz这样算法模块只工作在50Mhz时钟频率下,可以满足时序要求。同时也满足100Mhz接口时序的要求。
此时,增加一个时钟ip核来得到50Mhz,发现仿真速度极其慢,由原来的1~2分钟左右变为现在的1小时左右,定位个问题,效率太低了。
《如何加速Modelsim仿真时间》
首先,需要说明的是,Modelsim仿真时间长短,也有电脑配置有关,i7+16G的配置其实也就10分钟左右 ,i5+8G的配置就是1小时多。
其次,就是在仿真平台上下功夫:
方法一:修改代码仿真精度,精度越高,Modelsim效率越低。1n/1ps 修改为 1n/1ns 速度可提升一倍。
方法二:减少层次结构,减少波形信号的显示。特别是输出的数据文件,能减少就减少。
方法三:在不影响功能的前提下,降低测试的图像分辨率,或者一些计数器适当缩短计数,都可以达到提速的目的。
方法四:当文件仿真系统有大量文件时,修改某个Module的信号,增量编译可以节省时间,verilog :vlog -incr vhdl:vcom -incr
方法五:减少IP的调用,比如我的这个慢的主要原因就是调用时钟IP的原因;这里两个时钟都可以在testbench 生成,大大减少了仿真时间,又回到了几分钟。
全部0条评论
快来发表一下你的评论吧 !