多種EDA工具的FPGA設(shè)計(jì)方案
在設(shè)計(jì)輸入階段,因Modelsim僅支持VHDL或Verilog HDL,所以在選用多種設(shè)計(jì)輸入工具時(shí),可以使用文本編輯器完成HDL語(yǔ)言的輸入,也可以利用相應(yīng)的工具以圖形方式完成輸入,但必須能夠?qū)С鰧?duì)應(yīng)的VHDL或Verilog HDL格式。近年來(lái)出現(xiàn)的圖形化HDL設(shè)計(jì)工具,可以接收邏輯結(jié)構(gòu)圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)流圖、控制流程圖及真值表等輸入方式,并通過(guò)配置的翻譯器將這些圖形格式轉(zhuǎn)化為HDL文本,如Mentor Graphics公司的Renoir,Xilinx公司的Foundation Series都帶有將狀態(tài)轉(zhuǎn)換圖翻譯成HDL文本的設(shè)計(jì)工具。在這方面,Summit公司(現(xiàn)在已經(jīng)合并為Innoveda)的圖形化界面友好程度較高,且可以導(dǎo)出相應(yīng)的HDL格式。
從圖3中可以看到有三處可以由Modelsim進(jìn)行仿真:第一處是寄存器傳輸級(jí)(RTL)仿真,此級(jí)仿真是對(duì)設(shè)計(jì)的語(yǔ)法和基本功能進(jìn)行驗(yàn)證(不含時(shí)序信息);第二處是針對(duì)特定的FPGA廠家技術(shù)的仿真,此級(jí)仿真是在綜合后、實(shí)現(xiàn)前而進(jìn)行的功能級(jí)仿真,功能級(jí)仿真一般驗(yàn)證綜合后是否可以得到設(shè)計(jì)者所需要的正確功能;第三處仿真是門級(jí)仿真,此級(jí)仿真是針對(duì)門級(jí)時(shí)序進(jìn)行的仿真,門級(jí)仿真體現(xiàn)出由于布局布線而產(chǎn)生的實(shí)際延時(shí)。
在RTL仿真階段,應(yīng)該建立一個(gè)測(cè)試臺(tái)。此測(cè)試臺(tái)可以在整個(gè)FPGA流程中進(jìn)行仿真驗(yàn)證(RTL級(jí)、功能級(jí)、時(shí)序門級(jí))。測(cè)試臺(tái)不但提供測(cè)試激勵(lì)與接收響應(yīng)信息,而且可以測(cè)試HDL仿真流程中的關(guān)鍵功能(如運(yùn)算部件輸出值的正確性等)。測(cè)試臺(tái)的產(chǎn)生可以直接使用文本編輯得到,也可以使用圖形化工具輸入,再由軟件翻譯為HDL格式,例如使用HDL Bencher軟件利用其良好的波形輸入界面輸入測(cè)試激勵(lì),再由其自動(dòng)轉(zhuǎn)化為HDL格式而得到。
在功能級(jí)仿真階段,一般驗(yàn)證綜合后是否仍與RTL級(jí)仿真結(jié)果相同。
在門級(jí)仿真階段,由于已經(jīng)針對(duì)具體的FPGA廠家技術(shù)進(jìn)行了功能級(jí)仿真,因此可以通過(guò)布局布線得到標(biāo)準(zhǔn)延時(shí)格式下的時(shí)序信息進(jìn)行門級(jí)仿真。
Mentor Graphics 公司的Modelsim是業(yè)界較好的仿真工具,其仿真功能強(qiáng)大,且圖形化界面友好,而且具有結(jié)構(gòu)、信號(hào)、波形、進(jìn)程、數(shù)據(jù)流等窗口。將FPGA設(shè)計(jì)(以HDL方式)輸入后進(jìn)行編譯即可進(jìn)行前仿真,其最新版本Modelsim SE/Plus 5.5 支持VHDL與Verilog HDL混合仿真。在仿真時(shí)可以編寫(xiě)HDL激勵(lì)文件或執(zhí)行組模式方式。組模式方式類似批處理方式,可以連續(xù)執(zhí)行事先在文件中寫(xiě)好的多個(gè)執(zhí)行命令,這對(duì)重新仿真或重復(fù)執(zhí)行多個(gè)命令特別有效。在仿真過(guò)程中可以執(zhí)行性能分析與代碼覆蓋分析。性能分析在程序代碼執(zhí)行過(guò)程中可以分析出各部分代碼執(zhí)行時(shí)占用整體執(zhí)行時(shí)間的百分率。在此信息下,設(shè)計(jì)者可以找到設(shè)計(jì)的瓶頸并通過(guò)優(yōu)化代碼減少仿真時(shí)間。代碼覆蓋分析可以使設(shè)計(jì)者確切知道在測(cè)試臺(tái)上正在進(jìn)行的代碼位置,以方便設(shè)計(jì)者調(diào)試。
由Modelsim進(jìn)行仿真,需要導(dǎo)出VHDL或Verilog HDL網(wǎng)表。此網(wǎng)表是由針對(duì)特定FPGA器件的基本單元組成的。這些基本單元在FPGA廠家提供的廠家?guī)熘泻衅涠x和特性,且廠家一般提供其功能的VHDL或Verilog HDL庫(kù)。因此,在Modelsim下進(jìn)行仿真,需要設(shè)置廠家?guī)煨畔ⅰH缡褂肁ltera公司的Apex20ke系列,需要將Apex20ke_atoms.v(或.vhd)與Apex20ke_component.v文件設(shè)置或編譯到工程項(xiàng)目的對(duì)應(yīng)庫(kù)中。除網(wǎng)表外,還需要布局布線輸出的標(biāo)準(zhǔn)延時(shí)文件(sdf),將sdf文件加入仿真可以在窗口化界面設(shè)置加入,或通過(guò)激勵(lì)指定。如使用Verilog HDL時(shí)加入反標(biāo)語(yǔ)句$sdf_annotate(“ ”,Top)通過(guò)參數(shù)路徑指定即可。
在綜合階段,應(yīng)利用設(shè)計(jì)者指定的約束文件將RTL級(jí)設(shè)計(jì)功能實(shí)現(xiàn)并優(yōu)化到具有相等功能且具有單元延時(shí)(但不含時(shí)序信息)的基本器件中,如觸發(fā)器、邏輯門等,得到的結(jié)果是功能獨(dú)立于FPGA的網(wǎng)表。它不含時(shí)序信息,可作為后續(xù)的布局布線使用。使用FPGA Compiler II進(jìn)行綜合后可以導(dǎo)出EDIF網(wǎng)表。
在實(shí)現(xiàn)階段,主要是利用綜合后生成的EDIF網(wǎng)表并基于FPGA內(nèi)的基本器件進(jìn)行布局布線??梢岳貌季€工具Foundation Series選用具體器件(如Virtex系列器件)進(jìn)行布局布線加以實(shí)現(xiàn),也可以使用布線工具Quartus選用Apex20ke系列器件進(jìn)行布局布線加以實(shí)現(xiàn),同時(shí)輸出相應(yīng)的VHDL或Verilog HDL格式,以便在Modelsim下進(jìn)行仿真。
關(guān)于其它階段,因篇幅關(guān)系,在此不再贅述。
在數(shù)字系統(tǒng)設(shè)計(jì)的今天,利用多種EDA工具進(jìn)行處理,同時(shí)使用FPGA快速設(shè)計(jì)專用系統(tǒng)或作為檢驗(yàn)手段已經(jīng)成為數(shù)字系統(tǒng)設(shè)計(jì)中不可或缺的一種方式,了解并熟悉其設(shè)計(jì)流程應(yīng)成為現(xiàn)今電子工程師的一種必備知識(shí)。
評(píng)論