LabVIEWCompactRIO 開發(fā)指南37 在第三方模擬器中執(zhí)行
LabVIEWCompactRIO?開發(fā)指南37
在第三方模擬器中執(zhí)行
如果需要驗證時序和功能,在將LabVIEW?FPGA?VI編譯到硬件之前,可以與三款第三方仿真器進行交互:MentorGraphicsModelSim(LabVIEW2013及更早版本)、MentorGraphicsQuesta和XilinxISim??梢允褂眠@些模擬器的設計驗證和調試功能來調試功能行為和基于時序的錯誤。要將ISim與LabVIEW?FPGA模塊配合,應熟悉HDL仿真器和VHDL,這是編寫測試臺所需的?,F在可以選擇使用VHDL或LabVIEW為ModelSim編寫測試工作臺。白皮書Cycle-AccurateCoSimulationwithMentorGraphicsModelSim提供了與ModelSim接口的教程。
在硬件中執(zhí)行
在仿真模式或桌面環(huán)境中進行調試可以節(jié)省時間,但確實會出現需要將代碼編譯到FPGA目標,然后實時運行和調試的情況。在這些情況下,必須將其他代碼寫入應用程序,以測試和驗證應用程序的核心功能。調試完成后,通常會刪除或禁用此代碼。NIFPGA?Debug?Librar組件提供了一組簡單函數,可實時地調試LabVIEW?FPGA應用程序。除了執(zhí)行常見的簡單任務外,這些函數還提供模塊化編程接口,幫助快速構建高級調試結構。

圖5.40.高級I/O計數器
優(yōu)化LabVIEW?FPGA代碼
在LabVIEWFPGA中使用常規(guī)的LabVIEW編程技術時,會立即獲得基于FPGA的方法的優(yōu)勢。有時,可能需要在以下一個或多個相關維度上進一步推動系統(tǒng):吞吐量、時序、資源和數值精度。

圖5.41.借進一步推動系統(tǒng)實現吞吐量、定時控制、資源利用或數值精度
這些維度通常是相互關聯的,因此使用其中一個維度改進設計有時會對其他維度產生積極影響,但更多時候是以犧牲它們?yōu)榇鷥r的。了解這些維度以及它們之間的關系非常重要,因此本指南在下面列出了一些基本定義,并在后面的章節(jié)中探討了相關技術。
吞吐量
吞吐量是DSP和數據處理應用的關鍵問題。它以每單位時間的工時來衡量。在大多數使用NIRIO硬件的應用中,工作是指處理或傳輸樣本,因此其吞吐量通常以每秒樣本或某種等效形式(如字節(jié)、像素、圖像、幀或每秒操作數)來測量??焖俑道锶~變換(FFT)是吞吐量的處理函數的一個示例,其吞吐量可以以FFT、幀或每秒樣本數來測量。
High-PerformanceRIO?Developer’s?Guide更深入地討論了影響吞吐量的因素,以及一套技術,可幫助在創(chuàng)建LabVIEW?FPGA應用程序時實現更高的吞吐量。
定時控制
時序控制是指規(guī)定和測量系統(tǒng)中感興趣事件之間的時間量的能力。使用LabVIEW?FPGA時,設計會轉換到硬件電路,因此可以創(chuàng)建具有快速時時響應且抖動極小的設計??刂茟猛ǔP枰WC系統(tǒng)采樣和控制信號更新之間的最大響應時間。此時間量稱為延遲。在數字協(xié)議應用中,定時規(guī)范可以指與正在傳輸的數據或信號相關的事件之間的目標、最小或最大時間。精確的定時控制對于控制和數字協(xié)議應用領域都很重要。
High-PerformanceRIO?Developer’s?Guide,更深入地討論了延遲以及一套技術,可幫助在使用LabVIEW?FPGA時實現更低或更精確的定時響應。
資源利用率
FPGA的資源數量有限,并且通常比處理器或微控制器在存儲和存儲器元件方面受到更多的限制。能夠將設計融入FPGA是整個開發(fā)過程的硬約束。FPGA也由不同類型的資源組成,因此用完一種類型的資源可能會阻止在應用程序中取得進展。
更重要的是,資源利用率會對其他性能維度產生巨大影響,尤其是吞吐量和滿足時間限制。請參閱High-PerformanceRIO?Developer’s?Guide,了解組成FPGA的不同資源的描述,以及如何平衡這些資源以使設計適合并提高性能。
數值精度
數值精度問題圍繞著是否有足夠的數字或位,以便應用程序可以正常工作。數值精度不足被認為是必須避免和測試的功能問題。用于表示系統(tǒng)變量的位數(包括用于整數的位數、定點數的整數和小數部分以及浮點數的動態(tài)范圍)可能會對應用程序的性能和資源利用率產生重大影響,因此應考慮這一點。
編譯LabVIEW?FPGA代碼
LabVIEW?FPGA編譯過程已在本章第一部分中介紹。此過程最多可能需要幾個小時,具體取決于設計有多復雜。本節(jié)提供了一些減少編譯時間和理解編譯報告的提示。
減少編譯時間
NI提供了多種用于編譯LabVIEW?FPGA代碼的選項。在LabVIEW項目中創(chuàng)建LabVIEW?FPGA構建規(guī)范時,會在類似圖5.42的對話框中看到選項。

