Vivado/SDK使用Tips

一、Vivado如何添加Xilinx提供的IP

1.1 打开IP Catalog,搜索自己想添加的IP

如搜索AXI_Stream Data FIFO这个IP。
在这里插入图片描述

1.2 双击该IP进行参数配置

如配置AXI_Stream Data FIFO的深度、宽度、存储类型、时钟类型等。
在这里插入图片描述

1.3 确认后进行IP综合

配置完参数后,点击OK,进行IP综合。完成对IP的添加,
在这里插入图片描述

1.4 例化IP

IP综合完后,就可以在自己的代码中对该IP进行例化。例化代码在IP Sources->IP->Instantiation Template中提供了Verilog和VHDL两个版本。
在这里插入图片描述

一、Vivado IP综合选项Global和Out-Of-Context区别

1.1 Vivado IP综合选项到底如何选择?

在 VivadoQ定制IP时,选择"Customize IP"后会弹出一个框。细心的设计人员可以看到Synthesis Options可以选择,一种叫做"Global”另一种叫”Out of Context (O0C)”。其中”Out-Of-Context"是“脱离上下文”的意思。”Global”"即全局。

1.2 Global和out-of-Context区别?

  1. GlobalQ选项不会产生,dcp文件,因为工程综合的时候是对|P核的源码进行综合的。而Globali选择则是每次工程综合的时候,IP核都会和工程一起综合,这样综合的时间就很长。
  2. Out of contex per P是指让vvado在综合的时候对!P进行单独综合,生成,dcp文件,然后再工程要用到P的时候,只需从,dco文件中解析出对应!P的网表文件即可,而不需对P进行重新综合,这样的方式可以加快综合的速度;00C选项是Vivado给我们的默认选项,在0OC(Out of context per P)植式下,Vivado将会把牛成的!P当成一个单独的植块来进行综合,牛成,dco desion checkooint文件。然后重工程要用到IP的时候,只需从.dcp文件中解析出对应IP的网表文件即可。

1.3 究竟是选择Global还是Out of context per IP?

  1. 如果想减少编译时间,选择Out-Of-Context,通过综合实现某个模块的快速迭代,不用综合系统的其余部分,整个设计的迭代更快了:
  2. 如果对时间没有绝对要求,可以选择Global,这样就是把IP当做源代码一起编译,每次布局布线都不一样。

三、使用vivado生成的hdf文件创建SDK工程

四、修改Vivado字体大小

Tools->Settins -> Text Editor
在这里插入图片描述

五、[IP_Flow 19-3153] Bus Interface ‘s00_axi_aclk’: ASSOCIATED_BUSIF bus parameter is missing.

问题表述:这个时钟缺少“关联接口”参数

