FPGA系統(tǒng)設(shè)計的仿真驗證之: FPGA設(shè)計仿真驗證的原理和方法
7.1FPGA設(shè)計仿真驗證的原理和方法
7.1.1FPGA設(shè)計仿真驗證
嚴(yán)格來講,FPGA設(shè)計驗證包括功能與時序仿真和電路驗證。仿真是指使用設(shè)計軟件包對已實現(xiàn)的設(shè)計進(jìn)行完整測試,模擬實際物理環(huán)境下的工作情況。
本文引用地址:http://m.butianyuan.cn/article/201706/348822.htm功能仿真是指僅對邏輯功能進(jìn)行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計的要求。仿真過程沒有加入時序信息,不涉及具體器件的硬件特性,如延時特性等,因此也叫前仿真。它是對HDL硬件設(shè)計語言的功能實現(xiàn)能力進(jìn)行仿真,以確保HDL語言描述能夠滿足設(shè)計者的最初意圖。
時序仿真則是在HDL可以滿足設(shè)計者功能要求的基礎(chǔ)上,在布局布線后,提取有關(guān)的器件延遲、連線延時等時序參數(shù),并在此基礎(chǔ)上進(jìn)行的仿真,也稱為后仿真,它是接近真實器件運行的仿真。
如圖7.1所示是FPGA設(shè)計仿真驗證的基本方法。
圖7.1FPGA設(shè)計仿真驗證基本方法
7.1.2FPGA設(shè)計仿真的切入點
在FPGA的設(shè)計中,完整的設(shè)計流程往往會涉及多個EDA工具,比如設(shè)計輸入工具、綜合工具、布局布線工具、仿真工具等。如何將這些EDA工具進(jìn)行適當(dāng)?shù)慕Y(jié)合,在符合各個工具接口情況下發(fā)揮各個工具的特長,是每一個FPGA設(shè)計工程師都要面臨的問題。
如圖7.2所示是利用仿真工具ModelSim與綜合工具FPGACompilerII及布線工具FoundationSeries或Quartus相配合實現(xiàn)FPGA設(shè)計的流程圖。
圖7.2FPGA設(shè)計仿真切入點
在設(shè)計輸入階段,由于Modelsim僅支持VHDL或VerilogHDL,所以在選用多種設(shè)計輸入工具時,可以使用文本編輯器完成HDL語言的輸入。當(dāng)然也可以利用相應(yīng)的工具以圖形方式完成輸入,但必須能夠?qū)С鰧?yīng)的VHDL或VerilogHDL格式。
近年來出現(xiàn)的圖形化HDL設(shè)計工具,可以接收邏輯結(jié)構(gòu)圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)流圖、控制流程圖及真值表等輸入方式,并通過配置的翻譯器將這些圖形格式轉(zhuǎn)化為HDL文件,如MentorGraphics公司的Renoir,Xilinx公司的Foundation系列都帶有將狀態(tài)轉(zhuǎn)換圖翻譯成HDL文本的設(shè)計工具。
從圖7.2可以看出,在FPGA設(shè)計過程中,有3處可以使用Modelsim進(jìn)行仿真。
(1)寄存器傳輸級(RTL)仿真。
此級仿真是對設(shè)計的語法和基本功能進(jìn)行驗證(不含時序信息)。在RTL仿真階段,應(yīng)該建立一個測試臺。此測試臺可以在整個FPGA流程中進(jìn)行仿真驗證(RTL級、功能級、時序門級)。測試臺不但提供測試激勵與接收響應(yīng)信息,而且可以測試HDL仿真流程中的關(guān)鍵功能(如運算部件輸出值的正確性等)。測試臺的產(chǎn)生可以直接使用文本編程得到,也可以使用圖形化工具輸入,再由軟件翻譯為HDL格式,例如使用HDLBencher軟件利用其良好的波形輸入界面輸入測試激勵,再由其自動轉(zhuǎn)化為HDL格式而得到。
(2)針對特定的FPGA專有技術(shù)的仿真。
此級仿真是在綜合后、實現(xiàn)前而進(jìn)行的功能仿真。功能仿真一般驗證綜合后是否可以得到設(shè)計者所需要的正確功能,而且功能仿真的結(jié)果往往與RTL級仿真結(jié)果相同。
(3)門級仿真。
此級仿真是針對門級時序進(jìn)行的仿真,門級仿真體現(xiàn)出由于布局布線而產(chǎn)生的實際延時。在這個階段,仿真的結(jié)果和設(shè)計者選擇的FPGA型號有著直接的關(guān)系。由于不同的FPGA的內(nèi)部結(jié)果有所差異,因此同一個設(shè)計在不同F(xiàn)PGA型號上得到的門級仿真結(jié)果也是不同的。
評論