NI LabVIEW FPGA 的新功能
觀看網路研討會:LabVIEW 2010 FPGA 的新功能 LabVIEW 2010 的新功能
LabVIEW 8.6 的新功能
LabVIEW 8.5 的新功能
LabVIEW 8.2 的新功能
LabVIEW 8.0 的功能
LabVIEW 7.1 的功能
LabVIEW 2010 的新功能IP Integration NodeIP Integration Node 將取代 HDL Interface Node,可帶入第三方 IP。並可將節點指向現有 VHDL,或使用內建的相容 Xilinx Core Generator。此節點亦可自動為 IP 產生模擬模型。即使開發電腦具備 CoreGen 或 VHDL,亦可模擬 FPGA 簡圖。一旦設定節點完畢,即可使用 IP 搭配輸入與輸出,就與其他 LabVIEW 節點一樣。
新的編譯功能可搭配 Compile Farm、雲端運算軟體,與 Build SpecificationsLabVIEW FPGA 現在透過 Build Specifications 功能,可保有特定 VI 的編譯屬性。除了可管理自己的編譯作業之外,亦能以不同的 Xilinx 工具設定進行實驗。NI 亦提供可建立 Compile Farm 的工具組,以分擔開發機器的 FPGA 編譯負載。NI 亦同時在實驗此編譯作業的雲端技術。LabVIEW FPGA Cloud Compile Service 目前為 LabVIEW 2010 的測試功能,將讓使用者可輕鬆以高端機器進行長期 FPGA 編譯。
以 ModelSim 精確模擬週期LabVIEW 2010 可將 LabVIEW 簡圖匯出為檔案集合,可於現成的模擬軟體中進行分析。透過這些方法,即可讓 LabVIEW FPGA 系統模擬精確週期。另請注意,此功能僅適合具備 ModelSim 與其他 FPGA 設計工具經驗的工程師。 更新與強化的 IPLabVIEW 2010 的新 FPGA IP 可用於統計 (如平均、變異,與標準差)、新的複雜乘法矩陣向量乘法,並可完整建置 DSP48E MAC 區塊。新的記憶體 IP 則支援雙埠讀取與外接 DRAM。最後,強化的 CLIP 具備設定精靈功能,可取代 XML 建立作業並支援一般 VHDL。 動態主介面接線在此之前,由於 FPGA 參考接線強制限制為 Bitfile 或 VI,因此幾乎無法重複使用 FPGA 介面。但 NI 為 LabVIEW 2010 建立了動態參考接線,只要是以 FPGA 介面 VI 所建立的 subVI,均可輕鬆重複使用。另請注意, FPGA VI 仍具備名稱架構的暫存記憶體連結功能 (人機介面控制元與指示元)。當要使用此功能時,必須確認亦可再使用這些名稱。此外,另可視自己需要而沿用舊有類型。 LabVIEW 2009 的新功能檔案體積與速度資源的初步估算由使用者所提供許多建議之一,即是希望能夠在等待編譯作業完成之前,能夠先估算 FPGA 資源的使用情況。透過 LabVIEW 2009,編譯器將可針對使用者的設計,初步估算 FPGA 的體積與速度;並可於「Synthesis」步驟並完成報表之後,提醒使用者進行檢視。 透過要徑 (Critical-Path) 強化功能而進行時序破壞 (Timing Violation) 的除錯作業當發生時序破壞 (Timing violation) 亦所謂的「不合時序」,可能難以有效進行程式設計並新增管線階數 (Pipeline stage),以診斷出要徑 (Critical path) 並降低時序限制。現在,時序破壞可產生視窗以顯示要徑中的各個 VI,並於 FPGA 程式圖中強調 VI 的位置。此功能甚至可檢視 subVI,以找出時序破壞的來源。 新/強化的高傳輸量數學與訊號處理 IP新的高傳輸量數學 VI 可透過高速交握協定,以提供新的函式 (如正弦、餘弦,與指數),並可於單一週期 Timed Loop 中使用相關函式。使用者不僅可擁有新的數學函式,亦可於高傳輸量的訊號鏈 (Signal chain) 中搭配使用其他函式,如 Window、FFT,與 Resample。 主機整合功能主機端的 LabVIEW 2009 具備 2 項重要功能。首先,NI 提供「C Interface」,只要是正在硬體中執行的 LabVIEW FPGA 程式,均可透過 C 語言與之溝通。此功能包含讀取/寫入暫存記憶體、DMA,與中斷。其次,LabVIEW 2009 具備新的 Scaling Companion VI,適用於特定的 FPGA IP 函式。舉例來說,可透過 1 組 VI 將原始的 FFT 資料轉換為頻譜;另 1 組 VI 將準備係數,以利 FPGA 篩選 VI;再有 1 組 VI 可取得頻率、振幅,與相位,並回傳數值以搭配訊號產生 VI。 LabVIEW 8.6 的新功能強化動作模擬針對更高效率的開發作業,可使用強化的動作模擬 (Behavioral simulation) 功能,於開發電腦中執行程式碼,並於編譯之前檢驗相關功能。此外,亦可於 LabVIEW 8.6 中使用 LabVIEW程式,將測試向量或交互值 (Interactive value) 插入至 FPGA 中的輸入 I/O 節點。擷取檢驗的輸出結果並呈現 FPGA 動作;於開發電腦同時執行主要應用與 FPGA;並可於模擬的 FPGA 與主程式碼之間,取得模擬的暫存記憶體與 DMA 轉換作業。有了這些新功能,不一定要透過編譯作業以檢查邏輯,亦可針對 FPGA 程式碼建立測試工作台,並模擬整組系統。 FFT 與其他新 IP在 LabVIEW 8.6 中,可透過 FPGA 的分窗功能 (Windowing) 建置 FFT。此為眾多使用者所要求的功能之一,而 NI 將之實現為可客制化的 IP 核心,以執行 FFT、反轉 (Inverse) FFT、多重 Bin size,並可設定多組輸出率。NI 亦開放有理重新取樣 (Rational resampling)、除法 (Divide)、平方根、自適應濾波器 (Adaptive filter),與定點溢位 (Overflow) 處理功能。 定點 (Fixed-Point) 支援定點資料類型現在幾乎支援所有的 FPGA 函式輸入。並支援 DMA、記憶體、濾波器、PID、FFT,與所有算術 (Arithmetic) 功能。此外,定點資料類型亦可選擇將溢位位元新增至接線 (Wire) 上。NI 將持續強化定點支援功能,以搭配資源有限的系統。 Component-Level IP (CLIP)針對以硬體敘述語言 (HDL) 所撰寫的外部 IP,Component-level IP 為匯出並使用該外部 IP 的新方式。以 CLIP 進行示例 (Instantiate) 的建置作業,可與 LabVIEW 程式同步執行,並可透過使用者建立的 I/O 節點進而溝通。透過某些硬體系統,更可使用 CLIP 直接溝通 I/O 的針腳。CLIP 功能進一步開放 FPGA 平台,以容納所有類型的 IP;與目前 HDL Node 所執行的資料流相較,CLIP 更適於同步執行作業。 LabVIEW 8.5 的功能FPGA Project Wizard新的 FPGA Project Wizard,可透過 FPGA 系統與設定完成的 I/O,協助使用者建立完整的 LabVIEW 專案,並接著進行程式設計。由於該功能可直接連至現有的 FPGA Wizard,因此可迅速產生功能程式碼,適用於類比和數位 I/O、計數器,與相位差編碼器量測。透過新的 DMA 選項,即可提升 FPGA Project Wizard 的功能,適於產生 FPGA 與主程式碼。
控制、濾波,與訊號產生 IPLabVIEW FPGA Module 8.5 的 FPGA 面板具備新 IP 並強化現有 IP,可提升 FPGA 所使用的資源。
模組化與程式碼再使用I/O 名稱控制元 - 將 I/O 節點、方式,與屬性放置於 subVI 中,以透過接線 (Wire) 而指定 I/O 項目。 時脈控制 - 透過接線以指定時脈 (如內建時脈或衍生時脈),以用於特定的單週期 Timed Loop。
強化反饋 (Feedback) 節點 - 於程式圖中放置反饋節點,以跳脫迴圈的內文 (Context)。反饋節點亦可用於狀態儲存 (State storage) 或管線流通 (Pipelining) 作業,並可於任何地點產生作用;包含 subVI。 LabVIEW 狀態圖 (Statechart) 模組NI 目前提供更多方法,以圖形化方式進行 FPGA 的程式設計。有許多工程師偏好使用狀態圖 (Statechart) 以呈現所需的系統。透過此可支援 LabVIEW FPGA 的新模組,工程師不僅可用狀態圖呈現 FPGA 架構的系統,並可透過相同的虛擬圖表進行程式設計。 率先支援定點 (Fixed-Point) 資料類型新的 LabVIEW 定點資料類型,特別適用於 FPGA 程式設計。在此之前,LabVIEW FPGA 僅支援整數。然而,有了新的定點資料類型,工程師可將分數 (Fractional number) 與任意位元寬度 (Bit-width) 資料類型,帶入至 FPGA 程式設計中。LabVIEW 8.5 的定點功能,僅可支援少數的原始數學 (Primitive math) 與比較函式。未來版本將擴充支援此重要的資料類型。 LabVIEW 8.2 的新功能FPGA 數學與分析 IPLabVIEW FPGA Module 8.2 具有新的通用分析功能,可針對 FPGA 常見的基本訊號處理與控制功能,再使用相關程式碼。此新的 IP 包含:
FPGA 精靈透過 FPGA Wizard,即可針對智慧型 DAQ 應用,進而設計 FPGA I/O 與時脈。透過此設定架構的精靈,即可於 FPGA 裝置與主機 VI 之間,選擇時脈與同步化。在選擇所需的時脈之後,即可設定類比、數位、計數器,或正交差編碼器的 I/O。一旦設定完成,即可儲存設定並產生基本 FPGA 程式碼與主程式碼。接著可整合其他程式碼以完成應用函式,如控制演算法、資料記錄,或資料的網路連結作業。
新的記憶體 VI透過新的記憶體讀取/寫入介面,可存取 1M Gate 裝置的所有 80 KB 記憶體;或 3M Gate 裝置的所有 190 KB 記憶體。不需使用低效率 FPGA Gate 的陣列,亦可透過記憶體儲存波形產生或記錄作業的資料。 LabVIEW 8.0 的功能LabVIEW Project透過 LabVIEW 專案,不僅可於 LabVIEW、LabVIEW FPGA Module、LabVIEW Real-Time Module,與其他 LabVIEW 模組中同步設定並開啟 VI,亦可開發 LabVIEW FPGA 應用。如下方所示,LabVIEW 的專案可建立並管理所有 FPGA 資源,包含:
DMA 資料轉換LabVIEW FPGA Module 8.0 的 DMA 功能,可最佳化 FPGA 裝置與主機之間的傳輸率。可重設 I/O (RIO) 介面卡中的 FPGA 最高可達 20 MHz 速率,而不包含 DMA 的最高資料串流率約可達 1 MB/s。LabVIEW FPGA Module 8.0 可於所有的 NI R 系列與 CompactRIO 介面卡中建立 DMA。與其他使用中斷要求 (Interrupt request) 的建置相較,至少可提升 FPGA 與主應用之間的資料串流率達 20 倍。 DMA 可於主機器中進行 Data-to-RAM 的直接連結功能。若依賴主機處理器進行裝置與主機的資料串流,往往造成潛時 (Latency) 與資料傳輸的瓶頸。中斷請求 (Interrupt request) 將佔用處理器的時脈週期,並增加主機 CPU 的整體負載。在 LabVIEW 8 中,使用者將可提升 CPU 的 Device-to-host 與 Host-to-device 資料傳輸率,以建立更高效能的 DAQ 系統。 若要使用 DMA,僅需建立 2 組記憶體緩衝區 - 分別位於 FPGA 裝置的記憶體與主機處理器的記憶體,並交由 LabVIEW 以 PCI 匯流排傳輸資料。LabVIEW FPGA Module 8.0 使用專為 DMA 所設定的 FPGA FIFO,以讀取/寫入 DMA 記憶體,並於主機端使用 FPGA 的相關方式,以建立、寫入,並讀取主機記憶體。DMA 可大幅提升應用的 RIO 硬體功能,如緩衝式智慧型資料擷取、通訊裝置的數位串流作業、行動式資料擷取,與線上機器狀態監控 (MCM)。
拖曳式 FPGA I/O透過 LabVIEW FPGA,即可使用特定裝置的 I/O 功能,迅速存取 RIO 介面卡的 I/O。(然而,此處所提及的 LabVIEW FPGA 函式面板,將專屬於 FPGA 執行系統,且相關功能僅可用於 FPGA 裝置或 FPGA 裝置模擬器。) LabVIEW FPGA Module 可直接以單點 (Single-point) 存取 NI RIO 硬體上的類比與數位 I/O。透過 LabVIEW 8.0 FPGA Module,即可直接從 LabVIEW 專案視窗拖曳所需的 I/O,放置於 FPGA VI 的程式圖上。 LabVIEW FPGA Module 提供多種裝置的 I/O 功能,包含:
LabVIEW 7.1 的功能單週期 Timed LoopLabVIEW 的 Timed Loop 架構,可於指定期間內執行迴圈。Timed Loop 具有多重速率 (Multirate) 時脈、精確時脈,與迴圈執行的反饋功能,除了可開發 VI 之外,亦可動態變更時脈特性或多組執行作業的優先順序。參閱 線上教學 以取得 Timed Loop 的相關資訊。LabVIEW FPGA 的單週期 Timed Loop 為專屬的 Timed Loop,可針對效率 (速度與空間條件) 與手動編碼 (Hand-coded) 的 HDL 程式設計,開發 LabVIEW FPGA 的應用。單週期 Time Loop 則近似於 VHDL 的時脈程序。迴圈中的所有 LabVIEW 程式碼,均為 FPGA 的組合邏輯 (Combinatorial logic);如數位輸入功能、控制,或左移 (Left-shift) 暫存器均為輸入,數位輸出功能、指示器,與右移暫存器均為輸出。使用者可輕鬆利用單週期 Timed Loop,與標準 While Loop 的使用方法完全相同。 單週期 Tmed Loop 可確保迴圈中的所有程式碼,均是以單時脈週期 (25 ns) 的速率執行。雖然單週期 Timed Loop 具有某些限制 (如單時脈週期將執行其內的所有程式碼),但針對數位 I/O、簡單邏輯,與訊號處理時,仍可建構極高效率的程式碼。了解 LabVIEW FPGA 中的單週期 Timed Loop 功能與 I/O 節點。 HDL Interface Node透過 HDL Interface Node,可直接將現有的 HDL IP 整合至 LabVIEW FPGA VI,並將此程式碼呈現為 LabVIEW 中的單一函式區塊。接著可於相同應用中再使用此程式碼,或於其他應用中使用相同的函式區塊。若使用者擁有 HDL 程式碼的區塊並用於 FPGA VI 中,則不需於 LabVIEW 中重新撰寫程式碼,即可將 VHDL 程式碼直接輸入至 HDL Interface Node,或導為外部的 .vhd 檔案。
整合客制化 VHDL 的 LabVIEW 程式圖 |

各個版本的 NI LabVIEW FPGA Module 均具有新功能、FPGA 功能元件組塊 (IP) 或函式、效能強化、除錯排程,還有更多功能。








