圖9.讀取循環提供了在已采集數據返回主機之前對其進行處理的機會。在默認情況下,讀取回路返回原始數據。
雖然頂層FPGA VI集合了13個儀器設計庫的功能,然而在主機上對所有這些庫進行獨立編程仍然不方便,并且此應用層主機代碼一點也不像傳統的VSA或者VSG API。為了解決此問題,Simple VSA/VSG項目樣例包含了一個附加主機層,將這些儀器設計庫集合在一個接口內,提供了與供應商定義的VSA/VSG API相類似的功能。LabVIEW類為此提供了一個方便的機制,即提供一個嚴格類型的會話,公有和私有方法,以及一個方便的子VI圖標頭文件保持機制。請注意,LabVIEW類中面向對象的繼承,并沒有用于此主機接口。
圖10.LabVIEW類提供了一個方便的功能集合和主機接口保持機制。
這個簡單的VSA/VSG樣例項目還提供了常見的RF VSA和VSG操作所用的若干個主機樣例,這些樣例說明了如何正確使用主機接口。這些樣例涵蓋頻域和I/Q采集;CW和基于序列的波形發生;以及多輸入多輸出(MIMO)同步。
圖11.一些主機樣例說明了Simple VSA/VSG項目樣例使用基于類的主機接口的方法
簡單VSA/VSG項目樣例包含極多功能,并提供了熟悉的主機接口。然而該實用工具的代價就是代碼的復雜度。具體地說,FPGA上的DRAM采用基于波形的抽取,顯著增加代碼量、復雜度,以及VST FPGA資源占用。然而,并不是所有應用均需要基于波形或者儀器數據移動范式。一些應用更加適合實時流數據移動架構。對于這些應用,VST Streaming項目范例是一個更好的起點,自定義的自由度更廣。
圖12.VST Streaming項目樣例在主機和FPGA上集合了儀器設計庫,提供了一個靈活地開發實時、低滯后信號處理和嵌入式應用的起
VST Streaming項目樣例的頂層FPGA VI的架構與簡單VSA/VSG項目樣例相近。然而如果仔細考察,會發現要簡單得多。可以明顯看出,VST Streaming沒有代碼量極多的配置過程。配置循環也簡單得多,只有一條寄存器總線而非兩條,并且所有子系統均包在一個子VI中。
圖13.VST Streaming項目樣例中的FPGA VI配置回路,只有一個寄存器總線接口,比Simple VSA / VSG要簡單得多