1、 FPGA簡介一、簡介:現場可程式化的閘陣列 (Field Programmable Gate Array 簡稱 FPGA) 是一種在研發現場可立即規劃的多功能元件;其內部是由許多邏輯閘及正反器(Flip Flop)所組成,可依特定的需求,經過一定程序的規劃燒錄後,變成一顆具有該功能的 IC,其使用時機為:l) ASIC(Application Specific IC)原型製作。2) 少量生產時。3) 驗證系統的功能是否正確。目前的可程式化邏輯陣列大致上可分成兩種硬體結構,一種是每顆只能燒錄一次(Anti-Fuse 反熔絲型)的 FPGA,若一不小心或規劃有問題時就無法挽回,故單位開發成本較高
2、;另一種則是可重覆燒錄的,此種型式的 FPGA一般多為SRAM(Static RAM 靜態可讀寫記憶體) Base,當重覆規劃時即可自動將先前規劃的內容抹去,植入新的資料;另外當電源關閉時規劃的內容也自動流失,雖然如此,SRAM-Base 的 FPGA仍然十分受到歡迎,因為其可重覆燒錄的特性非常適合使用在實驗上。因此以下即將以 Xilinx公司的 SRAM-Base FPGA為例,介紹 FPGA的結構與使用方法。二、FPGA 結構介紹:FPGA的內部結構主要可分為三個部分(如圖 7.1所示)l) 可組織的邏輯區塊(Configurable Logic Blocks 簡稱 CLB)2) 輸入/輸
3、出區塊(I/O Blocks 簡稱 IOB)3) 可程式化交連(Programmable Interconnects)以下就以此三個部分做細部介紹:( FPGA內部結構圖)1. 可組織的邏輯區塊(CLB):此處為構成邏輯功能的主要區域,其中是由函式產生區(Function Generation Section)與正反器所組成(如圖 7.2所示)。在函式產生區中是利用 F,G,H 3個查表邏輯(Look-Up Table)來組成;其中 F與 G為 4對 1的 Look-Up Table,所以可產生 種不同的和之積(Sum of Product)邏輯函數,而 H為 3對 1的 Look-Up Ta
4、ble,是將 F,G的輸出與外部輸入當作輸入信號,此種設計使 H的輸出可得到 F,G與外部輸入信號的和之積形式;再經由多工器決定輸出信號要接到正反器或直接輸出,而正反器的輸入時脈也可以利用多工器選擇正相輸入或反相輸入;以上所提及之多工器的選擇皆是由 SRAM中每一個 Bit所對映(Mapping)控制的。( CLB內部結構圖)2. 輸入/輸出區塊(IOB):IOB是做為 CLB對外界的介面(如圖 7.3所示),每個 IOB可規劃成輸入、輸出或雙向溝通。下面是 IOB可設定成的形式:( IOB內部結構圖)(1)當成輸入時:(i) 直接輸入(Direct Input)(ii) 正反器及鎖定輸入(F
5、lip-Flop Contain Latch)(iii) 上拉電阻輸入(Pull-Up Resistor)(2) 當成輸出時:(i) 直接或暫存器輸出(Direct/Registered Output)(ii) 反向輸出(Invertered/Not)(iii) 三態或開關輸出(Tri-State/On/Off)3. 可程式化交連 (Programmable Interconnects):可程式化交連是使 IOB與 CLB或 CLB與 CLB之間能互相連接在一起的媒介,在沒有規劃前都是不相連的,只有在佈線時才會依需求連接,其中主要種類可分為:切換矩陣(Switch Matrix),交連緩衝器(
6、Interconnect Buffer)及金屬接線(Metal Resource),其個別說明如下;l) 切換矩陣:一次可使多條線搭接在一起,(如圖 7.4所示)( Switch Matrix的連接方式圖)2) 交連緩衝器:是為了增加 Connect Line的推動能力而設計的,可經由軟體加以考慮其推動能力而添加交連緩衝器。3) 金屬接線: 包含以下三種型式的接線:l. 一般交連(General Purpose Interconnect):約有 48條連接線(如圖 7.5所示),線的末端都接至 Switch Matrix,在未規劃前垂直與水平線是不相連的。( General Purpose I
7、nterconnect結構圖)2. 直接相連(Direct Connection):(如圖 7.6所示)主要用於相鄰或相隔不遠的 IOB或 CLB的連接。(圖 7.6 Direct Connection連接方式圖)(I)長接線(Long Line):長度較 General Purpose Interconnect長,其主要功能有三項:(a) 連接相距較遠的 IOB或 CLB。(b) 配合三態緩衝器的開關組成匯流排。(c) 每條 Long Line的末端都有 Pull Up電阻,故可接成 Wire AND功能(如圖7.7所示) 。(圖 7.7a 用 Long Line當作多工匯流)(圖 7.7b 用 Long Line當作 Wire AND的方式)