FPGA研發(fā)之道(6)架構設計漫談(一)流驅動和調用式
勿用諱言,現(xiàn)在國內FPGA開發(fā)還處于小作坊的開發(fā)階段,一般都是三、四個人,七八臺機器.小作坊如何也能做出大成果。這是每個FPGA工程師都要面臨的問題。架構設計是面臨的第一關。經常有這樣的項目,需求分析,架構設計匆匆忙忙,號稱一兩個月開發(fā)完畢,實際上維護項目就花了一年半時間。主要包括幾個問題,一,性能不滿足需求。二,設計頻繁變更。三,系統(tǒng)不穩(wěn)定,調試問題不收斂。
本文引用地址:http://www.butianyuan.cn/article/264349.htm磨刀不誤砍柴工,FPGA設計的需求分析是整個設計第一步。如何將系統(tǒng)的功能需求,轉換成FPGA的設計需求,是FPGA架構設計的首要問題。首先, 需要明確劃分軟件和硬件的邊界。軟件主要處理輸入輸出、界面顯示、系統(tǒng)管理、設備維護。而FPGA則負責大數(shù)據(jù)流的處理。
如果使用幾百元FPGA實現(xiàn)了一個十幾元單片機就能完成的功能,就算實現(xiàn)的非常完美,那么這是一個什么樣的神設計?任何一個項目都要考慮成本,研發(fā)成本、物料成本、維護成本等等。FPGA的使用位置必定是其他器件難以企及的優(yōu)勢。
因此對于一個FPGA架構設計,其首先需要考慮就是性能,如沒有性能的需求,其他的處理器ARM就可能替代其功能。其次就是接口,用于處理器擴展其沒有的接口,作為高速接口轉換。最后,需要考慮就是可維護性,F(xiàn)PGA的調試是非常耗時的,一個大型的FPGA的編譯時間在幾小時甚至更高(通過嵌入式分析儀抓信號,每天工作8小時,只能分析兩到三次)。而軟件調試只需make,編譯時間以秒來記(這個問題可以通過提升編譯服務器性能改善而不能消失,本質上要考慮可測性設計)。如果不考慮維護性和可測性,調試成本和壓力就非常之大。
通常,F(xiàn)PGA的大部分架構設計可以采用數(shù)據(jù)流驅動的方式來實現(xiàn),例子1,假設一個實現(xiàn)視頻解壓縮FPGA的設計,輸入是無線接口,輸出為顯示屏。那么輸入輸出的接口基本就能確定。以數(shù)據(jù)流為驅動可以粗略劃分,輸入接口->解壓縮模塊->視頻轉換模塊->顯示接口。如需要視頻緩沖,則確定是否需要連接外部存儲器。那就需要確認在什么位置進行數(shù)據(jù)的緩沖。通過要支持顯示的畫面的質量,就能確認最大碼流,同樣可以計算視頻解壓模塊和轉換模塊的計算能力,從而導出所需的內部總線寬度,系統(tǒng)頻率,以及子模塊個數(shù)等等。例子2,某支持通過有線電視網上網電視IP網關,同樣也是輸入的普通IP網絡,輸出為有線調試網的調試解調器。將IP報文等長填充后,在固定時隙內送入有線電視網中,同樣也是基于數(shù)據(jù)流驅動的方式。
數(shù)據(jù)流驅動式架構,可以作為FPGA設計中一個最重要的架構。通常來說應用于IP領域、存儲領域、數(shù)字處理領域等較大型FPGA設計都是數(shù)據(jù)流驅動式架構,主要包括輸入接口單元,主處理單元,輸出接口單元。還可能包括,輔助處理單元、外部存儲單元。這些單元之間一般采用流水式處理,即處理完畢后,數(shù)據(jù)打包發(fā)完下一級處理。其中輸入輸出可能有多個,此時還需要架構內部實現(xiàn)數(shù)據(jù)的交換。
另一種較為常用的架構方式為調用式架構,即一般FPGA通過標準接口如PCI、PCI-E,CPCI,PCI-X,EMIF等等。各種接口,F(xiàn)PGA內部實現(xiàn)某一加速單元,如視頻加速,數(shù)據(jù)處理,格式轉換等操作。這種結構基本基本圍繞FPGA接口、加速單元展開,屬于數(shù)據(jù)的反饋類型,即處理完數(shù)據(jù)又反饋回接口模塊。
其他雖然各型各樣,如SOPC,如各型接口,但本質上其都是為上述架構服務的,或做配置管理替代外部CPU,或在數(shù)據(jù)流中間傳遞中間參數(shù)?;蛟趦炔繉崿F(xiàn)CPU+協(xié)處理器的架構,因此說,無他變化。
孫子兵法云:“兵無常勢,水無常形”。但是對于一種設計技術來說,沒有一種固定演進的架構和設計,那么項目的整個設計層次總是推到重來,從本質上說,就是一種低水平重復。如果總結規(guī)律,提煉共性,才能在提升設計層次,在小作坊中取得大成果。
fpga相關文章:fpga是什么
汽車防盜機相關文章:汽車防盜機原理 頻譜分析儀相關文章:頻譜分析儀原理
評論