1. 程式人生 > >FPGA筆記 Altera Cyclone系列FPGA資源介紹

FPGA筆記 Altera Cyclone系列FPGA資源介紹

FPGA和微控制器一樣,是一顆晶片,既然是晶片,就有一些內部資源。 Altera的FPGA最基本的資源是LE,通過檢視Cyclone系列FPGA手冊可以看到,一個LE主要包括了一個四輸入查詢表,也就是LUT,LUT本質上就是一個RAM。目前Cyclone系列使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM。當用戶用程式描述了一個邏輯電路以後,FPGA開發工具會自動計算邏輯電路的所有可能的結果,並把結果事先寫入RAM,這樣,每輸入一個訊號進行邏輯運算就等於輸入一個地址進行查表,找出地址對應的內容,然後輸出即可。除了一個四輸入查詢表以外,還有一個可程式設計暫存器,至於為什麼說可程式設計,是因為可以通過程式來配置為非同步或者同步觸發器,具體的結構可以看Cyclone系列的晶片手冊。我們通常看Altera的FPGA資源大小,就是看他有多少個LE。

Cyclone系列晶片裡面16個LE組成一個LAB,而每個LAB都有LAB控制訊號,按照順序排列在FPGA內部,每個LAB內部之間的LE資料通訊通過Register chain傳輸,每個LAB之間的通過行或者列互聯訊號通訊,相連的LAB,或者LAB周圍的RAM,乘法器,PLL都可以通過互聯線號驅動其周圍的LAB。
Cyclone系列的FPGA有內部的RAM,起初Cyclone和CycloneII系列的RAM採用的M4K,也就是說一個RAM塊有4K個位,如果包括校驗位,那麼有4608位,可以配置為不同模式不同位寬的RAM或者ROM,而CycloneIII和CycloneIV系列的FPGA的RAM採用M9K,也就是每一塊有9K資料,其實只有8192位,加上校驗位的話為9216位,所以,一個M9K可以配置的RAM最大資料寬度為8192,當然,不管M4K還是M9K,都可以配置為不同模式的RAM或者ROM。這裡的ROM資料,實際上是最後寫到編譯後的檔案SOF檔案或者POF檔案裡面去的,如果只是要修改ROM資料,可以通過指令直接修改SOF檔案或者POF檔案。而不需要再重新編譯。

Cyclone系列FPGA還有硬體乘法器,18*18的乘法器,可以配置為2個9*9的乘法器 ,當資料寬度大於18時候,採用多個乘法器合併實現,我們在VHDL或者Verilog裡面的乘號,Altera的在FPGA軟體綜合自動採用乘法器替代。
除此之外,Cyclone系列FPGA還有內部PLL,在CycloneIV之前的Cyclone系列的PLL,基本上都是通用的PLL,也就是說,可以對時鐘進行倍頻、分頻或者移相,也可以將PLL時鐘輸出到專用的PLL輸出管腳上,通常SDRAM的時鐘都是由這些專用時鐘驅動,但是注意,輸入時鐘是有範圍的,具體可以見手冊。而CycloneIV的GX系列FPGA內部整合收發器,每個收發器都有專用的PLL。從CycloneIII開始內部的PLL支援實時動態重配,具體的動態重配方法可以通過Altera的ALTPLL_RECONFIG核來實現。

值得注意的是,FPGA時鐘是至關重要的,時鐘的好壞直接關係到系統的穩定,可以打個比方,電源如一個系統的血液,時鐘就是一個心臟。所以,無論是Altera還是Xilinx,都會在FPGA設計上面重點提到全域性時鐘等概念。
除了以上資源外,還有就是IO口資源,FPGA的IO口資源相當豐富,FPGA的IO可以根據REF電平不同接收或輸出不同的電平標準的訊號,如3.3V LVTTL,如2.5V的LVDS,LVPECL或者SSTL-2等,並且可以通過程式來設定驅動電流強弱,片內OTC,差分匹配,DDR輸出等,CyclonreIII以及CycloneIV還支援片內上拉電阻,輸入輸出延時等。CycloneIV GX系列還帶有高速收發器,PCIe硬核等。
另外,CycloneIII後的系列增加了一個線上重配模組SEU,這樣,可以線上將配置程式少燒寫到FPGA的配置晶片剩餘的地方,FPGA自動通過該模組判斷是否是可用程式以,如果是,FPGA可以用該模組將舊程式替換為新程式自己升級自己。類似於ARM德IAP。
以上就是Cyclone系列FPGA的一些基本資源,對於Stratix系列的FPGA,內部的資源相對於Cyclone系列的要更加豐富,功能更加強大,比如,邏輯資源不再是LE,二是ALM,不再是乘法器,而是DSP模組等,具體可以參看具體的晶片手冊。