1. 程式人生 > >2018.9.1 初識FPGA --xilinx zynq為例

2018.9.1 初識FPGA --xilinx zynq為例

–文中參考xilinx datasheet 以及百度百科,如有錯誤之處還請不吝賜教!  1.什麼是FPGA  FPGA(Field-Programmable Gate Array),即現場可程式設計門陣列,它是在PAL、GAL、CPLD等可程式設計器件的基礎上進一步發展的產物。它是作為專用積體電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可程式設計器件閘電路數有限的缺點。

2.FPGA內部結構  以xilinx zynq為例(zynq 包含PS 和 PL,這裡只說PL端),檢視官方Data sheet的分類,主要包括以下內容:  輸入/輸出模組 Input/Output Blocks (IOB)  可配置邏輯單元 Configurable Logic Blocks (CLB)  36 Kb Block RAM  DSP Blocks  JTAG Boundary-Scan  PCI Express® Block  Serial Transceivers  12位數模轉化Two 12-Bit Analog-to-Digital Converters

3.FPGA的基本特點  1)採用FPGA設計ASIC電路(專用積體電路),使用者不需要投片生產,就能得到合用的晶片。  2)FPGA可做其它全定製或半定製ASIC電路的中試樣片。  3)FPGA內部有豐富的觸發器和I/O引腳。  4)FPGA是ASIC電路中設計週期最短、開發費用最低、風險最小的器件之一。  5) FPGA採用高速CMOS工藝,功耗低,可以與CMOS、TTL電平相容。

可以說,FPGA晶片是小批量系統提高系統整合度、可靠性的最佳選擇之一。

4.FPGA的優勢  1)通訊高速介面設計。FPGA可以用來做高速訊號處理,一般如果AD取樣率高,資料速率高,這時就需要FPGA對資料進行處理,比如對資料進行抽取濾波,降低資料速率,使訊號容易處理,傳輸,儲存。  2)數字訊號處理。包括影象處理,雷達訊號處理,醫學訊號處理等。優勢是實時性好,用面積換速度,比CPU快的多。  3)更大的並行度。這個主要是通過併發和流水兩種技術實現。併發是指重複分配計算資源,使得多個模組之間可以同時獨立進行計算。

5.FPGA的三個主要方向  1)第一個方向,也是傳統方向主要用於通訊裝置的高速介面電路設計,這一方向主要是用FPGA處理高速介面的協議,並完成高速的資料收發和交換。這類應用通常要求採用具備高速收發介面的FPGA,同時要求設計者懂得高速介面電路設計和高速數字電路板級設計,具備EMC/EMI設計知識,以及較好的類比電路基礎,需要解決在高速收發過程中產生的訊號完整性問題。FPGA最初以及到目前最廣的應用就是在通訊領域,一方面通訊領域需要高速的通訊協議處理方式,另一方面通訊協議隨時在修改,非常不適合做成專門的晶片。因此能夠靈活改變功能的FPGA就成為首選。到目前為止FPGA的一半以上的應用也是在通訊行業。  2)第二個方向,可以稱為數字訊號處理方向或者數學計算方向,因為很大程度上這一方向已經大大超出了訊號處理的範疇。例如早就在2006年就聽說老美將FPGA用於金融資料分析,後來又見到有將FPGA用於醫學資料分析的案例。在這一方向要求FPGA設計者有一定的數學功底,能夠理解並改進較為複雜的數學演算法,並利用FPGA內部的各種資源使之能夠變為實際的運算電路。目前真正投入實用的還是在通訊領域的無線訊號處理、通道編解碼以及影象訊號處理等領域,其它領域的研究正在開展中,之所以沒有大量實用的主要原因還是因為學金融的、學醫學的不瞭解這玩意。不過最近發現歐美有很多電子工程、計算機類的博士轉入到金融行業,開展金融訊號處理,相信隨著轉入的人增加,FPGA在其它領域的數學計算功能會更好的發揮出來,而我也有意做一些這些方面的研究。不過國內學金融的、學醫的恐怕連數學都很少用到,就不用說用FPGA來幫助他們完成數學_運算了,這個問題只有再議了。  3)第三個方向就是所謂的SOPC方向,其實嚴格意義上來說這個已經在FPGA設計的範疇之內,只不過是利用FPGA這個平臺搭建的一個嵌入式系統的底層硬體環境,然後設計者主要是在上面進行嵌入式軟體開發而已。設計對於FPGA本身的設計時相當少的。但如果涉及到需要在FPGA做專門的演算法加速,實際上需要用到第二個方向的知識,而如果需要設計專用的介面電路則需要用到第一個方向的知識。

6.實驗室方向  目前主要有三個方向:  1.RISC-V 基於精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),更簡單、更快、更低功耗的硬體,且具有免費、開放、簡單的指令集架構,主要是負責一些教學方面的研究。  2.深度學習,神經網路加速,具有代表性的CNN、YOLO,以及視訊編解碼的後處理。  3.類腦計算,是指模擬、模擬和借鑑大腦生理結構和資訊處理過程的裝置、模型和方法,其目標是製造類腦計算機和類腦智慧,這方面比較前沿,還在摸索調研學習中,但小夥伴已經搭建好了蟻群的mpi、pynn,相信後面也會繼續不斷的去開展相關工作。

相關學習資料推薦:  1.ZIRCON 皓石科技的資料下載:http://www.fpga.gs/h-col-116.html  2.crazybingo 老師的《FPGA設計技巧與案例開發詳解》  3.特權老師的 《深入淺出玩轉FPGA》  4.NingHeChuan 的微信訂閱號:開源FPGA ---------------------  作者:clancy_lee  來源:CSDN  原文:https://blog.csdn.net/weixin_40604731/article/details/82292219  版權宣告:本文為博主原創文章,轉載請附上博文連結!