FPGA 的基本結構
FPGA 可編程的特性決定了其實現數字邏輯的結構不能像專用 ASIC 那樣通過固定的邏輯門電路來完成,而只能采用一種可以重復配置的結構來實現, 而查找表(LUT)可以很好地滿足這一要求,目前主流的 FPGA 芯片仍是基于 SRAM 工藝的查找表結構。
FPGA 芯片參數指標:包含可編程邏輯模塊的數量、固定功能邏輯模塊(如乘法器)的數目及存儲器資源(如嵌入式 RAM)的大小。
在最底層的可配置邏輯模塊(如片上的邏輯單元) 上,存在著基本的兩種部件:觸發器和查找表( LUT) , 而觸發器和查找表的組合方式不同,是各個 FPGA 家族之間區別的重要依據, 并且查找表本身的結構也可能各不相同( 有 4 輸入或 6 輸入或其他)。
查找表( Look-Up-Table)簡稱為 LUT, 其本質上就是一個 RAM。目前 FPGA 內部中多使用 4輸入的 LUT,每一個 LUT 可以看成一個有 4 位地址線的 RAM。
當用戶在 EDA 工具上通過原理圖或 硬件描述語言設計了一個邏輯電路以后, FPGA 開發軟件會自動計算邏輯電路的所有可能結果,并把真值表(即結果)事先寫入 RAM 中。這樣,每輸入一個信號進行邏輯運算就等于輸入一個地址進行查找表操作, 通過地址找到對應的 RAM 中的結果, 最后將其輸出。以實現數字邏輯 Y=A&B&C 的功能為例。如果是在專用 ASIC 中,為了實現該邏輯,邏輯門都已經事先確定好, Y 的輸出值為兩個邏輯與運算后的結果,其基本的實現結構如下圖所示:
對Y=A&B&C 的 利用FPGA 實現基本結構 :
更為復雜的 FPGA 架構
隨著技術的發展和工藝節點的進步, FPGA 的容量和性能在不斷提高的同時, 其功耗卻不斷的優化減少。2006 年以前四輸入查找表一直被廣泛使用, 在一些高端器件可能會用上六輸入、八輸入或更多輸入端口的查找表。而一個多輸入的查找表又可以分解成較小輸入的查找表, 即能夠分裂成許多更小的功能。例如一個八輸入的查找表可以分解成兩個四輸入的查找表或分解成一個三輸入加一個五輸入的查找表。在實際的高端器件中,這種可編程構造可以描述相當于百萬級(有時甚至千萬級)的原始邏輯門。
在 FPGA 內部,利用 FPGA 的可編程性在芯片內部構造實現了一個計數器邏輯,有著“軟內核”與“硬內核”之分。
軟內核(軟功能):在構造計數器邏輯過程中使用到的功能便可以被稱為軟功能。
硬內核(硬功能):功能若是直接利用芯片實現的,則是利用了芯片內部的硬功能。
軟內核與硬內核之間優勢互補,軟內核的優勢在于可以在利用芯片資源的基礎上利用編程設計讓其完成需要實現的任何功能(注意是數字功能,不包括模擬功能)。而**硬內核由于是實現固定功能的器件,因此其優勢在于資源利用率高且功耗較低, 占用硅片的面積也較小, 并具有較高的性能。最重要的區別**在于:與軟內核相比硬內核可用于實現模擬功能, 例如鎖相環的倍頻功能,這個功能需要在模擬電路下實現,所以這一部分是在 FPGA 內部用硬件來實現的 。
帶嵌入式處理器的 FPGA
利用 FPGA 的可編程構造實現的事情之一即為使用其中的一部分數字邏輯資源制作一個或多個軟處理器內核, 當然, 也可以實現不同規模的處理器。
這個芯片是一種新的SoC(System on Chip,系統級芯片) FPGA,完全以硬內核方式實現的雙路 ARM Cortex-A9 微控制器子系統(運行時鐘高達 1GHz,包含浮點引擎,片上緩存,計數器,定時器等)以及種類廣泛的硬內核接口功能( SPI, I2C, CAN等),還有一個硬內核的動態內存控制器,所有這些組件都利用大量傳統的可編程構造和大量的通用輸入輸出( GPIO)引腳進行了性能增強。
數據存儲以及配置方式
在 FPGA 內部存在著存儲單元片內 RAM 塊,數據是存放在 RAM 中并由其來設置工作狀態的,若想要 FPGA 進行工作,就需要對片內 RAM 進行編程。而如果外部有大量數據交互時,就要通過增加外設來對數據進行暫時性的存儲,如 SDRAM 存儲器或者 DDR3 存儲器,暫存在外設中的數據最終也是要通過 FPGA 內部的 RAM 進行存儲與處理。當在 EDA 工具上將程序設計完成之后,便需要將軟件上的程序燒錄進 FPGA 內部。通過不同的配置模式, FPGA 便會有不同的編程方式。
常用的幾種配置模式:
并行模式:通過并行 PROM(Programmable read-only memory,可編程只讀存儲器)、 Flash (Macromedia Flash。多媒體軟件平臺)配置 FPGA;
主從模式:使用一片 PROM 配置多片 FPGA;
串行模式:串行 PROM 配置 FPGA;
外設模式:將 FPGA 作為微處理器的外設,由微處理器對其編程。
目前, 主流的 FPGA 都是基于 SRAM (Static Random-Access Memory,靜態隨機存取存儲器)工藝的, 在大部分的 FPGA 開發板上,使用的都是串行配置模式。由于 SRAM 掉電就會丟失內部數據,因此往往都會外接一個能夠掉電保存數據的片外存儲器以保存程序。這樣一來, 上電時 FPGA 便將外部存儲器中的數據讀入片內 RAM 以完成配置, 對 FPGA 編程完成后便進入工作狀態;掉電后 FPGA 內部 SRAM 中存儲的數據丟失,邏輯清零。以這種方式配置 FPGA 不僅能反復使用,還無需重復的手動配置。完成一次主動配置之后每次上電便會自動的實現 FPGA 的內部編程。
審核編輯:郭婷
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603007 -
芯片
+關注
關注
455文章
50714瀏覽量
423154 -
soc
+關注
關注
38文章
4161瀏覽量
218165
原文標題:干貨丨FPGA基礎知識
文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論