在TCL终端下运行ipx::add_file_group -type elaborate_bd {} [ipx::current_core]
出现的Elaborate BD这个Group下添加bd.xit:
proc update_bd { } {
##
## Setting Current Instance
##
## 设置当前IP的句柄,以便获取当前IP的Parameter
set greg_bd [::ipxit::current_inst]
## 获取当前IP的REG_NUM这个Parameter
set reg_num [get_property CONFIG.REG_NUM $greg_bd]
## 向vivado发出一些信息,可有可无
send_msg INFO 0 " Create CLK_WIZ "
## 在IP顶层BD内创建clock Wizard IP,命令详情见help create_bd_cell,貌似它不支持type为module的创建
set clk_lib [create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz "clklib"]
send_msg INFO 0 " Create CONFIG CLK_WIZ "
## 往SubCore里写入SubCore的属性值
## Syntax:set_property -dict [list CONFIG.<subcore's param> {<value of subcore's param> ] <subcore's handle>
set_property -dict [ list \
CONFIG.CLKOUT2_JITTER {130.958} \
CONFIG.CLKOUT2_PHASE_ERROR {98.575} \
] $clk_lib
## 连接BD的端口和SubCore的Pin
connect_bd_net -quiet [get_bd_ports clk_pin] [get_bd_pins ${clk_lib}/clk_in1]
## 连接SubCore的Pin和SubCore的Pin
## connect_bd_net -quiet [get_bd_pins ${clklib}/clk_out1] [get_bd_pins ${uart_mst}/clk_pin]
## 连接SubCore的Interface和BD的Interface
## connect_bd_intf_net -quiet [get_bd_intf_ports m_axil] [get_bd_intf_pins ${clklib}/m_axil]
}
## 设置生成的BD可不可以在工程下可见,默认为false
set_bd_viewable true
update_bd
最后需要在Elaborate BD这个Group的IP File Group Properities内的Component subcores填入xit文件所调用的Subcore名字,多个则以空格隔开,本例则需要填入 xilinx.com:ip:clk_wiz:5.4;然后在Utility XIT/TTCL下右键Add SubCore Reference...即可.
注: BD内的所有port也即IP的所有向外引出端口必须在BD内有连接到子IP的Pin上,否则IP使用会报错,无任何提示。
本文介绍了如何在Vivado的TCL终端中使用ipx::add_file_group命令创建并填充Elaborate BD组,重点是添加bd.xit文件,并在Component subcores中指定子核名称。此外,强调了BD中所有端口必须连接到子IP的引脚,否则会导致使用错误。
8332

被折叠的 条评论
为什么被折叠?



