Vivado非工程模式下的FPGA設計流程
時間:2025-10-23 22:20:51
手機看文章
掃描二維碼
隨時隨地手機看文章
Vivado集成開發(fā)工具為設計者提供了非工程模式下的FPGA設計流程。在Vivado非工程模式下,FPGA開發(fā)人員可以更加靈活地對設計過程的每個階段進行控制,從而進一步提高FPGA的設計效率。
非工程模式下基本命令列表



| 命令 | 功能 |
| read_edif | 將EDIF或者NGC網表導入當前工程的設計源文件集合中 |
| read_verilog | 讀入用于非工程模式會話的Verilog(.v)和SystemVerilog(.sv)源文件 |
| read_vhdl | 讀入用于非工程模式會話的VHDL(.vhd或vhdl)源文件 |
| read_ip | 讀入用于非工程模式會話的已經存在的IP(.xco或者.xci)工程文件。使用來自.xco IP工程的.ngc網表。對于.xci IP,使用RTL用于編譯;或者如果存在網表,則使用網表 |
| read_xdc | 讀入用于非工程模式會話的.sdc或者.xdc文件 |
| set_paramset_property | 用于多個目的。例如,它可以定義設計配置和工具設置等 |
| link_design | 如果會話中使用網表文件,則對設計進行編譯,用于綜合目的 |
| synth_design | 啟動Vivado綜合,包含設計的頂層模塊名字和目標器件參數 |
| opt_design | 執(zhí)行高層次設計優(yōu)化 |
| power_opt_design | 執(zhí)行智能時鐘門控,用于降低系統(tǒng)的整體功耗(可選) |
| place_design | 對設計進行布局 |
| phys_opt_design | 執(zhí)行物理邏輯優(yōu)化,以改善時序和布線能力(可選) |
| route_design | 對設計進行布線 |
| report* | 運行多個標準的報告,可以在設計過程的任何一個階段運行它 |
| write_bitstream | 生成一個比特流文件,并且運行DRC |
| write_checkpointread_checkpoint | 在設計流程的任何點保存設計。一個設計檢査點由網表和約束構成,它們在設計流程的該點進行了優(yōu)化,以及包含實現的結果 |
| start_guistop_gui | 調用在存儲器中當前設計的Vivado集成開發(fā)環(huán)境 |
典型TCL腳本


為了方便讀者從整體上了解在Vivado非工程模式下的基本命令的功能,下面將給出用于Vivado設計套件示例的非工程模式TCL腳本,該腳本可以說明使用設計檢查點、用于保存設計流程中各個階段的數據庫狀態(tài)和手工生成各種報告的方法。
通過下面的命令運行該Tcl腳本文件:
vivado -mode tcl –source create_bft_batch.tcl
|
Following is an example of a Non-Project Mode script, which reads in various source files:# create_bft_batch.tcl# bft sample design# A Vivado script that demonstrates a very simple RTL-to-bitstream batch flow## NOTE: typical usage would be "vivado -mode tcl -source create_bft_batch.tcl"## STEP#0: define output directory area.#set outputDir ./Tutorial_Created_Data/bft_outputfile mkdir $outputDir## STEP#1: setup design sources and constraints#read_vhdl -library bftLib [ glob ./Sources/hdl/bftLib/*.vhdl ]read_vhdl ./Sources/hdl/bft.vhdlread_verilog [ glob ./Sources/hdl/*.v ]read_xdc ./Sources/bft_full.xdc## STEP#2: run synthesis, report utilization and timing estimates, write checkpointdesign#synth_design -top bft -part xc7k70tfbg484-2 -flatten rebuilt write_checkpoint -force $outputDir/post_synthreport_timing_summary -file $outputDir/post_synth_timing_summary.rptreport_power -file $outputDir/post_synth_power.rpt## STEP#3: run placement and logic optimzation, report utilization and timingestimates, write checkpoint design#opt_designplace_designphys_opt_designwrite_checkpoint -force $outputDir/post_placereport_timing_summary -file $outputDir/post_place_timing_summary.rpt## STEP#4: run router, report actual utilization and timing, write checkpoint design,run drc, write verilog and xdc out#route_designwrite_checkpoint -force $outputDir/post_routereport_timing_summary -file $outputDir/post_route_timing_summary.rptreport_timing -sort_by group -max_paths 100 -path_type summary -file$outputDir/post_route_timing.rptreport_clock_utilization -file $outputDir/clock_util.rptreport_utilization -file $outputDir/post_route_util.rptreport_power -file $outputDir/post_route_power.rptreport_drc -file $outputDir/post_imp_drc.rptwrite_verilog -force $outputDir/bft_impl_netlist.vwrite_xdc -no_fixed_only -force $outputDir/bft_impl.xdc## STEP#5: generate a bitstream#write_bitstream -force $outputDir/bft.bit |
Vivado集成開發(fā)環(huán)境分析

3.1 啟 動 Vivado集 成 開 發(fā) 環(huán) 境
當工作在非工程模式時,對于存儲器中活動的設計來說,使用下面的命令打開/關閉Vivado集成開發(fā)環(huán)境。
(l)start_gui,打開Vivado集成開發(fā)環(huán)境,用于存儲器中活動的設計。
(2)stop_gui,關閉Vivado集成開發(fā)環(huán)境,并且返回“Vivado Design Suite Tcl shell”界面。
在設計過程的每個階段,設計者均可以打開Vivado集成開發(fā)環(huán)境,對存儲器中保存的當前設計進行分析和操作。在非工程模式下,在Vivado集成開發(fā)環(huán)境中,一些工程的特性是不可用的,如Flow Navigator、Project Summary,以及源文件的訪問、管理和運行。然而,通過Vivado集成開發(fā)環(huán)境的Tools菜單,可以使用分析及修改約束等很多特性。
需要知道的是,在Vivado集成開發(fā)環(huán)境中,對存儲器中的設計所做的任何變化都會自動應用到下游工具中,這里沒有保存的功能。如果設計者想要將約束的變化用于后續(xù)的運行,則在Vivado集成幵發(fā)的環(huán)境的主菜單下,執(zhí)行菜單命令【File】—【Export】—【Export Constraints】,寫到一個新的包含所有XDC文件的文件中。
3.2 打開設計檢查點的方法
通過Vivado集成設計環(huán)境,設計者可以在保存的設計點上對設計進行分析。通過使用Tcl命令(synth_design、opt_design、power_opt_design、place_design、phys_opt_design和route_deSign),設計者可以在非工程模式下運行一個設計,并且可以在任何階段保存一個設計。這樣,就可以在Vivado集成設計環(huán)境中讀取設計。設計者可以從一個布線后的設計開始,分析時序,僅通過布局來解決時序問題。然后保存剛才的工作,甚至設計中還沒有進行的布線操作。Vivado集成設計環(huán)境顯示打開設計點的名字。
設計者可以打開、分析和保存設計檢查點,也可以將變化保存到新的設計點。
(1)在Vivado集成開發(fā)環(huán)境下,執(zhí)行菜單命令【File】->【Save Checkpoint】,保存對當前設計檢查點的修改。
(2)在Vivado集成開發(fā)環(huán)境下,執(zhí)行菜單命令【File】—【Write Checkpoint】,將設計檢查點的當前狀態(tài)保存到一個新的設計檢查點中。





