前一篇文章是通过改变JESD204B IP的设置,在Shared Logic里勾选in example design,来避免共用输入时钟的问题。那么还有没有别的办法呢?有没有更直接点的实现方式呢?
答案是肯定的:可以直接修改IP,将IBUFDS从IP里移出去,放到外面就可以共用了。修改IP是一个比较复杂的办法,需要谨慎使用!参考手册UG896,有中文版,如下是相关内容的截图。
另外可以参考如下路径的描述:
57546 - Vivado IP Flows - How to modify/edit IP core source files in Vivado? (xilinx.com)
具体实现步骤如下:
1、在Block Design搞完之后,Generate Output Products里要选Out of Context per IP,而不要选Out of Context per Block Design,否则后面会报错,这个问题搞了我很久。
2、 在TCL控制台里将当前文件路径改到IP所在路径,然后把 这两个IP的IS_LOCKED 属性设为 true,TCL命令如下所示:
cd D:/saa_4ch_v0.3.4/100_syn_ip_cores/jesd204b_sys/ip/
set_property IS_LOCKED true [get_files jesd204b_sys_jesd204_0_0/jesd204b_sys_jesd204_0_0.xci]
set_property IS_LOCKED true [get_files jesd204b_sys_jesd204_0_1/jesd204b_sys_jesd204_0_1.xci]
如下左图所示,看到IP上有个红色的小锁就说明设置成功了。
3、修改IP源文件:用Notepad++或者其它的文本编辑器打开如上右图verilog文件,做如下图更改:就是把IBUFDS和BUFG注释掉,然后移到IP外面。
4、同样的方法修改另一个jesd204 IP;
5、记得把vivado工程下的cache文件删掉;
6、在TCL控制台里将当前文件路径改到synth所在路径,然后把这两个IP的文件复位掉,TCL命令如下所示:
cd D:/saa_4ch_v0.3.4/400_saa_u2_fpga/saa_4ch_top/phy/saa_4ch_top.runs/
reset_run jesd204b_sys_jesd204_0_0_synth_1
reset_run jesd204b_sys_jesd204_0_1_synth_1
7、重新生成文件,TCL命令如下所示:
launch_run jesd204b_sys_jesd204_0_0_synth_1
launch_run jesd204b_sys_jesd204_0_1_synth_1
确认下两个IP是否已经综合成功。
8、修改上层的例化文件,将IBUFDS移到IP外面,如下图所示:
9、最后按正常流程编译工程即可。
文章来源:https://www.toymoban.com/news/detail-515666.html
文章来源地址https://www.toymoban.com/news/detail-515666.html
到了这里,关于Vivado中如何修改IP源文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!