国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

tcl學(xué)習(xí)之路(二)(vivado設(shè)計流程管理)

這篇具有很好參考價值的文章主要介紹了tcl學(xué)習(xí)之路(二)(vivado設(shè)計流程管理)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.在project下的工程創(chuàng)建

#generate.tcl腳本中的目錄可以自行更改
set device     xc7z045
set package    fbg676
set speed      -1
set part       $device$package$speed
set prjName    xxxxx
set prjDir     ./$prjName
set srcDir     ./Source

create_project $prjName $prjDir -part $part

add_files     [glob $srcDir/hdl/*.v]
add_files     [glob $srcDir/hdl/*.vh]
add_files     [glob $srcDir/ip/*.xcix]
updata_complie_order -fileset sources_1
addfiles -fileset constrs_1 [glob $srcDir/xdc/*.xdc]
addfiles -fileset sim_1 [glob $srcDir/tb/*.v]
updata_complie_order -fileset sim_1
set_property strategy Flow_AreaOptimized_high [get_runs srnth_1]
set_property strategy Performance_Explore [get_runs impl_1]

launch_runs synth_1
wait_on_run synth_1
launch_runs impl_1 -to_step write_bitstream
wait_on_run impl_1

start_gui
#生成固化文件的方法
write_cfgmem -format mcs -interface SPIx4 -size 128 -loadbit {up 0x0 路徑.bit} -file 路徑.mcs
#如果你只是想創(chuàng)建工程文件,然后自己添加還沒寫的.v文件
set device     xc7z045
set package    fbg676
set speed      -1
set part       $device$package$speed
set prjName    xxxxx
set prjDir     ./$prjName
set srcDir     ./Source

create_project $prjName $prjDir -part $part
file mkdir $prjDir/$prjName.srcs/sources_1/new
set fid [open $prjDir/$prjName..srcs/sources_1/new/xxx.v w] 
close $fid
add_files $prjDir/$prjName.srcs.srcs/sources_1/new/xxx.v
#刪除文件
file delete -force ddr_nn1.v
export_ip_user_files -of_objects  [get_files F:/FPGA/DDRTEST/DDRTEST.srcs/sources_1/new/ddr_nn1.v] -no_script -reset -force -quiet
remove_files  F:/FPGA/DDRTEST/DDRTEST.srcs/sources_1/new/ddr_nn1.v

2.鉤子腳本

對于vivado的實現(xiàn)階段有以下步驟
1.設(shè)計初始化階段 init_design
2.設(shè)計優(yōu)化 opt_design 默認(rèn)執(zhí)行
3.功耗優(yōu)化 power_opt_design
4.布局 place_design 默認(rèn)執(zhí)行
5.布局后功耗優(yōu)化 power_opt_design(post_place_power_opt_design)
6.布局后物理優(yōu)化 phys_opt_design 默認(rèn)執(zhí)行
7.布線 route_design 默認(rèn)執(zhí)行
8.布線后物理優(yōu)化 post_route_phys_opt_design

那么綜合階段的鉤子腳本屬性為
SET.SYNTH_DESIGN.TCL.PRE
SET.SYNTH_DESIGN.TCL.POST
實現(xiàn)階段的鉤子腳本屬性有
SET.INIT_DESIGN.TCL.PRE
SET.INIT_DESIGN.TCL.POST
SET.OPY_DESIGN.TCL.PRE
SET.OPT_DESIGN.TCL.POST
可以發(fā)現(xiàn),是實現(xiàn)階段各個步驟的大寫,所以就不一一展開書寫
完整操作如下:
set_property SET.SYNTH_DESIGN.TCL.POST [get_files C:/report0.tcl -of [get_fileset utils_1]] [get_runs synth_1]
其中,get_files C:/report0.tcl -of [get_fileset utils_1]表示獲取utils_1下的C:/report0.tcl文件

3.Non-Project模式

設(shè)計流程如下:
1.設(shè)置基本參數(shù)
2.讀入設(shè)計源文件
3.對IP執(zhí)行OOC綜合操作
4.對整個設(shè)計進行綜合操作
5.執(zhí)行實現(xiàn)階段的各個子步驟
6.生成位流文件

1設(shè)置基本參數(shù)
#與Prioject模式很相似 run_v1.tcl
set device     xc7z045
set package    fbg676
set speed      -1
set part       $device$package$speed
set top        wave_gen
set srcDir     ./Source
set SynOutputDir ./SynOutputDir
set ImplOutputDir ./ImplOutputDir
set synDirective  Default
set optDirective  Default
set placeDirective Default
set phys0ptDirectiveAp Default
set routeDirective Default
set phys0ptDirectiveAr Default

set_param general.maxThreads 6

source run_read_src_v1.tcl
source run_synth_ip_v1.tcl
source run_synth_v1.tcl
source run_impl_v1.tcl
source run_bitstream_v1.tcl
2.讀入設(shè)計源文件
#run_read_src_v1.tcl
read_verilog [glob $srcDir/hdl/*.v]
read_verilog [glob $srcDir/hdl/*.vh]
read_edlf    [glob $srcDir/netlist/*.edn]
read_ip      [glob $srcDir/ip/*.xcix]
read_xdc     [glob $srcDir/xdc/*.xdc]
link_design -top $top -part $part
3.對IP執(zhí)行OOC綜合操作
#run_synth_ip_v1.tcl
synth_ip [get_ips]
#synth_ip [get_ips chara-fifo]
#synth_ip [get_ips clk_core]  
#表示只對指定IP進行ooc綜合(out_of_context)
4.對整個設(shè)計進行綜合操作
#run_synth_v1.tcl
synth_design -top $top -part $part -directive default
#top 指定頂層文件名 part指定FPGA型號 directive指定指令,這里是默認(rèn)
write_checkpoint -force $SynOutputDir/post_synth
#這里創(chuàng)建了post_synth.dcp文件,并且覆蓋了原有的post_synth.dcp文件
report_timing_summary -file $SynOutputDir/post_synth_timing_summary.rpt
report_utilization -file $SynOutputDir/post_synth_util.rpt
#生成了時序報告和資源利用率報告
5.執(zhí)行實現(xiàn)階段的各個子步驟
#run_impl_v1.tcl
#根據(jù)默認(rèn)執(zhí)行步驟,首先執(zhí)行的是設(shè)計優(yōu)化
opt_design -directive $optDirective
write_checkpoint -force $ImplOutputDir/post_opt
report_timing_summary -file $ImplOutputDir/post_opt_timing_summary.rpt
report_utilization -file $ImplOutputDir/post_opt_util.rpt
#然后是布局、布局后物理優(yōu)化、布線,只需將上面的opt改為place phys_opt route即可,不一一寫出
6.生成位流文件
#run_bitstream_v1.tcl
set_porperty CONFIG_MODE SPIx4 [current_design]
set_porperty BITSTREAM.CONFIG.CONFIGRATE 66 [current_design]
write_ bitstream -verbose -force -bin_file $ImplOutputDir/top.bit
#設(shè)置QSPI為四線模式,66MHz,同時生成.bin和.bit文件
7.將日志log文件保存到指定文件中
opt_design -directive Default > ./chech_opt.log
place_design -directive Default > ./chech_place.log
phys_design -directive Default > ./chech_phys.log
route_design -directive Default > ./chech_route.log
8.計算elapsed值
set start_time [clock format [clock seconds] -format "%s"]
place_design
set end_time [clock format [clock seconds] -format "%s"]
set place_elapse [clock format [expr $end_time - $start_time] -format "%H:%M:%S" -gmt true]

4.掃描策略

??掃描策略是一種時序收斂方法。掃描策略分為掃描綜合策略和掃描實現(xiàn)策略。在大多數(shù)情況下,掃描實現(xiàn)策略更為有效。
??掃描實現(xiàn)策略實際上就是掃描不同的-directive值。
??在Non-Project模式下,通常有5中掃描方式:

模式0:只掃描place_design的-directive值(此時需要提供opt_design生成的.dcp)
模式1:只掃描route_design的-directive值(此時需要提供place_design生成的.dcp)
模式2:順序掃描方式,即先提供place_design、phys_opt_design、route_design的-directive組合,然后進行掃描
模式3:先掃描place_design下的-directive值,從中獲取WNS最好的情形,然后執(zhí)行phys_opt_design,并在此基礎(chǔ)上,掃描route_design的-directive值
模式4:交織掃描方式,即每一個place_design的-directive值和route_design的-directive值構(gòu)成一個掃描對

??獲取WNS和WHS的命令:文章來源地址http://www.zghlxwxcb.cn/news/detail-667874.html

set tps [get_timing_paths -max_paths 100 -setup]
set wns [get_property SLACK [lindex $tps 0]]
set tph [get_timing_paths -max_paths 100 -hold]
set whs [get_property SLACK [lindex $tph 0]]

到了這里,關(guān)于tcl學(xué)習(xí)之路(二)(vivado設(shè)計流程管理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Vivado運行官方提供的tcl腳本

    Vivado運行官方提供的tcl腳本

    ? ? ? ? Xilinx官方提供了很多Demo工程,其中多數(shù)以tcl腳本的形式提供給我們,這就需要我們手動運行該tcl腳本,自動生成并編譯官方Demo工程。 ? ? ? ? 但是怎么在Vivado中將官方提供的tcl腳本跑起來,這里博主經(jīng)過一段時間的摸索,將經(jīng)驗進行簡單總結(jié),如果過Linux使用經(jīng)驗

    2024年02月11日
    瀏覽(21)
  • 在vivado中使用tcl腳本(UG894)

    本文源自UG894,主要介紹如何在vivado中使用tcl腳本 vivado中任何自帶的命令都可以通過“-help”獲取幫助信息。 也可以直接輸入“help”取得vivado命令合集,并通過“help -category (tools)”來獲取某類操作的所有命令簡介。 該過程可以通過運行GUI vivado自動產(chǎn)生的記錄文件vivado.jou查

    2023年04月08日
    瀏覽(97)
  • Vivado時序約束TCL命令——獲取引腳(get_pins)在FPGA設(shè)計中起著重要作用。本文將為大家詳細(xì)介紹get_pins命令的語法和使用方法。

    Vivado時序約束TCL命令——獲取引腳(get_pins)在FPGA設(shè)計中起著重要作用。本文將為大家詳細(xì)介紹get_pins命令的語法和使用方法。 get_pins命令用于獲取指定對象(Object)的引腳(Pin)列表。我們可以使用get_pins來獲取具有特定命名約定的引腳(如CLOCK、RESET等),并通過對這些引

    2024年02月05日
    瀏覽(132)
  • Vivado block design 導(dǎo)出與導(dǎo)入(tcl文件的生成與載入)

    Vivado block design 導(dǎo)出與導(dǎo)入(tcl文件的生成與載入)

    摘要:Vivado block design 導(dǎo)出與導(dǎo)入 主要步驟:open block design —— File —— Export —— Export block design open block design File —— Export —— Export block design 將block design 保存到自己想要的位置,然后在Tcl console中使用tcl命令,直接source ? 我在source的時候會遇到版本不一致的問題,這個

    2024年02月11日
    瀏覽(457)
  • FPGA:Vivado流水燈設(shè)計詳細(xì)流程(1)

    FPGA:Vivado流水燈設(shè)計詳細(xì)流程(1)

    基于Vivado的FPGA設(shè)計開發(fā)的流程主要包括以下步驟: 1)創(chuàng)建工程; 2)創(chuàng)建源設(shè)計文件,包括Verilog文本、IP核、模塊文件、網(wǎng)表輸入等方式; 3)行為仿真(Behavioral Simulation),Vivado自帶仿真器,也可以選擇第三方仿真軟件ModelSim等工具進行仿真; 4)綜合(Synthesis):根據(jù)設(shè)

    2024年02月03日
    瀏覽(30)
  • vivado I/O和時鐘規(guī)劃設(shè)計流程步驟

    vivado I/O和時鐘規(guī)劃設(shè)計流程步驟

    I/O和時鐘規(guī)劃設(shè)計流程步驟 下圖顯示了左側(cè)的項目設(shè)計流程步驟。水平箭頭表示項目設(shè)計流程中可以執(zhí)行I/O和時鐘規(guī)劃的點。中的步驟I/O和時鐘規(guī)劃設(shè)計流程如右圖所示。 項目設(shè)計流程從一個空的I/O規(guī)劃項目、RTL設(shè)計項目或合成后網(wǎng)表項目。使用這些項目類型中的任何一種

    2024年01月24日
    瀏覽(13)
  • FPGA 學(xué)習(xí)筆記:Vivado 工程管理技巧

    FPGA 學(xué)習(xí)筆記:Vivado 工程管理技巧

    當(dāng)前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 開發(fā)利器 Vivado 的工程管理方法 這里初步列舉一些實際 Xilinx FPGA 開發(fā)基于 Vivado 的項目使用到的工程的管理技巧 做過嵌入式軟件或者其他軟件開發(fā)的工程技術(shù)人員,都會想到使用代碼管理工具,如 SVN 、Git 等對代碼進行管理

    2024年02月09日
    瀏覽(23)
  • vivado中的FPGA時鐘管理單元PLL學(xué)習(xí)記錄

    vivado中的FPGA時鐘管理單元PLL學(xué)習(xí)記錄

    FPGA中時鐘管理模塊(CMT)包括PLL和MMCM,用于將時鐘倍頻(比如輸入時鐘25M,我們要產(chǎn)生50M時鐘)、分頻(在不影響系統(tǒng)功能的前提下,較低的工作時鐘,能夠降低系統(tǒng)功耗)、改變相位偏移或占空比等。 當(dāng)需要上板時,由于板上晶振時鐘固定,所以其他頻率的時鐘產(chǎn)生就要用到

    2024年01月16日
    瀏覽(23)
  • Python學(xué)習(xí)之路-內(nèi)存管理

    Python的內(nèi)存管理機制可以總結(jié)為:引用計數(shù)、垃圾回收、內(nèi)存池。 引用計數(shù)是一種非常高效的內(nèi)存管理手段, 當(dāng)一個 Python 對象被引用時其引用計數(shù)增加 1, 當(dāng)其不再被一個變量引用時則計數(shù)減 1. 當(dāng)引用計數(shù)等于 0 時對象被刪除。 引用計數(shù) 引用計數(shù)也是一種垃圾收集機制,

    2024年01月21日
    瀏覽(23)
  • FPGA入門學(xué)習(xí)筆記(十)Vivado設(shè)計狀態(tài)機實現(xiàn)UART多字節(jié)數(shù)據(jù)發(fā)送

    FPGA入門學(xué)習(xí)筆記(十)Vivado設(shè)計狀態(tài)機實現(xiàn)UART多字節(jié)數(shù)據(jù)發(fā)送

    使用串口發(fā)送5個字節(jié)數(shù)據(jù)到電腦 1、ADC采樣的結(jié)果為12位,如何使用串口發(fā)送 2、16位數(shù)據(jù),如何通過串口發(fā)送 3、多個字節(jié)的數(shù)據(jù),如何通過串口發(fā)送 UART規(guī)定,發(fā)送的數(shù)據(jù)位只能有6、7、8位,若直接修改發(fā)送位數(shù),接收模塊將不適配。 兩種情況: 1、沒有開始發(fā)送(上一次的

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包