《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 工程師須知:FPGA 的演進、優勢、設計、改進

工程師須知:FPGA 的演進、優勢、設計、改進

2015-10-19
關鍵詞: FPGA 設計

  FPGA - 數字經濟時代的基石
  科技在近20年里發生了翻天覆地的變化,背后的推動主要來自于半導體技術的飛速發展,其中最大的革命是天才的人們通過模數變換,把自然界的一切模擬量變換到數字域,在數字域里用我們5千年來練就的功力 - 數學來描述并處理模擬的世界,在數字邏輯的基礎上人們又發明了基于指令的計算、數字信號處理等技術,于是有了我們今天的壓縮視頻、數字通信、無線網絡、互聯網等等,可以說“數字”是當今半導體科技的主旋律,我們正處于一個“數字時代”,正如本年度的CES也把主旋律定義成了“數字經濟”。從事電子技術的同仁們都知道,數字邏輯的基本單元就是“門”,由眾多的“門”構成各式各樣無論多么復雜的邏輯功能。FPGA - “現場可編程”“門陣列”,也就成了數字領域的“樂高”,用它可以搭建出任意的作品。
  FPGA的演進
  讓我先來回顧一下歷史。1989年我第一次接觸到電路板的時候,上面密布著一系列的TTL、CMOS芯片,一顆14~20只管腳的芯片中一般只有4-6個簡單的“門”,十幾個芯片的大板子也就完成尋址、譯碼之類的功能,使用起來是非常的痛苦,如果要修改邏輯,只能用手術刀切割電路板并進行飛線。94年的時候我開始使用GAL(當時是Lattice的16V8,20V8),覺得那簡直是一個革命,竟然可以用軟件編程修改芯片內部的邏輯而不用切割電路板,當時GAL不方便的地方在于輸入、輸出管腳都已經固定好,不能夠在線編程,每次修改邏輯都需要使用暴力把芯片從板座上拔下來放回編程器上進行修改。不久Lattice、AMD(好像還有Philips)都推出了能夠在線編程的PLD(CPLD/EPLD),專業術語叫ISP(In System Programming),I/O管腳已經可以任意定義,管腳數量也達到44個以上,非常適合中等規模的數字邏輯設計。1995年后期由于項目的需要,PLD已經無法滿足我們系統的要求,因為我們需要芯片內部要有大量的寄存器做Buffer, FIFO等。于是Altera, Xilinx以及他們的代理商輪番去拜訪我們的實驗室,給我們推薦新的器件 - FPGA。FPGA跟PLD有很大的不同:第一,PLD是可以通過再編程修改邏輯的器件,一旦編程好了,就如同功能固定的邏輯功能塊可以做它該做的事情了,FPGA就像白癡一樣,一掉電里面的東西全不見了,每次板子上電的時候需要從外部PROM(比小容量的FPGA還貴,而且原廠提供的一般都是只能一次編程的)把邏輯加載進來。第二,FPGA的結構跟PLD是不一樣的,PLD的優勢在于速度,主要用途在于靈活地構建各種組合和時序邏輯,而FPGA拼的是內部的存儲器,后期的FPGA內部有大量的塊狀存儲器(可方便地配置成SRAM,雙口RAM、FIFO等)以及分立的存儲器,適用于需要大量內部存儲器的應用,比如數據采集,通信系統中的交織、去交織,在FPGA內部構建帶有一定容量存儲器的微處理器 - 8031、RISC等,在PLD里面你是沒有任何可能的。因為當今的大多數設計中都會用到微處理器,FPGA廠商爭相針對這些需求開發了一些軟核,比如Xilinx的PicoBlaze(8位的)、MicroBlaze(32位的),后來覺得不過癮干脆把PowerPC給硬化進去了,一顆不夠,有的芯片里面還要塞4顆。
  當年我們項目中采用了Xilx的XC40xx,設計采用原理圖輸入,非常的原始但是很直觀。美中不足的地方在于Xilinx的軟件界面不太友好。2000年到美國后仍然從事硬件設計,還是使用Xilinx的FPGA,不過設計的方式先進了很多 - 用上了Verilog,比較自豪的工程 - 完整的QAM調制器、基于USB的數字示波器、任意波形發生器以及一系列的通信系統應用模塊。
  在前后十年多的時間里,可編程邏輯器件尤其是FPGA從結構、容量、速度、編程軟件、服務模式等方面都有了巨大的變化,小到最基本的數字邏輯,大到復雜的通信網絡、視頻編解碼系統乃至ASIC原型設計,無處不見FPGA的身影。今天如果一個研發用的電路板上沒有FPGA,這個研發項目的技術含量基本不高;如果一個工程師不會使用FPGA,他根本不好意思跟別人說自己是做硬件的;如果一個理工科院校還沒有FPGA的課程,這個學校一定十分不靠譜,需要Xilinx大學計劃的幫助。
  FPGA的優勢:
  根據應用的不同,設計者所采用的解決方案也會不同,在大規模數字芯片中比較典型的技術主要有:微處理器、DSP、專用集成電路ASIC等,相對于這些技術的應用來講,FPGA有什么優勢呢?
  1. 微處理器:今天的微處理器(包括微控制器)品種繁多,結構也各不相同,從4位、8位、16位、32位到64位,有8051,PIC,RISC、ARM、MIPS、Xtensa以及X86等,他們大多有豐富的接口同各種外設進行連接,通過軟件執行不同的進程,從而完成一定的任務,并將控制命令或結果進行輸出。可以說通過軟件編程微處理器可以做任何事情,但是致命的缺點就是速度有限,在外部時鐘的節拍下順序執行一條條的指令,不能并行處理,因此微處理器廠商只能玩命提高芯片的速度(比如Intel的芯片時鐘在2GHz以上,ARM已經在600MHz以上),對于更復雜的任務只能多放幾個兄弟在里面一起干活,也就是今天的多核技術。由于一般稍微復雜一些的系統都會用到微處理器用于輸入輸出、多進程處理以及網絡通信等,很多滿足一定性能需求的通用微處理器成本較低,因此被廣泛采用。現在微處理器領域最熱門的技術術語無疑就是 “嵌入式系統”了,但我可以負責任地講,大多數人對“嵌入式系統”的理解是片面甚至是錯誤的。有些公司為了商業利益把嵌入式系統以“皇帝的新裝”模式進行大規模地忽悠,導致人們幾乎把“嵌入式系統”同某一種IP類型畫上了等號,這個行業涌現出了大批的根本不懂嵌入式系統的嵌入式系統工程師。
  2. DSP: 數字信號處理,精于在數字域通過執行相應的程序進行信號的處理,廣泛用于音、視頻,通信等領域。眾所周知,通用DSP的領導廠商當首推TI, 當然很多通信芯片公司、視頻芯片公司都在自己芯片內部放入了相應的DSP模塊,同微處理器一起構成完整的系統。微處理器負責控制、人機界面、網絡通信等,其對應的執行軟件一般稱作Software;DSP負責算法,比如濾波、空間變換、FFT/IFFT、調制解調等,相應的執行程序被稱作Firmware。DSP的優點是靈活,由軟件控制的可編程,并支持大規模的乘除法運算,缺點同微處理器一樣是串行處理,無論做多少個事情要一個個排著隊來做。
  3. ASIC:專用集成電路。一般為廠商在確定市場量比較大的情況下,為了降低成本而把比較成熟的功能做在一顆芯片中,執行已經確定的一些應用。它的優點是顯然的:便宜,專用。缺點也是明顯的,發現有問題了再改?對不起重新交錢。如果量不大,平攤下來的單片成本就會相當的高,一顆芯片的設計、流片、測試的周期沒有6個月是下不來的,時間成本是巨大的。另外客戶的需求幾乎是無限的,他們的胃口也是不斷增加的,無論你設計中考慮的多么周全,都無法滿足所有客戶的需要,你會發現很多外設的接口需要增加、改進,內部的功能需要調整,片上的存儲空間受到了限制等等。
  4. FPGA: 它比較明顯的缺點就是相對來講成本較高,主要用于研發過程中或者市場量不會很大,FPGA在系統的整體價格中不敏感。一顆FPGA芯片的價格從低于1美元到幾千美元不等,當然這是可以理解的,畢竟靈活性是靠高度的冗余帶來的。它的好處是其它任何一種技術無法比擬的 - 它幾乎可以做任何事情,你可以用它搭建多個微處理器,用它構建自己的乘、除法單元做出幾個DSP來,而且這些處理器、DSP可以同時干活,并行工作,與此同時您還可以利用芯片內部未用的資源做很多輔助的功能,可以說是高度的靈活。
  以一個應用為例,今天的汽車電子也是以人為本,該領域的一個重要的技術熱點就是“司機幫助(DA)”系統,它由超聲、雷達、照相機以及激光等多種不同的傳感器構成,這些不同的傳感器在不同的時刻或者同一時刻把相應的信號采集下來,發往中央處理單元進行識別、運算、做出判斷,幫助司機在倒車、高速行駛以及夜間行駛的時候能夠對周圍的環境在最短的時間內做出準確的判斷并做出一系列的安全保護動作。如果采用微處理器或DSP對多傳感器的信號進行處理,它們無法并行執行多個任務,并且同其他系統進行互聯,因此就會造成系統的處理時間延遲,可靠性差,從而導致事故無法及時避免。如果采用ASIC呢?隨著用戶對功能要求的不斷增加,對性能要求的不斷升級,也就要求算法要不斷的改進,顯然采用ASIC無論從靈活性還是成本上都是不合算的。圖1是Xilinx專為汽車電子開發提供的功能模塊,圖2為在一顆Spartan-3E FPGA中針對“司機幫助”集成了很多的功能 。
  FPGA的設計:
  FPGA的功能越是強大,對設計的要求也就越高,畢竟有那么多的管腳需要跟其它芯片連接起來,有那么多的功能要一行一行地采用邏輯寫出來,遠遠不是十年前處理門級電路的時候了。雖然今天大多數用過FPGA的工程師已經對這個痛苦的過程深有體會,我還是把他們列舉在此:
  1. 電路板設計:
  現在的電路板設計動不動就是4層板、6層板甚至更多層,芯片的封裝也變得稀奇古怪,什么QFN、BGA等等,如果發現了連接不對想手工修改,拿著烙鐵都找不到往哪里燙,根本沒有露出來的管腳。尤其是FPGA芯片, 256個管腳的BGA封裝都算照顧你了,如果再增加一些功能,容量再大一些,一不留神就到1000多個管腳去了,光做原理圖中的符號就要折騰你三天,完了還要拿著放大鏡不斷地檢查,否則做回來的電路板極有可能是廢的。這還不算,等你布局、布線的時候你會發現很多的線都是扭著的,一是難布,二是電氣性能也不好,好在FPGA的管腳是可以重新配置的,修改一下管腳的定義就可以讓芯片之間的聯線能過做到最優。
  當然系統的速度高了,對高速數字設計方面的知識要求就是必須的了,這里面有一個詞叫“信號完整性”,有幾位美國大牛在這方面很有研究,其中有不少他們的著作翻譯成中文了。如果你想真的理解并能夠靈活應用,好好回爐去學扎實電磁場理論,不懂電磁理論,就不可能做好高速數字設計。FPGA支持各種高速串、并行總線并在很多系統中要和高速的數據、時鐘進行連接,如果信號被你給搞得不完整了,整個系統性能會大大降低甚至不干活。
  一般的系統都會有一個需要大電流的Core電壓(1.2V或1.8V等,取決于工藝)和一個需要小電流的接口電壓(一般是+3.3V),并且有多組不同的地。除了這些對工程師的布線提出挑戰之外,還必須重視的一個部分就是鎖相環(PLL/DLL),這個部分的布線是相當的關鍵,一旦有問題,整個系統的性能就會大打折扣,雖然數字的電路不是0就是1,可它就跑不快了。
  2 邏輯設計:?
  最初用PLD/FPGA的時候還都是采用圖形輸入法,直觀而原始。現在FPGA的用戶基本都在采用更高級的語言 - VHDL或Verilog,這種語言高級得如同C,用起來非常容易。但是您千萬不能把它當C來使喚,畢竟硬件和軟件還是不同的。4年前在我做硬件工程師的時候,一個擅寫DSP軟件的兄弟寫了一段FPGA的代碼,他花了整整一頁的篇幅實現了一個用硬件的思路只要4句話就可以完成的功能,搞得我苦笑不得。在這里面要時刻注意的是,FPGA內部多個功能模塊都是可以并行操作的,如果用程序的思路去寫,基本上會讓他們排著隊串著出來,當成DSP用了。
  3 充分利用現有的資源:
  無需爭議,今天你已經不可能徒手把一個Spartan-3E中哪怕最小的系列給填滿了,重新寫一個I2C接口,重新做一個以太網的MAC作為鍛煉還可以,在實際的項目中每個都自己去寫是不可取的,如何利用現有的資源是非常重要的。首先在每個人的設計工作中要注意積累,把曾經用得不錯的功能模塊認真完善后寫好文檔以便今后自己或他人使用;再次FPGA的廠商都在配套的軟件中內嵌一些免費的功能模塊,根據自己的需求可以靈活地進行配置使用。當今互聯網時代,信息分享成了主旋律,因此你可以方便地在一些開源的社區中找到自己需要的東西,比如在www.openhw.org社區中你就可以找到并下載很多其他FPGA同仁們開發并驗證過的功能模塊,如果有問題還可以在社區內同他們進行互動交流,咨詢等,要把這些先進的手段都用上。當然如果公司有財力,又需要在最短的時間內推出產品,您可以到FPGA廠商的網站上,那里陳列著琳瑯滿目的商用IP, 這些都是FPGA廠商會同他們認證過的聯盟廠商共同推出來的,您可以放心地使用。圖3為Xilinx公司為消費電子領域的“數字顯示屏”提供的系列IP示例。

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区成人| 亚洲靠逼com| 亚洲黄色大片| 激情国产一区二区| 国产亚洲精品成人av久久ww| 国产精品乱码久久久久久| 欧美日韩亚洲不卡| 欧美日本在线| 欧美极品一区| 欧美日韩第一区日日骚| 欧美女同视频| 欧美日韩国产综合在线| 欧美日韩亚洲一区二区三区| 欧美美女福利视频| 欧美日韩美女一区二区| 欧美日韩成人网| 欧美视频中文字幕在线| 欧美三级午夜理伦三级中文幕| 欧美黑人一区二区三区| 欧美激情亚洲自拍| 欧美精品久久久久久久久久| 欧美二区不卡| 欧美日韩免费精品| 国产精品成人一区二区三区吃奶 | 亚洲欧洲日韩综合二区| 亚洲激情亚洲| 日韩视频免费| 亚洲一区二区三区四区五区午夜| 正在播放欧美一区| 午夜精品在线观看| 久久精品国产一区二区三区| 久久一二三区| 国产午夜精品福利| 在线成人激情| 黄色精品一区二区| 亚洲人成毛片在线播放| 99成人在线| 午夜精品一区二区三区在线播放| 久久成人综合视频| 亚洲伦理在线观看| 亚洲一区二区三区在线观看视频 | 国产日韩一区| 亚洲国产成人一区| 99视频在线精品国自产拍免费观看| 亚洲网站在线播放| 久久精品免费看| 一本久道综合久久精品| 西瓜成人精品人成网站| 久久综合久久久| 欧美视频亚洲视频| 国产欧美精品一区aⅴ影院| 极品少妇一区二区| 9色porny自拍视频一区二区| 午夜精品在线观看| 亚洲精品欧洲| 午夜精品短视频| 免费成人性网站| 国产精品伦一区| 亚洲第一久久影院| 亚洲一二三区在线| 亚洲欧洲三级| 香蕉尹人综合在线观看| 蜜臀va亚洲va欧美va天堂| 国产精品福利av| 亚洲二区视频在线| 亚洲一区二区黄色| 亚洲精品人人| 久久久久.com| 国产精品va| 在线成人h网| 亚洲欧美精品在线| 99视频精品全部免费在线| 久久久精品一区二区三区| 欧美日韩综合不卡| 在线播放日韩| 午夜日韩av| 亚洲一区精彩视频| 欧美激情中文字幕乱码免费| 国产午夜精品久久久久久免费视| 亚洲精品国产无天堂网2021| 欧美在线亚洲综合一区| 亚洲欧美另类国产| 欧美精品一区二区视频| 韩日精品中文字幕| 午夜精品久久久久久久男人的天堂| 亚洲伦理在线免费看| 久久久综合精品| 国产美女精品免费电影| 日韩天堂在线视频| 亚洲国产另类久久久精品极度| 欧美一级午夜免费电影| 欧美日韩精品久久| 91久久久在线| 亚洲国内自拍| 久久免费高清| 国产日产精品一区二区三区四区的观看方式 | 中日韩午夜理伦电影免费| 老**午夜毛片一区二区三区| 国产精品永久免费| 在线中文字幕一区| 一区二区三区四区精品| 欧美va亚洲va国产综合| 激情视频一区| 欧美伊人精品成人久久综合97 | 国产精品v片在线观看不卡| 亚洲国产欧美一区二区三区久久| 欧美一区三区三区高中清蜜桃| 亚洲欧美一区二区三区在线| 欧美日韩一区二| 日韩午夜电影av| 99精品国产在热久久下载| 欧美韩日一区二区| 亚洲国产精品久久久| 亚洲激情成人网| 玖玖国产精品视频| 精品91在线| 久久精品一区四区| 久久亚洲欧美国产精品乐播| 国产一区香蕉久久| 久久激情一区| 榴莲视频成人在线观看| 在线成人www免费观看视频| 亚洲高清在线播放| 欧美aaa级| 亚洲人成网站影音先锋播放| 夜夜精品视频| 国产精品国产三级国产aⅴ入口 | 91久久精品日日躁夜夜躁欧美| 久久天天综合| 极品少妇一区二区三区| 亚洲成色999久久网站| 美女脱光内衣内裤视频久久影院| 黄色亚洲精品| 亚洲狼人综合| 欧美性大战久久久久久久| 亚洲性av在线| 久久精品视频一| 亚洲大胆人体视频| 一区二区国产日产| 国产精品美女久久久久久免费| 亚洲一区图片| 久久美女性网| 亚洲日本中文字幕免费在线不卡| 一本在线高清不卡dvd| 国产精品乱人伦中文| 欧美一级久久久| 欧美freesex交免费视频| 亚洲精品你懂的| 亚洲欧美日韩视频一区| 国产亚洲网站| 亚洲伦理一区| 国产精品久久久久久久午夜片| 香蕉乱码成人久久天堂爱免费 | 国产日韩欧美成人| 亚洲福利电影| 欧美视频一区二区| 亚洲欧美一区二区原创| 久久综合激情| 99视频有精品| 久久精品色图| 亚洲精选中文字幕| 欧美在线中文字幕| 亚洲高清不卡在线| 亚洲一区在线直播| 激情婷婷欧美| 亚洲视频免费看| 国产综合在线看| 亚洲性夜色噜噜噜7777| 国模精品一区二区三区| 夜夜精品视频一区二区| 国产日本欧美一区二区| 亚洲精品一区在线观看香蕉| 国产精品外国| 日韩视频第一页| 国产情人节一区| 亚洲美女电影在线| 国产日韩欧美黄色| 亚洲最新在线视频| 国模精品娜娜一二三区| 亚洲手机在线| 精品福利电影| 午夜精品亚洲| 亚洲人成小说网站色在线| 久久精品论坛| 制服丝袜激情欧洲亚洲| 美国十次了思思久久精品导航| 国产精品99久久不卡二区| 免费不卡亚洲欧美| 午夜视频在线观看一区| 欧美日韩在线三级| 91久久国产精品91久久性色| 国产精品日韩精品| 一区二区三区产品免费精品久久75| 韩国三级电影一区二区| 午夜精品国产精品大乳美女| 亚洲级视频在线观看免费1级| 欧美影片第一页| 99精品国产一区二区青青牛奶| 噜噜噜91成人网| 性一交一乱一区二区洋洋av|