【 Vivado 】理解工程模式和非工程模式
目錄
Understanding Project Mode and Non-Project Mode
Understanding Project Mode and Non-Project Mode
Vivado設計套件有兩個主要使用模型:專案模式和非專案模式。 可以通過Vivado IDE或通過Tcl命令和批處理指令碼開發和使用專案模式和非專案模式。 但是,Vivado IDE為專案模式提供了許多好處,例如Flow Navigator圖形工作流程介面。 Tcl命令是執行非專案模式的最簡單方法。
Project Mode
Vivado Design Suite利用基於專案的架構來組裝,實現和跟蹤設計的狀態。 這稱為專案模式。 在專案模式下,Vivado工具可自動管理您的設計流程和設計資料。
Project Mode的主要優勢在於Vivado Design Suite管理整個設計過程,包括依賴關係管理,報告生成,資料儲存等。
在專案模式下工作時,Vivado Design Suite會在磁碟上建立目錄結構,以便在本地或遠端管理設計原始檔,並管理原始檔的更改和更新。
專案基礎結構還用於管理自動綜合和實施執行,跟蹤執行狀態以及儲存綜合和實施結果和報告。 例如:
•如果在綜合後修改HDL源,Vivado Design Suite會將當前結果標識為過時,並提示您進行重新合成。
•如果修改設計約束,Vivado工具會提示您重新綜合,重新實現或兩者兼而有之。
•佈線完成後,Vivado工具會自動生成時序,DRC,方法和電源報告。
•只需在Vivado IDE中單擊即可執行整個設計流程。
Non-Project Mode
或者,您可以選擇記憶體編譯流程,您可以在其中自行管理源和設計過程,稱為非專案模式。 在非專案模式下,您可以使用Tcl命令或指令碼自行管理設計源和設計過程。 關鍵優勢在於您可以完全控制流程的每個步驟。
在非專案模式下工作時,原始檔從其當前位置讀取,例如從修訂控制系統讀取,並且設計通過記憶體中的流程進行編譯。
您可以使用Tcl命令單獨執行每個設計步驟。 您還可以使用Tcl命令設定設計引數和實現選項。
您可以在設計過程的任何階段儲存設計檢查點並建立報告。 每個實施步驟都可以定製,以滿足特定的設計挑戰,您可以在每個設計步驟後分析結果。 此外,您可以隨時開啟Vivado IDE進行設計分析和約束分配。
在非專案模式下,使用Tcl命令控制每個設計步驟。 例如:
•如果在綜合後修改HDL檔案,則必須記住重新執行綜合以更新記憶體中的網表。
•如果在佈線後需要時序報告,則必須在佈線完成時顯式生成時序報告。
•使用Tcl命令和引數設定設計引數和實現選項。
•您可以使用Tcl在設計過程的任何階段儲存設計檢查點並建立報告。
隨著設計流程的進展,設計的表示將保留在Vivado Design Suite的記憶體中。 非專案模式會在每次會話後丟棄記憶體設計,並僅將資料寫入您指示的磁碟。
Feature Differences
在專案模式下,Vivado IDE會跟蹤設計的歷史記錄並存儲相關的設計資訊。 但是,由於許多功能都是自動化的,因此您對預設流程的控制較少。 例如,每次執行僅生成一組標準報告檔案。 但是,通過Tcl命令或指令碼,您可以在專案模式下自定義工具的流程和功能。
The following automated features are only available when using Project Mode:
• Out-of-the-box design flow
• Easy-to-use, push-button interface
• Powerful Tcl scripting language for customization
• Source file management and status
• Automatically generated standard reports
• Storage and reuse of tool settings and design configuration
• Experimentation with multiple synthesis and implementation runs
• Run results management and status
非專案模式,更像是一種編譯方法,您可以完全控制通過Tcl命令執行的每個操作。 這是一個完全可定製的設計流程,適合尋求控制和批處理的特定設計人員。 所有處理都在記憶體中完成,因此不會自動生成任何檔案或報告。 每次編譯設計時,都必須定義所有源,設定所有工具和設計配置引數,啟動所有實現命令以及生成報告檔案。
這可以使用Tcl執行指令碼來完成,因為專案不是在磁碟上建立的,原始檔保留在其原始位置,並且設計輸出僅在您指定的時間和地點建立。 此方法為您提供Tcl命令的所有功能,並完全控制整個設計過程。 許多使用者更喜歡這種批量編譯風格與工具和設計資料的互動。
Table 2-1: Project Mode versus Non-Project Mode Features
Flow Element | Project Mode | Non-Project Mode |
---|---|---|
Design Source File Management | Automatic | Manual |
Flow Navigation | Guided | Manual |
Flow Customization | Unlimited with Tcl commands | Unlimited with Tcl commands |
Reporting | Automatic | Manual |
Analysis Stages | Designs and design checkpoints | Designs and design checkpoints |
Command Differences
Tcl命令因您使用的模式而異,並且每種模式生成的Tcl執行指令碼都不同。 在非專案模式下,所有操作和工具設定都需要單獨的Tcl命令,包括設定工具選項,執行實施命令,生成報告和編寫設計檢查點。 在專案模式中,包裝命令用於各個綜合,實現和報告命令。
例如,在“專案模式”中,使用add_files Tcl命令將源新增到專案以進行管理。 可以將源複製到專案中以在專案目錄結構中維護單獨的版本,也可以遠端引用。 在非專案模式下,使用read_verilog,read_vhdl,read_xdc和read_ * Tcl命令從當前位置讀取各種型別的源。
在專案模式下,launch_runs命令使用預配置的執行策略啟動工具並生成標準報告。 這樣可以合併實施命令,標準報告,執行策略的使用和執行狀態跟蹤。 但是,您也可以在設計過程的每個步驟之前或之後執行自定義Tcl命令。 在專案中自動儲存和管理執行結果。 在非專案模式下,必須執行單個命令,例如opt_design,place_design和route_design。
許多Tcl命令可以在任一模式下使用,例如報告命令。 在某些情況下,Tcl命令特定於專案模式或非專案模式。 建立指令碼時,不得混用特定於一種模式的命令。 例如,如果您使用的是專案模式,則不得使用基本級命令,例如synth_design,因為這些命令特定於非專案模式。 如果在專案模式下使用非專案模式命令,則不會使用狀態資訊更新資料庫,也不會自動生成報告。
提示:專案模式包括GUI操作,這導致在大多數情況下執行Tcl命令。 Tcl命令出現在Vivado IDE Tcl控制檯中,也可以在vivado.jou檔案中捕獲。 您可以使用此檔案開發用於任一模式的指令碼。
Figure 2-3 shows the difference between Project Mode and Non-Project Mode Tcl commands.
內容來自於UG892