电子说
最近有网友私信我,说我之前发的几篇文章写得不错,在此感谢大家的鼓励。
正如我在第一篇文章里所说,我分享的内容主要包括但不限于,HDL语言,TCL语言,vivado的使用,Modelsim/Questasim的使用,matlab的使用,通信原理及系统,无线通信,数字信号处理等,由浅入深,化繁为简,后续内容听我娓娓道来。
今天我想说说我自己对vivado中文件分类的理解。
用过ISE的人都知道,vivado用起来是多么舒服,不管是从界面、综合策略、时序分析等各个方面来说,都有很好的体验,新版的vivado还引入了机器学习,进一步增强了综合能力。
从vivado的图形界面可以看到,工程文件主要包括:
HDL文件
IP文件
BD文件
约束文件
网表文件
辅助文件
HDL文件
主要是.v,.vhd文件,包括可以综合的,以及用于仿真的.v和.vhd文件,可以综合的文件也可被用于仿真。
Source框里的Compile Order可以看到文件的编译顺序,有时候如果有公用的package的.v文件的时候,可以看到package文件是否优先编译起效。
在vivado图形界面中,能够点击的对象都有自己的属性,可以通过CTRL+E快捷方式打开。
IP文件
主要是.xcix和.xci文件。
如果勾选设置选项下IP内的Use Core Containers for IP框框,则IP的形式为.xcix,否则IP形式为.xci,且每个IP都会生成以IP名命名的文件夹,.xcix简化了IP核的管理。
.xcix和.xci是可以相互转化的,IP核右键Enable Core Container或Disable Core Container即可。
BD文件
主要是.BD文件。
如果一个工程想套用另一个既有工程的BD文件,可以直接将BD文件夹整个进行复制,这样较为方便。
约束文件
主要是.xdc和.tcl文件,包括管脚约束、时序约束、debug约束、位置约束等。
管脚约束:管脚和电平。
时序约束:基本时钟约束,跨时钟域约束,路径约束。
Debug约束:抓取调试信号(使用综合里的set up debug会自动添加文件到这里,使用ip核中的ila核则不会),设置Debug_hub参数(debug_hub时钟等)。
位置约束:可通过pblock命令,设置指定模块位置或面积。
特别说明一下,约束的属性中有一个USED_IN的选项,之前提到的,如果要将当前工程封装成dcp文件,作为子文件放到大工程中,一定要勾选USED_IN中的synthesis、out_of_context选项,当然,USED_IN也适用于其他.v文件或ip核。
网表文件
主要是.dcp文件
用于封装子模块或子工程
辅助文件
主要是.tcl(钩子脚本)和.dcp(增量编译)文件
最近使用国内某公司的国产化芯片时,就用到了钩子脚本,用以给程序打补丁。按照手册打完补丁后,在设置中的综合、布局布线、生成比特流中,会看到.pre和.post里面已经有补丁脚本的路径。当然,也可以自己写钩子脚本。
全部0条评论
快来发表一下你的评论吧 !