華清遠(yuǎn)見FPGA設(shè)計(jì)初級培訓(xùn)課程
FPGA 的全稱為 Field-Programmable Gate Array,即現(xiàn)場可編程門陣列。在開始學(xué)習(xí) FPGA之前,同學(xué)們首先應(yīng)該清楚地了解 FPGA 的概念,明白 FPGA 到底是什么東西,可以用來做什么。FPGA 是在 PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。簡而言之,FPGA 就是一個(gè)可以通過編程來改變內(nèi)部結(jié)構(gòu)的芯片。直觀來說,F(xiàn)PGA 就是一個(gè)可以“改變”內(nèi)部結(jié)構(gòu)的芯片,而讓這個(gè)芯片來實(shí)現(xiàn)怎樣的功能,就需要通過編程即設(shè)計(jì)硬件描述語言,經(jīng)過 EDA 工具編譯、綜合、布局布線成后轉(zhuǎn)換為可燒錄的文件,最終加載到 FPGA 器件中去,改變 FPGA 內(nèi)部的連線,最終完成所實(shí)現(xiàn)的功能。此時(shí)的 FPGA 就可以認(rèn)為是用來實(shí)現(xiàn)具體功能的一個(gè)粗糙的芯片。稍微接觸過硬件的人大概都聽說過另一種集成電路芯片即單片機(jī),那么 FPGA 與單片機(jī)在結(jié)構(gòu)上有著怎樣的差別呢?對于單片機(jī)而言,F(xiàn)PGA 是一種微處理器,類似于電腦的 CPU,一般是基于哈佛總線結(jié)構(gòu)或者馮·諾依曼結(jié)構(gòu)。單片機(jī)用途廣泛,多用于控制流水線上;FPGA 的結(jié)構(gòu)是查找表,它的結(jié)構(gòu)比較復(fù)雜,相對應(yīng)的它可以實(shí)現(xiàn)的功能也很強(qiáng)大,一般應(yīng)用于通信接口設(shè)計(jì)、數(shù)字信號處理等比較高端的場合,而且 FPGA 還有一個(gè)特殊的應(yīng)用場合,即 ASIC 的原型驗(yàn)證。相較于專職專用的 ASIC,F(xiàn)PGA 工具在開發(fā)難度上降低了許多,并且大大縮短了開發(fā)周期,而且由于 FPGA 是可重復(fù)編程的,其研發(fā)成本與風(fēng)險(xiǎn)也要比 ASIC 減少許多,更適用于復(fù)雜多變的數(shù)據(jù)中心等應(yīng)用。但是 FPGA 也不是萬能的,優(yōu)勢有時(shí)候也是劣勢。雖然 FPGA 相比于單片機(jī)、CPU 等集成電路芯片擁有效率更高、功耗更低的特點(diǎn),但是易于開發(fā)程度遠(yuǎn)遠(yuǎn)不如單片機(jī)、CPU;在數(shù)
?