0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Vivado non-project模式

傅里叶的猫 来源:傅里叶的猫 作者:张大侠 2022-10-17 10:09 次阅读

vivado有project模式和non-project模式,project模式就是我们常用的方式,在vivado里面新建工程,通过GUI界面去操作;non-project模式就是纯粹通过tcl来指定vivado的流程、参数

相比于project模式,non-project模式的优势如下:

45ec0562-4cf8-11ed-a3b6-dac502259ad0.png

总结下来就是,不仅节省空间,还更加灵活。

下面我们以vivado中自带的wavegen工程为例:

460f59ea-4cf8-11ed-a3b6-dac502259ad0.png
image-20221015225402004

为了更加快捷的完成non-project的tcl内容,我们可以先把wavegen工程进行Synthsis和Implementation,在wavegen.runs下面会生成synth_1和impl_1的两个目录,这两个目录都有wavegen.tcl,我们可以直接将里面的有用内容copy出来,用来创建non-project的tcl,具体操作就不展开细讲了,直接把最终的tcl文件展示出来,就很很容易理解了:

#========================================================//
#FileName:build.tcl
#Author:ZhangHaijun
#Version:v1.0
#Discription:vivado-modebatch-sourcebuild.tcl
#========================================================//
#!/usr/bin/tclsh
set_paramgeneral.maxthreads8
set_partxcku035-fbva900-2-e
#readfiles
read_verilog/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/clogb2.vh
read_verilog-libraryxil_defaultlib{
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/clk_div.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/clk_gen.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/clkx_bus.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/cmd_parse.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/dac_spi.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/debouncer.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/lb_ctl.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/meta_harden.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/out_ddr_flop.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/reset_bridge.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/resp_gen.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/rst_gen.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/samp_gen.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/samp_ram.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/to_bcd.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/uart_baud_gen.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/uart_rx.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/uart_rx_ctl.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/uart_tx.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/uart_tx_ctl.v
/home/henry/fpga/wavegen/wavegen.srcs/sources_1/imports/Sources/kintexu/wave_gen.v
}
#readip
read_ip-quiet/home/henry/fpga/wavegen/wavegen.srcs/sources_1/ip/clk_core/clk_core.xci
read_ip-quiet/home/henry/fpga/wavegen/wavegen.srcs/sources_1/ip/char_fifo/char_fifo.xci
#readconstraints
read_xdc/home/henry/fpga/wavegen/wavegen.srcs/constrs_1/imports/xcku035-fbva900-2-e/wave_gen_timing.xdc
read_xdc/home/henry/fpga/wavegen/wavegen.srcs/constrs_1/imports/xcku035-fbva900-2-e/wave_gen_pins.xdc
#generateips
generate_targetall[get_ips]
#synthesizedesign
synth_design-topwave_gen-partxcku035-fbva900-2-e
write_checkpoint-force-noxdefsynth.dcp
#opt_design
opt_design
write_checkpoint-forceopt.dcp
#placedesign
place_design
write_checkpoint-forceplaced.dcp
phys_opt_design
write_checkpoint-forcephysopt.dcp
#routedesign
route_design
write_checkpoint-forcerouted.dcp
report_timing_summary-max_paths10-report_unconstrained-filewave_gen_timing_summary_routed.rpt-pbwave_gen_timing_summary_routed.pb-rpxwave_gen_timing_summary_routed.rpx-warn_on_violation
#writebitfile
write_bitstream-force./wave_gen.bit

对于综合时间上,理论上non-project模式要比project模式快一些,因为project模式会把每一步的结果都写入到磁盘中,但non-project中,我们只需要把我们想需要的文件存下来。

在上面的脚本中,也基本上把每一步的结果都存了下来,而且本身Synthsis和Implement的时间也不到2分钟,所以跟project模式的时间并没有明显差别。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • project
    +关注

    关注

    0

    文章

    35

    浏览量

    13275
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66312

原文标题:Vivado non-project模式示例

