Vivado使用系列:使用自定义BD

本文介绍了如何在Vivado的TCL终端中使用ipx::add_file_group命令创建并填充Elaborate BD组,重点是添加bd.xit文件,并在Component subcores中指定子核名称。此外,强调了BD中所有端口必须连接到子IP的引脚,否则会导致使用错误。

在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使用会报错,无任何提示。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值