从vivado 2013.4到vivado 2015.2的搬迁笔记

最近因为不堪vivado 2013.4各种bug的困扰,决定换成最新版本vivado 2015.2。

2015.2优点

1. 解决了block design中block ram自动初始化的bug。

在2013.4中,block ram IP核如果用户在block design中修改了配置参数,比如从初识的单口BRAM改成了双口RAM,在关闭工程再打开blosk design时,这个IP的实例又变回了初始的样子。在图中的图标没有变,只有点开IP配置时会看到变了回去,综合时也会因为没有连线而报错。

2015.2解决了这个bug。


2015.2缺点

1. 不支持32位操作系统。

从2015年开始的两个版本,vivado 2015.1和vivado 2015.2,Xilinx官方不再支持windows 32bit和Linux 32bit,只提供64位操作系统版本的下载。


把原有的工程搬迁到vivado 2015.2时,TCL脚本需要做一些修改。

对于用户自定义的IP核,我遇到了以下改动:

1、package IP后,packaging steps中原有的IP ports和IP interfaces在vivado 2015.2中合并成了ports and interface,假如不经修改运行原脚本时,自动生成的interfaces名称有时是不一样的,需要对脚本进行修改。

2、时钟自动匹配错误。AXI slave对应的时钟应该是s_axi_aclk,若IP还有别的名字的时钟输入如clk,vivado会自动匹配clk与s_axi接口对应,在synthesis时就会报错。需要在TCL脚本中加上ipx::associate_bus_interfaces -busif s_axi -clock s_axi_aclk [ipx::current_core]关联一下,再去掉与clk的关联,ipx::associate_bus_interfaces -busif s_axi -clock clk -clear [ipx::current_core]。同一个接口可以与多个时钟关联。

3、在get_file_group时找不到名为xilinx_verilogsynthesis和xilinx_vhdlsynthesis的file group。看来这两个file group在vivado 2015.2中被移除了,尚不清楚换成了什么,我的解决方案是用get_filesets constrs_1替代了get_file_group。

对于用户工程,有以下改动:

1、更新系统自带IP核的版本号。如microblaze、fifo_generator等。

2、对microblaze进行配置,用到了CACHE时,注意把对HIGHADDR和BASEADDR的配置写到同一行,若分开写,执行完第一行时可能会报address range的错误。

3、ILA IP核增加了一个参数。在vivado13.4中,ila:3.0只有一种类型是native,而vivado15.2中,ila:5.1可选native和AXI,默认是AXI。

4、const IP核输出端口名变了。在xlconstant:1.0中,输出常数的端口是const,在xlconstant:1.1中,名字变成了dout。




你可能感兴趣的:(FPGA)