1. 程式人生 > >【 Vivado 】理解工程模式和非工程模式

【 Vivado 】理解工程模式和非工程模式

目錄

 

Understanding Project Mode and Non-Project Mode

Project Mode

Non-Project Mode

Feature Differences

Command Differences


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
 

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