于東陽(yáng),蘇 彬
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽(yáng)110032)
如今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本身在不斷進(jìn)步,傳統(tǒng)的可編程邏輯器件正在向大容量、高性能、低成本的方向發(fā)展。因此出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。美國(guó)Xilinx公司是全球最大的可編程邏輯器件廠(chǎng)商,首創(chuàng)了現(xiàn)場(chǎng)可編程邏輯陣列這一技術(shù),其產(chǎn)品在國(guó)內(nèi)各個(gè)行業(yè)得到了廣泛應(yīng)用,同時(shí)該公司的ISE開(kāi)發(fā)軟件為用戶(hù)提供了一個(gè)易于操作的軟件開(kāi)發(fā)平臺(tái),可以很方便地開(kāi)發(fā)出基于該公司的CPLD/FPGA產(chǎn)品的數(shù)字電路。
VHDL是一種硬件描述語(yǔ)言,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。
Foundation Series ISE(簡(jiǎn)稱(chēng)ISE)是由著名的可編程器件開(kāi)發(fā)廠(chǎng)商Xilinx公司提供的集成化開(kāi)發(fā)平臺(tái)。ISE可以完成FPGA開(kāi)發(fā)的全部流程,包括設(shè)計(jì)輸入、仿真、綜合、布局布線(xiàn)、生成BIT流文件、配置以及在線(xiàn)調(diào)試等,功能非常強(qiáng)大,并且具有界面良好、操作簡(jiǎn)單的特點(diǎn),再加上Xilinx的FPGA芯片占有很大的市場(chǎng),使得ISE成為了非常通用的FPGA工具軟件。
如圖1所示。在ISE集成開(kāi)發(fā)環(huán)境中,一個(gè)完整的FPGA設(shè)計(jì)流程包括工作環(huán)境設(shè)置、工程建立、電路設(shè)計(jì)(VHDL代碼編寫(xiě))、功能仿真、綜合優(yōu)化、綜合后仿真、翻譯、映射、布局、時(shí)序仿真、下載調(diào)試等主要步驟。
首先要進(jìn)行整個(gè)工作環(huán)境的設(shè)置,通過(guò)環(huán)境設(shè)置可以使整個(gè)設(shè)計(jì)過(guò)程更加適應(yīng)自己的習(xí)慣,提高工作效率。然后要建立一個(gè)工程項(xiàng)目,把整個(gè)設(shè)計(jì)放到工程里統(tǒng)一管理。電路的設(shè)計(jì)輸入是工程設(shè)計(jì)的第一步,常用硬件描述語(yǔ)言(HDL),將電路需要實(shí)現(xiàn)的功能及輸入輸出接口等用VHDL編寫(xiě)出來(lái)。功能仿真是數(shù)字系統(tǒng)設(shè)計(jì)中不可缺少的一個(gè)環(huán)節(jié),通過(guò)仿真可以對(duì)整個(gè)設(shè)計(jì)的功能和時(shí)序進(jìn)行驗(yàn)證。電路設(shè)計(jì)完成后,可以用ISE中的Test Bench Waveform工具為當(dāng)前升級(jí)添加測(cè)試激勵(lì),然后在ISE中啟動(dòng)ModelSim仿真軟件對(duì)設(shè)計(jì)進(jìn)行功能仿真。當(dāng)功能仿真沒(méi)有問(wèn)題后,下一步就是要進(jìn)行綜合優(yōu)化。綜合優(yōu)化將HDL或原理圖設(shè)計(jì)輸入翻譯成由與、或、非門(mén)、RAM、寄存器等基本邏輯單元組成的邏輯連接,即網(wǎng)表,并根據(jù)約束文件優(yōu)化所生成的網(wǎng)表。當(dāng)綜合完成后,需要檢驗(yàn)和原設(shè)計(jì)是否一致,要做綜合后仿真。綜合后仿真的結(jié)果會(huì)產(chǎn)生相應(yīng)的邏輯網(wǎng)表,F(xiàn)PGA根據(jù)邏輯網(wǎng)表的內(nèi)容進(jìn)行翻譯、映射、布局來(lái)實(shí)現(xiàn)整個(gè)設(shè)計(jì)的邏輯功能。布局布線(xiàn)后是時(shí)序仿真,這種仿真將布局布線(xiàn)的時(shí)延文件反標(biāo)到設(shè)計(jì)中,使仿真既包含門(mén)延時(shí),又包含線(xiàn)延時(shí)信息,從而更加全面、準(zhǔn)確的反映芯片的實(shí)際工作情況。最后就需要把生成的配置文件寫(xiě)入芯片中進(jìn)行測(cè)試。
下面以Xilinx公司Spartan IIE系列的FPGA芯片為例來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的電路設(shè)計(jì),基本功能是實(shí)現(xiàn)一個(gè)3-8譯碼器。
圖1 FPGA設(shè)計(jì)流程圖
(1)新建選擇的芯片
在ISE的工具欄里選擇新建工程,新建一個(gè)項(xiàng)目,通過(guò)選擇項(xiàng)目芯片的屬性來(lái)建立一個(gè)工程,如圖2所示。
圖2 新建項(xiàng)目屬性窗口
(2)編寫(xiě)VHDL代碼
在項(xiàng)目中新建一個(gè)設(shè)計(jì)輸入源文件,輸入如下源程序:
(3)功能仿真
用ModelSim進(jìn)行仿真,觀(guān)察仿真時(shí)序波形與設(shè)計(jì)是否一致,如圖3所示。
圖3 ModelSim仿真圖形
(4)綜合優(yōu)化
執(zhí)行綜合優(yōu)化功能后,如正常則顯示為綠色,可進(jìn)行下步操作。
(5)實(shí)現(xiàn)
將FPGA進(jìn)行管腳約束,并通過(guò)翻譯、映射和布局布線(xiàn)后,最終生成FPGA配置所需要的BIT流文件,并通過(guò)測(cè)試工具IMPACT加載到FPGA芯片中運(yùn)行,如圖4所示。
圖4 IMPACT進(jìn)行加載窗口
(6)檢驗(yàn)
通過(guò)觀(guān)察編譯完成后的器件,來(lái)檢驗(yàn)是否與設(shè)計(jì)一致,如有錯(cuò)誤,則返回第一步重新按流程設(shè)計(jì)。
FPGA被廣泛地應(yīng)用在目前的數(shù)字電路系統(tǒng)設(shè)計(jì)中,掌握FPGA的開(kāi)發(fā)方法是當(dāng)前電子工程師必須的一項(xiàng)基本技能。本文通過(guò)實(shí)例,詳細(xì)介紹了在ISE集成開(kāi)發(fā)環(huán)境下,用FPGA進(jìn)行數(shù)字電路設(shè)計(jì)的具體過(guò)程和方法。案例表明ISE有著強(qiáng)大的功能和豐富的工具集,通過(guò)它可以完成整個(gè)FPGA的開(kāi)發(fā)過(guò)程,而且ISE的界面簡(jiǎn)潔,易學(xué)易用,有可視化編程技術(shù),還具有強(qiáng)大的輔助設(shè)計(jì)功能,可以大大減少設(shè)計(jì)者的工作量,提高設(shè)計(jì)的效率和質(zhì)量。
[1] 王金明,楊吉斌.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].北京:電子工業(yè)出版社,2002
[2] 田耕,徐文波.Xilinx FPGA開(kāi)發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.
[3] 薛小剛,葛毅.Xilinx ISE9.x FPGA/CPLD設(shè)計(jì)指南[M].北京:人民郵電出版社,2007.
[4] 王誠(chéng),薛小剛,鐘信潮.FPGA/CPLD設(shè)計(jì)工具——Xilinx ISE使用詳解[M].北京:人民郵電出版社,2005.