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