几个月之前用Questa Sim独立仿真了紫光的ram和PLL;隔了几个月之后再一次仿真FIFO就不记得步骤了,报错出现GTP_DRM36K_E1
先说一下我的仿真为什么会报错,我习惯在打开仿真工程后直接在work里面选择仿真顶层文件然后右键点击仿真,这个时候会报错GTP_DRM36K_E1;至于为什么会报错,据说是因为右键点击仿真时没有包含仿真IP库的原因;这就是紫光比较坑的地方!Altera、Xilinx、高云等品牌都不会有这个问题;除了这个仿真紫光的IP核时还需要添加自动生成IP的文件夹里面rtl文件夹的相关文件,我仿真FIFO时就需要添加3个文件;第三个就是需要在仿真的顶层tb文件里添加复位信号GTP_GRS GRS_INST (.GRS_N(1’b1));不添加也会报错,这也是比较坑的地方时
正确的仿真步骤:
1、生成独立仿真库,具体的可以参考网上的教程,我也不太记得怎么弄了
2、除了添加需要仿真的FIFO的.v文件,还需要添加rtl文件夹里面的相关文件,具体需要添加什么文件可以看PDS工程例化IP时包含的文件,也可以根据报错信息一步步添加缺少的文件,我就是根据报错信息一步步添加缺少的文件;仿真FIFO就需要另外在添加3个文件
3、在仿真的tb文件里添加复位信号,这一点是紫光比较变态的地方,我明明已经在FIFO的复位信号接口给了复位,但是FIFO IP核里面好像用了另外一个复位,所以要在仿真的顶层添加对应的复位;具体如下
GTP_GRS GRS_INST (
.GRS_N(1’b1) // INPUT
);
4、点击Start simulation
5、点击work展开文件,选择仿真顶层tb文件;然后勾选Enable optimizationn,点击Optimization Opptions,在visibility里面选择第二个选项;然后选择Libraries添加仿真库文件路径,最后点击ok就能仿真了
总结:独立仿真紫光的IP时方法有点不同,需要添加仿真库路径;目前我在想办法设置环境变量让默认的 vsim 命令自带必要的参数,这样就可以使用我习惯的仿真方式来仿真了