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