By David Main/Vladimir Adam/Martin S. Won
本文以Intervac的NightVista為例,說明以FPGA取代DSP開發嵌入式電子系統的好處。Intevac是商用和軍用光電子產品的主要開發者,NightVista為一種精簡的高性能超低感光度照相機,該照相機最初的開發是採用DSP處理器、ASSP和外部記憶體元件的模式。不過可編程邏輯所具備的可配置處理器內部核心讓開發團隊另闢蹊徑,它將這些獨立零組件和DSP功能整合到單個FPGA中,從而縮短開發時間、降低成本、減小尺寸並降低了功耗。
Intevac最初開發NightVista電子產品的方式是採用TI DSP處理器,且除了DSP處理器之外,還需要其他零組件,包括NTSC視訊編碼器、RS232介面、多個鎖相迴路(PLL)、雜散邏輯的CPLD和幾個記憶體(FIFO、SDRAM和Flash)。另外,這些零組件需要4種不同工作電源(4個穩壓器和PCB佈局空間)以及4個獨立的時鐘系統和相關的電晶體振盪器和電源去耦電路。所有這些零組件佔用了5個PC板,將近2平方英寸,疊放在2英寸的相機盒裡。
硬體開發幾個月後(包括一次重新製板),顯然這種方案無法達到Intevac對NightVista設定的性能目標,它的重量太重和功耗太大,同時也暴露出嚴重的溫度控制問題,因為高密度堆疊PCB配置會導致很大的功耗,需要採用另外的解決方案和技術。
Intevac最後放棄採用DSP的設計,轉向採用現場可編程邏輯陣列(FPGA)的混合脈動式邏輯和軟式核心微處理器實現方案,因為最新的低成本 FPGA完全能夠整合32位元RISC處理器、記憶體、鎖相迴路以及大量實現視訊專用訊號處理功能的邏輯。PLL整合到FPGA中能夠解決許多和板級多時鐘系統的問題。而Intevac在分析FPGA零組件功能和性能、IP可用性、整合多廠商零組件的技術和商務問題、驗證的硬體和軟體發展工具及廠商支援的信譽度之後,最後採用Altera Nios處理器在Cyclone FPGA的方案。
在做出這個決定之後,Intevac已經確定現有多少DSP軟體能夠導入到Nios處理器中。經過18個月的努力,先前的DSP方案能夠將圖像資料經過處理器傳送到輸出,但沒有視訊處理。採用FPGA的相機設計中,Nios處理器作用有很大的變化,只有和主機通訊的RS232序列通訊協定和可重用的視訊感測器配置協定。幸運的是,新型處理器的軟體發展非常直接俐落,在數小時內,Intevac用Nios開發板建立了處理器和主機直接的通訊。
在新的採用FPGA設計的電路板完成前的一個月時間內,Intevac繼續用Nios處理器開發電路板設計和驗證代碼。在使用DSP處理器時, Intevac曾使用過已有的即時操作系統(RTOS)來管理複雜的視訊處理器演算法的複雜時序。新處理器並沒有現成的RTOS,軟體組遇到許多這種情況,如果它們不能滿足時序的要求,就無法工作。在和硬體組商議之後,他們很快就發現這款新的處理器的可配置特性允許高度控制訊號的時序,通常僅對FPGA 設計做微小的修改就可以滿足時序要求,因為FPGA環境中硬體和韌體處理的高度整合性,能夠快速和方便地最佳化控制和視訊處理作業。
對這些可能性的進一步探究讓Intevac開發出滿足準確需求的專用功能和週邊。硬體和軟體組經常在白板上討論FPGA和處理器之間的劃分。如果軟體上有瓶頸,硬體組開發一個輔助運算器加快工作是很容易的事情。硬體組設計專用視訊編碼器、緩衝視訊資料的FIFO和保持編碼器穩定視訊資料流程的特殊DMA控制器,這樣就無需外部編碼器和FIFO。他們還構建專用的SDRAM控制器,改善了共用同一記憶體元件所有視訊、屬性和Nios處理器指令提取和資料儲存的性能。其中一些功能需要自己的時鐘,因此FPGA的板上PLL可從主時鐘產生三種不同的時鐘:一個用於視訊編碼器,另一個作為SDRAM的時序控制,第三個做為外部感測器。
除了實現以往需要外部元件的功能之外,Intevac還增加了比DSP處理器實現更佳的功能。視訊測試圖案產生器用於模擬相機操作,這樣軟體組就能夠更關注視訊的各種演算法而不是系統的調校。另一個是統計產生器,它用來分析視訊資料的特性,來對圖像增強進行改進。圖像統計產生器需要一些數學操作,由於用軟體實現速度太慢,所以Intevac使用FPGA中的邏輯資源來建構之,然後將結果傳送給處理器。
當收到製成的電路板後,花幾小時轉換開發板的程式碼,並在新電路板上運行。接下來沒幾星期,軟體和硬體部繼續平行工作,Intevac進一步最佳化和除錯它們的設計。雖然處理器和其他FPGA設計修改了許多次,但沒有影響到板子的設計。
最後,用Cyclone元件和軟式核心處理器實現可編程單晶片系統把5塊板的零組件減少到單塊板。這種整合使得相機變得更輕巧,將所需製成的電壓從4個減少到2個,將功耗降低了近80%。它也讓Intevac高效地用同樣的PCB板生產出多種產品。
另外,設計的簡化大大地減少了零組件和製造成本,提高了NightVista的品質和可靠性。這種解決方案也在最初的產品規範上增加了許多的功能,通過預留的FPGA資源,Intevac就有機會現場開發下一代產品。最後,這個方案讓Intevac探索和尋找出更快和更有效的設計開發流程,它為將來的產品開發節省大量時間和資源。