現(xiàn)場(chǎng)可編程門陣列(FPGA)設(shè)計(jì)
隨著器件規(guī)模、功能以及可靠性的不斷提高,FPGA在現(xiàn)代數(shù)字系統(tǒng)中的應(yīng)用日漸廣泛。采用FPGA設(shè)計(jì)數(shù)字電路已經(jīng)成為數(shù)字電路系統(tǒng)領(lǐng)域的主要設(shè)計(jì)方式之一。
本文引用地址:http://butianyuan.cn/article/191194.htmFPGA設(shè)計(jì)是指使用相應(yīng)的EDA開發(fā)軟件對(duì)FPGA器件進(jìn)行開發(fā)的過程。最早的設(shè)計(jì)方法是自底向上的,即首先確定庫(kù)中可用的元件,再使用這些元件進(jìn)行模塊的設(shè)計(jì),完成各模塊后進(jìn)行連接,從而形成整個(gè)系統(tǒng)。最后經(jīng)過調(diào)試和測(cè)量來考察系統(tǒng)是否達(dá)到所需的性能指標(biāo)。
隨著技術(shù)和需求的發(fā)展,自底向上的方法已經(jīng)不能適應(yīng)復(fù)雜數(shù)字系統(tǒng)的設(shè)計(jì)。目前廣泛使用的是自頂向下的設(shè)計(jì)方法和流程:首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì),并用硬件描述語言對(duì)高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)級(jí)采用仿真手段驗(yàn)證設(shè)計(jì)的正確性,之后再逐級(jí)設(shè)計(jì)下一層的結(jié)構(gòu),用綜合優(yōu)化工具生成具體門電路的網(wǎng)表。這種逐級(jí)進(jìn)行設(shè)計(jì)和驗(yàn)證的方法可以及早發(fā)現(xiàn)問題并修改系統(tǒng)設(shè)計(jì),縮短開發(fā)周期、節(jié)約成本。
FPGA設(shè)計(jì)流程
FPGA設(shè)計(jì)的一般流程如圖1所示,包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、設(shè)計(jì)處理、時(shí)序仿真、器件編程與測(cè)試幾個(gè)步驟。
設(shè)計(jì)準(zhǔn)備
在數(shù)字系統(tǒng)設(shè)計(jì)之前,首先要進(jìn)行方案論證、系統(tǒng)設(shè)計(jì)、器件選擇等準(zhǔn)備工作。設(shè)計(jì)人員根據(jù)任務(wù)的功能和性能指標(biāo)需求,對(duì)器件的資源、成本以及功耗等方面進(jìn)行折衷,選擇合適的設(shè)計(jì)方案和FPGA器件。
設(shè)計(jì)描述與輸入
設(shè)計(jì)輸入就是指設(shè)計(jì)人員將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入計(jì)算機(jī)的過程。設(shè)計(jì)描述和設(shè)計(jì)輸入通常使用圖形和硬件描述語言兩種形式。
圖形輸入方式
圖形方式的設(shè)計(jì)輸入主要是使用EDA軟件進(jìn)行原理圖、狀態(tài)圖、波形圖等圖形的編輯和修改。
原理圖輸入方式是一種最直接的設(shè)計(jì)描述方式,使用元件庫(kù)中的元件畫出系統(tǒng)或電路的原理圖,符合人們的思維習(xí)慣。這種設(shè)計(jì)輸入方式要求設(shè)計(jì)人員具有豐富的硬件知識(shí)、熟悉FPGA器件的結(jié)構(gòu)。主要優(yōu)點(diǎn)是系統(tǒng)結(jié)構(gòu)清晰直觀、便于信號(hào)的觀察和電路的調(diào)整;缺點(diǎn)是設(shè)計(jì)效率低,產(chǎn)品升級(jí)、FPGA器件更換、EDA軟件更換時(shí)需要重新輸入原理圖,而硬件描述語言輸入方式就沒有這方面的問題。
狀態(tài)圖主要用來通過圖形方式設(shè)計(jì)有限狀態(tài)機(jī)。圖形化的有限狀態(tài)機(jī)設(shè)計(jì)具有簡(jiǎn)單、直觀、快捷等特點(diǎn)。波形輸入方式主要是用來建立和編輯波形設(shè)計(jì)文件,以及輸入仿真向量和功能測(cè)試向量。
硬件描述語言輸入方式
硬件描述語言輸入方式使用文本進(jìn)行設(shè)計(jì)描述,包括普通硬件描述語言和行為級(jí)硬件描述語言。比較有代表性的普通硬件描述語言是ABEL,它支持邏輯方程、真值表、狀態(tài)機(jī)等邏輯表達(dá)方式,主要用于簡(jiǎn)單可編程邏輯器件的設(shè)計(jì)輸入。
行為級(jí)硬件描述語言是目前常用的高層硬件描述語言,主要有VHDL和Verilog HDL兩個(gè)IEEE標(biāo)準(zhǔn)。其突出優(yōu)點(diǎn)有:邏輯設(shè)計(jì)與具體工藝無關(guān),使設(shè)計(jì)人員在系統(tǒng)設(shè)計(jì)、邏輯驗(yàn)證階段確定方案的可行性;行為級(jí)描述,便于設(shè)計(jì)大規(guī)模、復(fù)雜的數(shù)字系統(tǒng);具有很強(qiáng)的邏輯描述和仿真功能,輸入效率高;在不同的FPGA器件和EDA軟件之間的轉(zhuǎn)換比較方便;不必對(duì)底層的電路和FPGA器件結(jié)構(gòu)非常熟悉。
功能仿真
功能仿真也稱為前仿真或行為仿真。用戶所設(shè)計(jì)的電路在綜合之前應(yīng)該首先進(jìn)行邏輯功能的驗(yàn)證,這種仿真沒有器件內(nèi)部邏輯單元和連線的實(shí)際延時(shí)信息,只是初步驗(yàn)證系統(tǒng)的邏輯功能。
為了能夠完成功能仿真,需要先使用波形編輯器或硬件描述語言,來建立仿真時(shí)需要的波形文件和測(cè)試向量(盡可能包含所有可能影響設(shè)計(jì)功能的輸入信號(hào)的組合)。仿真結(jié)果將以波形圖的方式直觀顯示在計(jì)算機(jī)屏幕上,并生成報(bào)告。從中設(shè)計(jì)者可以觀察到各個(gè)信號(hào)的變化,以判斷電路是否實(shí)現(xiàn)了預(yù)期的功能。如果發(fā)現(xiàn)錯(cuò)誤,則應(yīng)該返回設(shè)計(jì)輸入階段進(jìn)行邏輯設(shè)計(jì)的修改。
評(píng)論