1. 程式人生 > >FPGA晶片選型(FPGA初學者的選擇)

FPGA晶片選型(FPGA初學者的選擇)

前言

對於一個FPGA的初學者,如何選擇一個公司的某一個系列的產品作為學習的基礎呢?這是一個問題,但並不是最重要的問題。初學者在學習FPGA的時候,要解決的首要的問題是對數位電路技術基礎知識的掌握,然後就是對硬體描述語言的掌握(veirlog或者VHDL)。至於FPGA晶片本身,只是一個載體。當真正掌握了FPGA設計的本質後,需要使用某一個廠家的某一種FPGA的時候,只需要針對這個廠家的該型號的FPGA做一些瞭解就可以了,設計的基礎還是一樣的,以往積累的大部分經驗都可以應用得上。

對初學者的FPGA選型建議

前言已經說得很清純,雖然話是這樣說,但是對於一個初學者來說,選擇一款適合學習的FPGA是整個FPGA學習生涯的必經之路。我個人建議在選擇FPGA的時候,應該抓住如下幾個原則:

1、選擇主流廠家的流行的型號,這樣更容易獲取學習資源。

     選擇一家主流公司的FPGA晶片:在國內目前來說,主流是Xilinx以及Altera(Intel)。獲取資料最便捷的途徑就是這些生產廠家的官方網站(http://www.altera.com.cn/http://china.xilinx.com/)。一般情況下,官方網站都會按照產品系列或應用場合列出所有的產品,直觀的告訴你某個系列產品的應用場合。比如在ALTERA的網站,就會明確標明它的三大類的FPGA產品,高階的Stratix系列,中端的Arria系列和低成本的Cyclone系列。

2、選擇一個性價比較高的FPGA晶片

    1) Xilinx 的主流FPGA分為兩大類,一種側重於低成本應用,容量中等,效能可以滿足一般的邏輯設計要求,如Spartan系列;還有一種側重於高效能應用,容量大,效能能滿足各類高階應用,如Virtex系列。

    2) Altera 的主流FPGA分為兩大類,一種側重低成本應用,容量中等,效能可以滿足一般的邏輯設計要求,如Cyclone系列;還有一種側重於高效能應用,容量大,效能能滿足各類高階應用,如Startix系列。

   使用者可以根據自己實際應用要求進行選擇。在效能可以滿足的情況下,優先選擇低成本器件。對於初學者而言,本人建議選擇Xilinx的Spartan系列或者Altera 的Cyclone系列。

3、選擇一個學習資源比較多的FPGA開發板

1)對於Cyclone系列:建議選擇Cyclone IV E系列。因為Cyclone IV E學習資源多,譬如黑金fpga開發板Cyclone IV EP4CE15有一整套的視訊以及系列的學習筆《FPGA的那些事》。黑金開發板對應的社群論壇有:黑金動力社群。其實黑金動力社群也有Xilinx的spartan6系列的開發板。還有市面上培訓機構華清遠見也是使用Cyclone系列的產品。明德樣FPGA培訓機構也有Cyclone系列和spartan6系列的開發板以及學習資源。

由上圖知道,對於學習而言選擇一個不是很舊也不是很新的系列為宜,建議選擇Cyclone IV。Cyclone IV分為Cyclone IV E和Cyclone IV GX(這兩者的詳細區別有興趣的可以到官網檢視)。官網檢視片上資源如下圖,晶片選型時可以查閱一下。

2)對於Xilinx的spartan系列:建議選擇spartan 6。選擇原因如下:

1、首先現在有一部分高校開設fpga課程使用的就是spartan 6。主要原因也是因為這個系列的fpga晶片對於初學者而言,更容易上手,而且市面上利用spartan6系列晶片作為核心晶片的fpga開發也不少,也有不少培訓機構使用該系列的晶片開發板。總的來說,spartan6系列的網上學習資源還是比較豐富的。例如紅色颶風的spartan6系列開發板就使用了spartan6-XC6SLX16晶片

2、spartan 6是一個劃時代的產品,如下圖可以看到spartan 6是45nm,這個不是我想說的,我想說的是:Xilinx公司的spartan 6系列以及更早推出的fpga系列晶片使用的開發環境EAD是ISE,而spartan6系列之後新推出的fpga晶片使用開發環境EDA是vivido。其實兩個開發EDA大同小異。不過為了學習的全面性,建議初學者可以選擇spartan6以及ISE。等入門之後再轉到vivado也是如魚得水的事情。

與Cyclone IV分為Cyclone IV E和Cyclone IV GX相似,spartan-6也分為spartan-6 LX系列已經spartan-6 LXT系列。下面給出spartan-6 LX系列的片上資源(這些都是從官網截圖下來的,有興趣的朋友可以到官網查閱)

由上圖,根據資源是否夠用原則,可以選擇一個片上資源適中的,譬如XC6SLX45,如果對片上資源要求不是那麼大,也可以選擇XC6SLX16,儘量別選擇XC6SLX4或者XC6SLX9,因為資源太少也不利於後面的擴充套件。以上便是我對初學者選擇FPGA的一些建議。

對於一個FPGA高手而言

在選擇具體的FPGA晶片型號以及封裝的時候,要根據下面的幾個方面做綜合的考量:

以下三點考慮來自網友:https://blog.csdn.net/whw8007/article/details/9566761?utm_source=copy

1,片上資源,主要依據表1給出的資訊。要根據設計的大小選擇合適的片上資源。這個是比較難確定的一個引數,自己做的設計到底有多大,需要多少片上資源,很難一下子確定下來。比較推薦的一個方式是先拿之前的設計去綜合後對映到某一個晶片上,看看需要佔用多少的片內資源,然後評估要做的新的設計跟之前的大小,做換算後得到需要片上資源的數量。另外的一種方式就是先完成新的設計,直接綜合出來對映到不同型號的晶片上,然後評估哪一種晶片合適。還有一個需要注意的地方就是,不能選擇片上資源剛剛夠用的晶片,要留有一定的餘量,以便於後期設計錯誤的修正和升級。

2,選擇封裝,主要需要在兩個方面考量,第一個就是可用的I/O口的數量。第二個就是封裝的尺寸。I/O數量是一個必要的條件,先要根據這個條件篩選出可以用的晶片。然後在篩選出來的晶片中,再根據封裝型別,尺寸和pitch尺寸選擇合適的晶片。在封裝尺寸符合要求的情況下,儘量選擇有利於PCB設計和生產的封裝。比如如果有TQFP封裝的晶片,尺寸又符合專案的需求,那麼就不要選擇BGA封裝的。對於BGA封裝的晶片,如果有pitch為1.0mm的可以滿足要求,就不要選擇pitch為0.5mm的。這直接影響到PCB設計難度,製造成本和良率。

3,速度等級,速度等級是一個相對比較獨立的引數。要根據實際設計所能綜合出來的最高執行頻率和需求的執行頻率做比較,儘量選用速度等級比較慢的晶片。當所有的速度等級都不能滿足需要的時候,更多的要從優化設計的角度來提高設計本身所能達到的最高執行頻率。