Package IP 的时候Ports and Interfaces 选项老是出现题述问题,google 了很久不知道怎么解决,其实解决方法很简单:
在这里插入图片描述
出问题的ports 就是图1的高亮的那个地方,右键点击选择Edit Interface, 选择parameters
在这里插入图片描述
添加ASSOCIATED_BUSIF这个变量,然后在value里面添加该时钟所关联的接口名称:S00_AXI(这个值是根据图1中的S00_AXI_CLK(大写的S)。
完成!

六、make external与 create port的区别

make external命令,相当于一次实现了两个关联的命令,create port和make connect。

七、【 [Labtools 27-3428] Ila core [hw_ila_1] clock has stopped. Unable to arm ILA core.】

报错原因:包含该ILA的module的时钟没有正确连接!
解决办法:正确修改时钟来源,即可。

八、[BD 41-971] Segment </processing_system7_0/S_AXI_HP0/HP0_DDR_LOWOCM> mapped into </axi_dma_1/Data_MM2S> at 0x00000000[ 1G ] overlaps with </processing_system7_0/S_AXI_HP1/HP1_DDR_LOWOCM> mapped at 0x00000000[ 1G ]

报错原因:Block Design中AXI外设的地址分配重叠。
解决办法:在Address Editor把出错的端口都unmap了,然后再重新自动分配地址就解决了。

九、在Block Design中添加官方IP时候,是无法自定义该IP的名称的,只能使用工具默认定义的名称,一般会以_0/_1/_2/_3结尾。

十、综合报错 [Synth 8-685] variable ‘xxxx‘ should not be used in output port connection

报错原因: 仿真或者综合报错,显示这个变量不能用于输出端口,就去找这个变量接到了哪些输出端口。发现该变量定义为reg类型。
解决办法:将变量的类型由reg类型改为wire类型。

十一、Vivado IP综合选项Global和Out-Of-Context区别

11.1 VivadoIP综合选项到底如何选择?

在 VivadoQ定制IP时,选择"Customize IP"后会弹出一个框。细心的设计人员可以看到Synthesis Options可以选择,一种叫做"Global”另一种叫”Out of Context (O0C)”。其中”Out-Of-Context"是“脱离上下文”的意思。”Global”即全局。

11.2 Global和Out-of-Context区别?

  1. Gobal 选项不会产生,dcp文件,因为工程综合的时候是对!P核的源码进行综合的。而Global选择则是每次工程综合的时候,IP核都会和工程一起综合,这样综合的时间就很长。
  2. Out of context per IP是指让vivado在综合的时候对!P进行单独综合,生成.dcp文件,然后再工程要用到!P的时候,只雪从.dcp文件中解析出对应IP的网表文件即可,而不需对!P进行重新综合,这样的方式可以加快综合的速度;0OC选项是Vivado给我们的默认选项,在0OC(Out of context per P)模式下,Vvado将会把生成的!P当成一个单独的模块来进行综合,生成.dcp(design checkpoint)文件。然后再工程要用到IP的时候,只需从.dcp文件中解析出对应IP的网表文件即可。

11.3 究竟是选择Global还是Out of context per lP?

  1. 如果想减少编译时间,选择Out-Of-Context。通过综合实现某个模块的快速迭代,不用综合系统的其余部分,整个设计的迭代更快。
  2. 如果对时间没有绝对要求,可以选择Global,这样就是把IP当做源代码一起编译,每次布局布线都不一样。

十二、vivado:如何给仿真波形分组?

点击Run Simulation后,vivado自带的仿真工具会将仿真的波形比较混乱得展示出来,为了更方便查看波形,可以将不通功能的波形进行分组
具体操作如下:

  1. 右键Name栏的信号,
    在这里插入图片描述

  2. 点击:新建组
    在这里插入图片描述
    然后就可以把对应的信号添加到对应的组里面

  3. 解散分组不能点击Delete,要右击组名后,点击:UnGroup
    在这里插入图片描述

参考

  1. http://t.csdnimg.cn/EN5wS
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado是一款由Xilinx开发的用于FPGA设计和开发的集成工具套件,而Tcl是Vivado工具中使用的一种命令行脚本语言。 在Vivado中,Tcl被广泛用于执行各种设计和管理任务。根据引用,Tcl指令在Vivado中用于处理约束和约束文件中的操作。这些指令可以用于获取模块的输入引脚、获取模块相连的网线、获取引脚相连的网线以及获取时钟引脚对应的时钟等。具体使用的Tcl指令包括: - get_pins-of:用于获取模块的输入引脚。 - get_cells-of:用于获取已知引脚名的引脚所在的模块。 - get_nets-of:用于获取已知模块名的与该模块相连的网线。 - get_clocks-of:用于获取已知引脚名的时钟引脚对应的时钟。 根据引用,这些指令可以通过不同的选项来进行过滤和操作。常用的选项包括-hierarchy、-filter、-of_objects、-regexp和-nocase。这些选项可以根据需要来限定指令的范围和匹配条件。 总结来说,Vivado/tcl是指在Vivado工具中使用的Tcl命令行脚本语言,用于执行各种设计和管理任务,包括处理约束和约束文件中的操作以及获取模块的引脚、网线和时钟等信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vivado时序约束中Tcl命令的对象及属性](https://blog.csdn.net/yundanfengqing_nuc/article/details/126116414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值