現場(chǎng)可編程門(mén)陣列的結構與設計
3.1 設計輸入
設計輸入是將要實(shí)現的邏輯關(guān)系以開(kāi)發(fā)系統所支持的方式輸入計算機,這是設計FPGA的開(kāi)始。有多種方法實(shí)現設計輸入,最常用的是原理圖編輯器。它允許用2種方式進(jìn)行設計輸入:
1)圖形輸入這種輸入方式允許使用元件庫中提供的各種常規門(mén)電路及邏輯部件(宏單元)設計電路,并以原理圖的方式輸入;
2)文本輸入這種輸入方式允許使用高級可編程邏輯設計語(yǔ)言,如VHDL,ABEL、CUPL語(yǔ)言等編寫(xiě)輸入文件,也允許直接用布爾方程進(jìn)行輸入。
設計輸入的目的是要產(chǎn)生一個(gè)XNF(Xilinx Netlist Format)文件,這是設計實(shí)現和設計驗證的輸入文件。如果同時(shí)采用圖形輸入和文本輸入,則還需要進(jìn)行歸并(XNFMERGE)處理,以產(chǎn)生一個(gè)完整的XNF文件。
3.2 設計實(shí)現
設計實(shí)現是設計開(kāi)發(fā)過(guò)程的核心,其主要任務(wù)是對歸并后的XNF文件進(jìn)行分割、布局和布線(xiàn)。分割是把XNF文件中的邏輯設計經(jīng)過(guò)化簡(jiǎn),分割成為以CLB及I/OB為基本單元的邏輯設計。布局是把分割后的邏輯設計分配到FPGA的相應CLB及I/OB位置。布線(xiàn)是對已布局好的CLB,I/OB進(jìn)行連線(xiàn)。Xilinx開(kāi)發(fā)軟件具有自動(dòng)布局、布線(xiàn)功能,它能在布局、布線(xiàn)過(guò)程中采用一系列優(yōu)化程序,找出最佳布局、布線(xiàn)方案。設計實(shí)現的最終目的是產(chǎn)生符合設計要求的比特流文件。這是用來(lái)為FPGA芯片裝載的二進(jìn)制文件。
3.3 設計驗證
設計驗證主要是對電路進(jìn)行仿真測試。仿真測試包括功能仿真和實(shí)時(shí)仿真。功能仿真假設信號通過(guò)每個(gè)邏輯門(mén)產(chǎn)生同樣的延遲時(shí)間(0.1ns),而通過(guò)路徑?jīng)]有延時(shí)。這種仿真可測試系統功能是否滿(mǎn)足設計要求。實(shí)時(shí)仿真是在布局布線(xiàn)后進(jìn)行,它能按照所選器件的實(shí)際延遲時(shí)間進(jìn)行模擬,主要用來(lái)驗證系統的時(shí)序關(guān)系。
設計輸入、設計實(shí)現和設計驗證三個(gè)部分交替進(jìn)行,最后得到完全滿(mǎn)足設計要求的二進(jìn)制文件。用該文件通過(guò)加載電纜或編程EPROM對FPGA加載,即可得到用戶(hù)需要的專(zhuān)用集成電路芯片。
4 FPGA設計方法
4.1 時(shí)鐘信號分配技術(shù)
時(shí)鐘分配網(wǎng)絡(luò )是FPGA芯片中的特殊布線(xiàn)資源,由特定的引腳和特定的驅動(dòng)器驅動(dòng),只能驅動(dòng)芯片上觸發(fā)器的時(shí)鐘輸入端或除了時(shí)鐘輸入端外有限的一些負載,其反相功能一般可在可編程邏輯塊(CLB)或可編程輸入輸出塊(I/OB)內部實(shí)現,其目的是為設計提供小延遲偏差的時(shí)鐘信號。因此,FPGA特別適合于同步電路設計技術(shù),盡可能減少使用的時(shí)鐘信號種類(lèi)。而在TTL電路設計中經(jīng)常采用的由組合邏輯生成多個(gè)時(shí)鐘,然后分別驅動(dòng)多個(gè)觸發(fā)器以裝入和保持數據的設計方法,對FPGA設計是不適用的。因為,這樣做會(huì )使得時(shí)鐘種類(lèi)很多,不能利用專(zhuān)用的時(shí)鐘驅動(dòng)器和專(zhuān)用的時(shí)鐘布線(xiàn)資源,時(shí)鐘信號只能由通用的布線(xiàn)資源拼湊而成,各個(gè)負載點(diǎn)上的時(shí)鐘延遲偏差很大,會(huì )引起數據保持時(shí)間問(wèn)題,降低工作速度。
對FPGA設計而言,更有效的方法是使用一個(gè)時(shí)鐘信號,而由組合邏輯生成多個(gè)時(shí)鐘使能信號,分別驅動(dòng)觸發(fā)器的時(shí)鐘使能端,所有觸發(fā)器的數據裝入都由同一個(gè)時(shí)鐘控制,但只有時(shí)鐘使能信號有效的觸發(fā)器才會(huì )裝入數據,時(shí)鐘使能信號無(wú)效的觸發(fā)器則保持數據。這種方法充分發(fā)揮了FPGA器件體系結構的優(yōu)勢,是設計者應該盡量使用的設計技巧。
4.2 人工干預自動(dòng)布局布線(xiàn)
經(jīng)過(guò)FPGA生產(chǎn)廠(chǎng)家的不斷努力,FPGA自動(dòng)設計工具逐漸趨于完善,可以獲得較高的布通率和芯片資源利用率。對一般應用,使用自動(dòng)設計工具往往就可以了。但對于一些性能要求較高或者邏輯功能比較復雜的設計來(lái)說(shuō),FPGA自動(dòng)設計工具的自動(dòng)布局、布線(xiàn)結果往往不能滿(mǎn)足要求,此時(shí)比較有效的方法就是在原理圖一級手工干預邏輯分割和布局布線(xiàn),以及使用強迫文件(CST文件)干預自動(dòng)布局布線(xiàn)。對于XC200,XC300系列FPGA設計,用戶(hù)可使用CLBMAP機制控制邏輯分割,將某些功能映射到特定的可編程邏輯塊(CLB)中;對于XC400系列的FPGA設計,可使用FMAP和HMAP機制實(shí)現邏輯分割。此外,可以通過(guò)元件符號定位機制(LOC=)控制觸發(fā)器、三態(tài)驅動(dòng)器、可編程邏輯塊等在芯片中的指定位置。一般來(lái)說(shuō),使用三態(tài)驅動(dòng)器構成內部三態(tài)總線(xiàn)和使用XC4000系列的硬宏單元時(shí)人工指定位置,否則自動(dòng)布局布線(xiàn)的結果往往很差。
4.3采用冗余技術(shù)
重復設置相同的電路單元以盡可能地減輕信號負載和縮短互連延遲,是FPGA設計中獲取高性能的一種常用方法。同時(shí),在使用多片FPGA芯片時(shí),重復設置相同的電路單元,可以減少對FPGA芯片引腳數量的需求。因為,隨著(zhù)FPGA芯片引腳數的增加,其成本也大幅度增加。在設計中采用此項技術(shù),對降低成本取得了較好的效果。
5 結語(yǔ)
FPGA是一種非常有前途的新技術(shù),很適合于科研工作中的樣機、新產(chǎn)品及一些生產(chǎn)量不是特別大的產(chǎn)品。對于批量較大產(chǎn)品可以通過(guò)板圖優(yōu)化制成ASIC以降低成本。本文主要是針對XILINX公司的XC300,XC400系列FPGA及其開(kāi)發(fā)工具來(lái)進(jìn)行討論的。正確使用FPGA的資源及其設計工具,使之適合FPGA體系結構的特點(diǎn),對設計結果的影響非常大。
評論