vivado利用write_project_tcl重建工程

        vivado工程动辄几百MB,用git管理所有编译文件是极其浪费和不方便的。以下描述了如何用write_project_tcl生成gen_prj.tcl,在用source gen_prj.tcl生成完整工程。

        我常用的目录结构如下:

        ip_core里放所有IP生成文件,包括bd文件。在生成ip时是可以更改location的,你可以新建ip时就将location修改到ip_core下,也可以建完工程后,在vivado工程中移除该ip,再将该ip文件夹拷贝到ip_core,再添加到工程里。bd同理,在新建bd时能选择位置,选择后内部的ip默认在该文件夹下,bd内的ip不能选择位置。

        prj下存放了tcl文件,也可以单独新建一个tcl目录。

其中gen_prj.tcl是生成工程的。gen_prj_script.bat是快速执行该tcl的bat脚本,内容是:

C:\Xilinx\Vivado\2019.2\bin\vivado -source gen_prj.tcl

 gen_mcs同理。set_version.tcl见本人另一个博客,用于生成version.h文件,方便每次编译时自动加入编译时间信息到寄存器。

write_cfgmem  -format mcs -size 32 -interface SPIx4 -loadbit {up 0x00000000 "./pcie_k7_aurora/pcie_k7_aurora.runs/impl_1/PCIE_DMA.bit" } -force -file "../result/pcie_xdma.mcs"
C:\Xilinx\Vivado\2019.2\bin\vivado -mode tcl -source gen_mcs.tcl

        result下存放了调试OK的某节点的mcs和bit文件。

        sim下存放仿真相关。

        xdc存放约束文件。

        src下存放所有源码。src下的*.sv即是顶层文件,简洁明了。include下保存pkg或者头文件,interface定义文件等,其他文件夹随意。不建议文件夹个数过多。还有一些通用的ram和fifo等文件放在common下等常规用法不赘述。

         README.md文件说明本工程怎么用。这是markdown文件,我用codechina管理代码自动会生成这个文件了,我就当txt使用了,这点不必纠结。

1.双击prj目录下的gen_prj_script.bat,执行C:\Xilinx\Vivado\2019.2\bin\vivado -source gen_prj.tcl,生成新的工程。
2.修改完工程后,执行reset_project,清理工程。执行write_project_tcl -all_properties -no_copy_sources -no_ip_version -use_bd_files ./gen_prj.tcl -force 更新脚本。
3.src -------> 存放源码;
  ip_core ---> ip文件
  sim -------> 仿真文件
  xdc -------> 约束文件

        当我们第一次新建工程时,在prj目录下新建工程,再增加一级文件夹,例如pcie_k7_aurora。添加好所有文件后,在tcl console下执行reset_project,再执行:

write_project_tcl -all_properties -no_copy_sources -no_ip_version -use_bd_files ./gen_prj.tcl -force 

        得到gen_prj.tcl后,就可以将pcie_k7_aurora下的所有文件夹全部删除,其余文件均上传至git作版本管理即可。

        查看ip_core中的文件可以发现,一个ip只需要xci和xml文件即可重建。这里有OOC和Global模式的区别,感兴趣的自行了解。

        前面看到write_project_tcl后面跟了一大堆命令,可以输入write_project_tcl -h查看这条命令的帮助信息。

         简单说,-no_copy_sources    -use_bd_files这2个比较关键,不拷贝源文件,使用bd源文件。这样在新建工程时才会使用原来文件夹下的文件,而不是拷贝到工程路径下的source文件下。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值