文章出处:【微信号:傅里叶的猫,微信公众号:傅里叶的猫】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Vivado工程模式和非工程模式的比较

    01. Vivado的两种工作模式 Vivado设计有工程和非工程两种模式: 1. 工程模式: 工程模式
    的头像 发表于 11-09 17:15 4495次阅读
    <b class='flag-5'>Vivado</b>工程<b class='flag-5'>模式</b>和非工程<b class='flag-5'>模式</b>的比较

    系统级设计输入

    and Non-Project Mode . . . . . . . . . . . . . . . . . . . . . . . 5Chapter 2: Working
    发表于 11-15 10:37

    怎么将Vivado项目转换为ISE项目

    Designer的步骤。以上来自于谷歌翻译以下为原文I would like to know if it is possible to convert a Vivado project
    发表于 12-20 11:24

    Vivado 2017.2关闭

    an issue with Vivado 2017.2 and also 2017.1. Vivado closes when opening a project or adding new source
    发表于 12-26 11:28

    VIVADO从此开始高亚军编著

    Non-Project模式下使用OOC / 542.4 综合后的设计分析 / 542.4.1 时钟网络分析 / 542.4.2 跨时钟域路径分析 / 562.4.3 时序分析 / 602.4.4 资源利用率分析
    发表于 10-21 18:24

    Vivado设计流程指导手册

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project
    发表于 09-20 07:37

    Vivado Synthesis中如何为Verilog代码中的“include file”设置路径?

    rapidio参考设计中摘出的一段代码,示例了这种用法: 那么在Vivado GUI中,该如何设置,可以使得代码可以准确找到这个include的文件呢? 1. 在Non-Project Mode下
    发表于 11-10 14:49 9628次阅读

    关于Vivado 2019.1的Dashboard功能详解

    关于Vivado Dashboard的功能可阅读这篇文章(Vivado 2018.3这个Gadget你用了吗)Vivado 2019.1的Dashboard功能进一步增强。
    的头像 发表于 06-12 14:49 8270次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>Vivado</b> 2019.1的Dashboard功能详解

    基于Project模式Vivado GUI使用的配置文件自动化生成管理

    与上一代开发工具ISE,一个巨大的提升就是全面支持Tcl脚本语言。由于全面支持Tcl脚本,所以可以利用Tcl来做一些好玩的事情。这里抛砖引玉,分享一点关于Vivado Tcl的使用小心得。 通常的工程中,直接生成的文件是bit文件(如果需要调试,可能还需要ltx文件)。而
    的头像 发表于 11-13 12:48 2919次阅读
    基于<b class='flag-5'>Project</b><b class='flag-5'>模式</b><b class='flag-5'>Vivado</b> GUI使用的配置文件自动化生成管理

    如何用Tcl实现Vivado设计流程介绍

    Vivado有两种工作模式project模式non-project模式。这两种
    的头像 发表于 10-21 10:58 3608次阅读
    如何用Tcl实现<b class='flag-5'>Vivado</b>设计流程介绍

    Vivado设计流程指导手册

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project
    发表于 03-22 11:39 50次下载
    <b class='flag-5'>Vivado</b>设计流程指导手册

    Vivado设计流程指导说明

    Vivado 设计分为 Project Mode 和 Non-project Mode 两种模式,一般简单设计中,我们常用的是 Project
    发表于 03-25 14:39 28次下载

    如何在批模式下运行 Vivado 仿真器?

    在 Windows 下,我喜欢在批处理模式下运行 Vivado 仿真器。 我创建了仿真批文件 (.bat) ,包含以下命令。当我运行批文件,执行第一条命令后脚本中止。如何正确在批模式下运行 V
    发表于 08-01 09:43 985次阅读

    关于Vivado Non-project,我们应知道的一些问题

    Vivado支持Project模式也支持Non-Project模式。两者既可以支持图形界面也支持Tcl命令,但用到的Tcl命令是不同的,不能
    的头像 发表于 12-15 13:51 2007次阅读

    如果IP已经采用OOC综合那么是否可以将其修改为Global综合方式?

    相比于Project模式Vivado Non-Project模式可以提供用户更多的控制权,进而用户可以自主管理整个编译流程
    的头像 发表于 11-16 09:11 1099次阅读
    如果IP已经采用OOC综合那么是否可以将其修改为Global综合方式?