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