FPGA技術(shù)概述
FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA設(shè)計(jì)不是簡(jiǎn)單的芯片研究,主要是利用 FPGA 的模式進(jìn)行其他行業(yè)產(chǎn)品的設(shè)計(jì)。 與 ASIC 不同,F(xiàn)PGA在通信行業(yè)的應(yīng)用比較廣泛。通過(guò)對(duì)全球FPGA產(chǎn)品市場(chǎng)以及相關(guān)供應(yīng)商的分析,結(jié)合當(dāng)前我國(guó)的實(shí)際情況以及國(guó)內(nèi)領(lǐng)先的FPGA產(chǎn)品可以發(fā)現(xiàn)相關(guān)技術(shù)在未來(lái)的發(fā)展方向,對(duì)我國(guó)科技水平的全面提高具有非常重要的推動(dòng)作用。與傳統(tǒng)模式的芯片設(shè)計(jì)進(jìn)行對(duì)比,F(xiàn)PGA 芯片并非單純局限于研究以及設(shè)計(jì)芯片,而是針對(duì)較多領(lǐng)域產(chǎn)品都能借助特定芯片模型予以優(yōu)化設(shè)計(jì)。從芯片器件的角度講,F(xiàn)PGA 本身構(gòu)成 了半定制電路中的典型集成電路,其中含有數(shù)字管理模塊、內(nèi)嵌式單元、輸出單元以及輸入單元等。在此基礎(chǔ)上,關(guān)于FPGA芯片有必要全面著眼于綜合性的芯片優(yōu)化設(shè)計(jì),通過(guò)改進(jìn)當(dāng)前的芯片設(shè)計(jì)來(lái)增設(shè)全新的芯片功能,據(jù)此實(shí)現(xiàn)了芯片整體構(gòu)造的簡(jiǎn)化與性能提升。
FPGA 器件屬于專用集成電路中的一種半定制電路,是可編程的邏輯列陣,能夠有效的解決原有的器件門電路數(shù)較少的問(wèn)題。FPGA 的基本結(jié)構(gòu)包括可編程輸入輸出單元,可配置邏輯塊,數(shù)字時(shí)鐘管理模塊,嵌入式塊RAM,布線資源,內(nèi)嵌專用硬核,底層內(nèi)嵌功能單元。由于FPGA具有布線資源豐富,可重復(fù)編程和集成度高,投資較低的特點(diǎn),在數(shù)字電路設(shè)計(jì)領(lǐng)域得到了廣泛的應(yīng)用。FPGA的設(shè)計(jì)流程包括算法設(shè)計(jì)、代碼仿真以及設(shè)計(jì)、板機(jī)調(diào)試,設(shè)計(jì)者以及實(shí)際需求建立算法架構(gòu),利用EDA建立設(shè)計(jì)方案或HD編寫設(shè)計(jì)代碼,通過(guò)代碼仿真保證設(shè)計(jì)方案符合實(shí)際要求,最后進(jìn)行板級(jí)調(diào)試,利用配置電路將相關(guān)文件下載至FPGA芯片中,驗(yàn)證實(shí)際運(yùn)行效果。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無(wú)限次的編程。
相比于其他種類的芯片設(shè)計(jì),關(guān)于 FPGA芯片通常需要設(shè)置較高門檻并且擬定嚴(yán)格性較強(qiáng)的基本設(shè)計(jì)流程。具體在設(shè)計(jì)時(shí),應(yīng)當(dāng)緊密結(jié)合 FPGA 的有關(guān)原理圖,據(jù)此實(shí)現(xiàn)了規(guī)模較大的專門芯片設(shè)計(jì)。通過(guò)運(yùn)用Matlab以及C語(yǔ)言的特殊設(shè)計(jì)算法,應(yīng)當(dāng)可以實(shí)現(xiàn)全方位的順利轉(zhuǎn)化,從而確保其符合當(dāng)前的主流芯片設(shè)計(jì)思路。在此前提下,如果選擇了上述設(shè)計(jì)思路那么通常需要著眼于有序整合各類元器件以及相應(yīng)的設(shè)計(jì)語(yǔ)言,據(jù)此保證了可用性與可讀性較強(qiáng)的芯片程序設(shè)計(jì)。運(yùn)用 FPGA可以實(shí)現(xiàn)板機(jī)調(diào)試、代碼仿真與其他有關(guān)的設(shè)計(jì)操作,確保當(dāng)前的代碼編寫方式以及設(shè)計(jì)方案都能符合特定的設(shè)計(jì)需求。 除此以外,關(guān)于設(shè)計(jì)算法應(yīng)當(dāng)將合理性置于首要性的位置, 據(jù)此實(shí)現(xiàn)了優(yōu)化的項(xiàng)目設(shè)計(jì)效果,并且優(yōu)化了芯片運(yùn)行的實(shí)效性。因此作為設(shè)計(jì)人員來(lái)講,首先就是要構(gòu)建特定的算法模塊, 以此來(lái)完成與之有關(guān)的芯片代碼設(shè)計(jì)。這是由于預(yù)先設(shè)計(jì)代碼有助保證算法可靠性,對(duì)于整體上的芯片設(shè)計(jì)效果也能予以顯著優(yōu)化。在全面完成板機(jī)調(diào)試以及仿真測(cè)試的前提下,應(yīng)當(dāng)可以在根源上縮短設(shè)計(jì)整個(gè)芯片消耗的周期,同時(shí)也致力于優(yōu)化當(dāng)前現(xiàn)存的硬件整體結(jié)構(gòu)。例如在涉及到開發(fā)非標(biāo)準(zhǔn)的某些硬件接口時(shí),通常都會(huì)用到上述的新產(chǎn)品設(shè)計(jì)模式。
FPGA設(shè)計(jì)的主要難點(diǎn)是熟悉硬件系統(tǒng)以及內(nèi)部資源,保證設(shè)計(jì)的語(yǔ)言能夠?qū)崿F(xiàn)元器件之間的有效配合,提高程序的可讀性以及利用率。這也對(duì)設(shè)計(jì)人員提出了比較高的要求,需要經(jīng)過(guò)多個(gè)項(xiàng)目的經(jīng)驗(yàn)積累才可以達(dá)到相關(guān)的要求。在算法設(shè)計(jì)時(shí)需要重點(diǎn)考慮合理性,保證項(xiàng)目最終完成的效果,依據(jù)項(xiàng)目的實(shí)際情況提出解決問(wèn)題的方案,提高FPGA的運(yùn)行效率。確定算法后應(yīng)當(dāng)合理構(gòu)建模塊,方便后期進(jìn)行代碼設(shè)計(jì)。在代碼設(shè)計(jì)時(shí)可以利用預(yù)先設(shè)計(jì)好的代碼,提高工作效率,增強(qiáng)可靠性。編寫測(cè)試平臺(tái),進(jìn)行代碼的仿真測(cè)試和班級(jí)調(diào)試,完成整個(gè)設(shè)計(jì)過(guò)程。FPGA同ASIC不同,開發(fā)的周期比較短,可以結(jié)合設(shè)計(jì)要求改變硬件的結(jié)構(gòu),在通信協(xié)議不成熟的情況下可以幫助企業(yè)迅速推出新產(chǎn)品,滿足非標(biāo)準(zhǔn)接口開發(fā)的需求。