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