0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Vivado non-project模式

傅里葉的貓 ? 來源:傅里葉的貓 ? 作者:張大俠 ? 2022-10-17 10:09 ? 次閱讀

vivado有project模式和non-project模式,project模式就是我們常用的方式,在vivado里面新建工程,通過GUI界面去操作;non-project模式就是純粹通過tcl來指定vivado的流程、參數(shù)

相比于project模式,non-project模式的優(yōu)勢如下:

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

總結(jié)下來就是,不僅節(jié)省空間,還更加靈活。

下面我們以vivado中自帶的wavegen工程為例:

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

為了更加快捷的完成non-project的tcl內(nèi)容,我們可以先把wavegen工程進(jìn)行Synthsis和Implementation,在wavegen.runs下面會生成synth_1和impl_1的兩個目錄,這兩個目錄都有wavegen.tcl,我們可以直接將里面的有用內(nèi)容copy出來,用來創(chuàng)建non-project的tcl,具體操作就不展開細(xì)講了,直接把最終的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模式會把每一步的結(jié)果都寫入到磁盤中,但non-project中,我們只需要把我們想需要的文件存下來。

在上面的腳本中,也基本上把每一步的結(jié)果都存了下來,而且本身Synthsis和Implement的時間也不到2分鐘,所以跟project模式的時間并沒有明顯差別。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • project
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    13258
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    799

    瀏覽量

    66128

原文標(biāo)題:Vivado non-project模式示例

文章出處:【微信號:傅里葉的貓,微信公眾號:傅里葉的貓】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

    01. Vivado的兩種工作模式 Vivado設(shè)計有工程和非工程兩種模式: 1. 工程模式: 工程模式
    的頭像 發(fā)表于 11-09 17:15 ?4417次閱讀
    <b class='flag-5'>Vivado</b>工程<b class='flag-5'>模式</b>和非工程<b class='flag-5'>模式</b>的比較

    系統(tǒng)級設(shè)計輸入

    and Non-Project Mode . . . . . . . . . . . . . . . . . . . . . . . 5Chapter 2: Working
    發(fā)表于 11-15 10:37

    怎么將Vivado項目轉(zhuǎn)換為ISE項目

    Designer的步驟。以上來自于谷歌翻譯以下為原文I would like to know if it is possible to convert a Vivado project
    發(fā)表于 12-20 11:24

    Vivado 2017.2關(guān)閉

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

    VIVADO從此開始高亞軍編著

    Non-Project模式下使用OOC / 542.4 綜合后的設(shè)計分析 / 542.4.1 時鐘網(wǎng)絡(luò)分析 / 542.4.2 跨時鐘域路徑分析 / 562.4.3 時序分析 / 602.4.4 資源利用率分析
    發(fā)表于 10-21 18:24

    Vivado設(shè)計流程指導(dǎo)手冊

    Vivado 設(shè)計分為 Project Mode 和 Non-project Mode 兩種模式,一般簡單設(shè)計中,我們常用的是 Project
    發(fā)表于 09-20 07:37

    Vivado Synthesis中如何為Verilog代碼中的“include file”設(shè)置路徑?

    rapidio參考設(shè)計中摘出的一段代碼,示例了這種用法: 那么在Vivado GUI中,該如何設(shè)置,可以使得代碼可以準(zhǔn)確找到這個include的文件呢? 1. 在Non-Project Mode下
    發(fā)表于 11-10 14:49 ?9539次閱讀

    關(guān)于Vivado 2019.1的Dashboard功能詳解

    關(guān)于Vivado Dashboard的功能可閱讀這篇文章(Vivado 2018.3這個Gadget你用了嗎)Vivado 2019.1的Dashboard功能進(jìn)一步增強(qiáng)。
    的頭像 發(fā)表于 06-12 14:49 ?8187次閱讀
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>Vivado</b> 2019.1的Dashboard功能詳解

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

    與上一代開發(fā)工具ISE,一個巨大的提升就是全面支持Tcl腳本語言。由于全面支持Tcl腳本,所以可以利用Tcl來做一些好玩的事情。這里拋磚引玉,分享一點(diǎn)關(guān)于Vivado Tcl的使用小心得。 通常的工程中,直接生成的文件是bit文件(如果需要調(diào)試,可能還需要ltx文件)。而
    的頭像 發(fā)表于 11-13 12:48 ?2843次閱讀
    基于<b class='flag-5'>Project</b><b class='flag-5'>模式</b><b class='flag-5'>Vivado</b> GUI使用的配置文件自動化生成管理

    如何用Tcl實現(xiàn)Vivado設(shè)計流程介紹

    Vivado有兩種工作模式project模式non-project模式。這兩種
    的頭像 發(fā)表于 10-21 10:58 ?3572次閱讀
    如何用Tcl實現(xiàn)<b class='flag-5'>Vivado</b>設(shè)計流程介紹

    Vivado設(shè)計流程指導(dǎo)手冊

    Vivado 設(shè)計分為 Project Mode 和 Non-project Mode 兩種模式,一般簡單設(shè)計中,我們常用的是 Project
    發(fā)表于 03-22 11:39 ?50次下載
    <b class='flag-5'>Vivado</b>設(shè)計流程指導(dǎo)手冊

    Vivado設(shè)計流程指導(dǎo)說明

    Vivado 設(shè)計分為 Project Mode 和 Non-project Mode 兩種模式,一般簡單設(shè)計中,我們常用的是 Project
    發(fā)表于 03-25 14:39 ?28次下載

    如何在批模式下運(yùn)行 Vivado 仿真器?

    在 Windows 下,我喜歡在批處理模式下運(yùn)行 Vivado 仿真器。 我創(chuàng)建了仿真批文件 (.bat) ,包含以下命令。當(dāng)我運(yùn)行批文件,執(zhí)行第一條命令后腳本中止。如何正確在批模式下運(yùn)行 V
    發(fā)表于 08-01 09:43 ?963次閱讀

    關(guān)于Vivado Non-project,我們應(yīng)知道的一些問題

    Vivado支持Project模式也支持Non-Project模式。兩者既可以支持圖形界面也支持Tcl命令,但用到的Tcl命令是不同的,不能
    的頭像 發(fā)表于 12-15 13:51 ?1869次閱讀

    如果IP已經(jīng)采用OOC綜合那么是否可以將其修改為Global綜合方式?

    相比于Project模式,Vivado Non-Project模式可以提供用戶更多的控制權(quán),進(jìn)而用戶可以自主管理整個編譯流程
    的頭像 發(fā)表于 11-16 09:11 ?1020次閱讀
    如果IP已經(jīng)采用OOC綜合那么是否可以將其修改為Global綜合方式?