FPGA工作原理及其簡介
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結構,F(xiàn)PGA利用小型查找表(16×1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅動其他邏輯電路或驅動I/O,由此構成了即可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。
FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及個模塊之間或模塊與I/O間的連接方式,并最終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能, FPGA允許無限次的編程.
背景
目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設計驗證的技術主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。
系統(tǒng)設計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。
FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發(fā)是在普通的FPGA上完成的,然后將設計轉移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復雜可編程邏輯器件備)。
CPLD與FPGA的關系
早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。
CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結構。CPLD是一個有點限制性的結構。這個結構由一個或者多個可編輯的結果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結果是缺乏編輯靈活性,但是卻有可以預計的延遲時間和邏輯單元對連接單元高比率的優(yōu)點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結構卻復雜的多。
CPLD和FPGA另外一個區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個因此有關的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設計隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些FPGA可以讓設備的一部分重新編輯而其他部分繼續(xù)正常運行。
評論