圖5.42可用于選擇編譯服務器的幾個選項
使用本地編譯服務器-默認情況下,可以在本地開發(fā)電腦上進行編譯。這是編譯小型VI的可行解決方案,但如果擔心編譯時間過長,則應考慮以下其他選項。
連接到網絡編譯服務器(單個服務器)-可以選擇將編譯卸載到網絡上基于Windows或Linux的單個計算機。事實證明,在Linux機器上編譯與在Windows機器上編譯時,編譯時間會減少。
連接到網絡編譯服務器(場)—如果在團隊中工作,則可以使用LabVIEWFPGA
Compile?Farm?Toolkit來設置包含多個工作程序的編譯場。該工具包可幫助創(chuàng)建現場服務器來管理FPGA編譯??梢愿鶕枰B接任意數量的工作計算機,中央服務器軟件通過并行編譯和隊列來管理。如果無法將云技術用于項目,這是減少編譯時間的有效方法。
連接LabVIEW?FPGA編譯云服務—此服務可幫助使用最新的專用高RAM高端計算機在Linux上編譯FPGA?VI。根據LabVIEW?FPGA?VI的大小,可能會注意到,與在Windows桌面上編譯相比,編譯時間大大縮短。在云中編譯還增加了并行編譯許多VI的能力。
閱讀編譯報告
編譯FPGA?VI后,LabVIEW顯示一個編譯報告,其中包含有關應用程序整體大小和速度的信息。此信息可以幫助決定如何在必要時優(yōu)化代碼。
請注意,編譯器算法不是確定性的,即使不更改VI或編譯器設置,也可能從一次編譯到下一次編譯獲得不同的結果。如果編譯失敗,可以更改編譯器設置,方法是右鍵單擊LabVIEW項目中的構建規(guī)范,然后從上下文菜單中選擇屬性。在“屬性”頁面中,選擇Xilinx?Options.。
VI大小
成功編譯對話框中顯示的最終設備利用率(映射)報告提供有關使用的切片寄存器、切片查找表和乘法器數量以及使用的塊RAM量的信息。建議的最佳實踐是將最終應用中的整體FPGA使用率保持在90%以下。如果將來升級軟件并需要重新編譯VI,可能會發(fā)現不同版本的Xilinx編譯工具鏈或多或少地使用結構。在這種情況下,需要一些額外的空間來使用。

圖5.43.最終設備利用率報告
VI速度
“成功編譯報告”對話框還包含有關應用程序時鐘速率的信息。
■請求—顯示已編譯的FPGA?VI運行的時鐘速率。默認設置為40MHz。
■最大值—顯示FPGA?VI的理論最大編譯速率。

圖5.44.最終時間報告
如果最大速率慢于請求的速率,則會產生錯誤,編譯過程將停止。必須將應用程序修改為最大速率等于或大于請求的速率。使用SCTL時的一個常見問題是請求的速率超過理論最大值。
?
需要說明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開,其中壓縮文件是可以采用粘貼復制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個問題就不用加微信咨詢了。有關LabVIEW編程、LabVIEW開發(fā)等相關項目,可聯系們。附件中的資料這里無法上傳,可去公司網站搜索下載。