7.1??FPGA設(shè)計(jì)仿真驗(yàn)證的原理和方法
7.1.1??FPGA設(shè)計(jì)仿真驗(yàn)證
嚴(yán)格來(lái)講,FPGA設(shè)計(jì)驗(yàn)證包括功能與時(shí)序仿真和電路驗(yàn)證。仿真是指使用設(shè)計(jì)軟件包對(duì)已實(shí)現(xiàn)的設(shè)計(jì)進(jìn)行完整測(cè)試,模擬實(shí)際物理環(huán)境下的工作情況。
功能仿真是指僅對(duì)邏輯功能進(jìn)行測(cè)試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)的要求。仿真過(guò)程沒(méi)有加入時(shí)序信息,不涉及具體器件的硬件特性,如延時(shí)特性等,因此也叫前仿真。它是對(duì)HDL硬件設(shè)計(jì)語(yǔ)言的功能實(shí)現(xiàn)能力進(jìn)行仿真,以確保HDL語(yǔ)言描述能夠滿足設(shè)計(jì)者的最初意圖。
時(shí)序仿真則是在HDL可以滿足設(shè)計(jì)者功能要求的基礎(chǔ)上,在布局布線后,提取有關(guān)的器件延遲、連線延時(shí)等時(shí)序參數(shù),并在此基礎(chǔ)上進(jìn)行的仿真,也稱為后仿真,它是接近真實(shí)器件運(yùn)行的仿真。
如圖7.1所示是FPGA設(shè)計(jì)仿真驗(yàn)證的基本方法。
圖7.1??FPGA設(shè)計(jì)仿真驗(yàn)證基本方法
?
7.1.2??FPGA設(shè)計(jì)仿真的切入點(diǎn)
在FPGA的設(shè)計(jì)中,完整的設(shè)計(jì)流程往往會(huì)涉及多個(gè)EDA工具,比如設(shè)計(jì)輸入工具、綜合工具、布局布線工具、仿真工具等。如何將這些EDA工具進(jìn)行適當(dāng)?shù)慕Y(jié)合,在符合各個(gè)工具接口情況下發(fā)揮各個(gè)工具的特長(zhǎng),是每一個(gè)FPGA設(shè)計(jì)工程師都要面臨的問(wèn)題。
如圖7.2所示是利用仿真工具M(jìn)odelSim與綜合工具FPGA?Compiler?II及布線工具Foundation?Series或Quartus相配合實(shí)現(xiàn)FPGA設(shè)計(jì)的流程圖。
圖7.2??FPGA設(shè)計(jì)仿真切入點(diǎn)
?
在設(shè)計(jì)輸入階段,由于Modelsim僅支持VHDL或Verilog?HDL,所以在選用多種設(shè)計(jì)輸入工具時(shí),可以使用文本編輯器完成HDL語(yǔ)言的輸入。當(dāng)然也可以利用相應(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系列都帶有將狀態(tài)轉(zhuǎn)換圖翻譯成HDL文本的設(shè)計(jì)工具。
從圖7.2可以看出,在FPGA設(shè)計(jì)過(guò)程中,有3處可以使用Modelsim進(jìn)行仿真。
(1)寄存器傳輸級(jí)(RTL)仿真。
此級(jí)仿真是對(duì)設(shè)計(jì)的語(yǔ)法和基本功能進(jìn)行驗(yàn)證(不含時(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格式而得到。
(2)針對(duì)特定的FPGA專有技術(shù)的仿真。
此級(jí)仿真是在綜合后、實(shí)現(xiàn)前而進(jìn)行的功能仿真。功能仿真一般驗(yàn)證綜合后是否可以得到設(shè)計(jì)者所需要的正確功能,而且功能仿真的結(jié)果往往與RTL級(jí)仿真結(jié)果相同。
(3)門級(jí)仿真。
此級(jí)仿真是針對(duì)門級(jí)時(shí)序進(jìn)行的仿真,門級(jí)仿真體現(xiàn)出由于布局布線而產(chǎn)生的實(shí)際延時(shí)。在這個(gè)階段,仿真的結(jié)果和設(shè)計(jì)者選擇的FPGA型號(hào)有著直接的關(guān)系。由于不同的FPGA的內(nèi)部結(jié)果有所差異,因此同一個(gè)設(shè)計(jì)在不同F(xiàn)PGA型號(hào)上得到的門級(jí)仿真結(jié)果也是不同的。