Quartus II+Modelsim各種仿真驗證


Quartus II+Modelsim各種仿真驗證

CrazyBingo

2012-3-2

參考無雙oo前輩的博文:

http://www.cnblogs.com/oomusou/archive/2009/01/30/modelsim_pre_post_simulate.html

參考book:《Altera FPGA/CPLD設計 初級篇》第二版

一、FPGA的設計驗證流程

wps_clip_image-20532

圖1:FPGA/CPLD設計完整流程

wps_clip_image-20305

圖2:FPGA/CPLD設計簡要流程

wps_clip_image-2443

圖3:Quartus II中編譯步步為營

二、仿真步驟各種概念與步驟

1) 前仿真

前仿真,即功能仿真,用專用放着工具對設計進行功能仿真,驗證電路功能是否符合設計要求。通過功能仿真能即使發現設計中的錯誤,加快設計進度,提高設計的可靠性。

2) 綜合后的仿真

把綜合生成的標准延時反標注到綜合仿真模型去,可估計門延時帶來的影響,但是只能估計門延時,不能估計線延時,仿真結果和部先后的實際情況還有一定的差距,並不十分准確。

由於目前綜合工具比較成熟,一般省去此環節的仿真。而且在Quartus II中,直接進行下一步仿真。

3) 布局布線后的仿真

即時序仿真。布局布線后生成的仿真延時文件最全,不僅包括門延時,還包括布線延時,所以最為准確,能較好的反映芯片的實際工作情況。

一般來說,布局布線必須進行,以此確保設計的可靠性和穩定性,發現時序違規(Timing Violation)。

4) 板級仿真

在有些高速設計的情況下,還需要使用第三方板級驗證工具進行仿真與測試,入MentorTau、Forte Design-Timing Designer、Mentor Hyperlynx、Mentor ICX、Cadence SPECCTRAQuest、Synopsys HSPICE。這些工具通過設計的IBIS和HSPICE等模型的仿真,能較好的分析高速設計信號的完整性、電磁干擾(EMI)等電路特性。

5) 在線仿真

在加載配置目標板之后,設計者在必要情況下要進行的一個步驟,就是在線仿真調試,利用Quartus II自帶SignalTap II在線邏輯分析儀進行分析,通過JTAG口,在線、實時讀取FPGA內部信號。

一般在我們的設計中但是在我們小型設計中,時序要求不是很嚴格的情況下,可以省略時序仿真,只進行功能仿真(綜合后的仿真一般只在IC設計中用到,一般軟件能勝任綜合工作,全程編譯直接綜合→布局布線);大型設計或時序非常嚴謹的情況下,務必進行時序仿真,驗證時序是否違規,進而用timequest進行約束(可以用Quartus II內嵌的靜態時序分析(STA),或者第三方(Synopsys的Fprmality、PrimeTime),也可以用Quartus II內嵌的Chip Editor分析芯片內部的連接於配置情況。)。另外在高速電路設計時,為了保證設計的可靠性,務必在時序仿真之后,還要進行一些板級驗證。

三、Quartus II 進行功能&時序仿真

(一)Quartus II仿真相關

就算不用第三方軟件,Quartus II自個兒也能完成功能仿真和時序仿真,只是波形仿真器不適合龐大的時序,gui做的比較戳罷了。

在Quartus II兩種仿真,軟件分為“function”與“timing”,還有快速時序仿真模型,即功能仿真與時序仿真,可在Device中的Simulator Setting時鍾設置。一般我們直接進行或者軟件默認為Timing時序仿真。

wps_clip_image-15706

(二)功能仿真

(1)在Setting中設置Simulator為Functional功能仿真

wps_clip_image-7906

wps_clip_image-22044

(2)生成功能仿真網標文件

wps_clip_image-25836

(3)輸入激勵后進行功能仿真,如下圖所示:

wps_clip_image-823

(三)時序仿真

(1)在Simulation Setting中選擇Timing時序仿真

wps_clip_image-20371

(2)Start simulation,如下圖,可以看到時序延時(門級延時與布線延時)

wps_clip_image-7795

四、Q2+Modelsim進行功能&時序仿真

(一)Modelsim仿真相關

Modelsim是業界最優秀的HDL語言仿真器,但是更專業更牛逼,對於龐大的工程,復雜的時序,如果想Quartus II那樣輸入激勵,坐等蛋碎吧……

相對於Quartus II而言,Modelsim也有功能仿真與時序仿真,只不過功能仿真可以自給自足,而時序仿真需要Quartus II 綜合后的網標文件.vo才能進行。

Altera為了用戶方便,直接發布了altera版的modelsim,當然必須對應版本才能進行自動仿真。

wps_clip_image-22760

在滿足軟件版本要求的同時,需要在Quartus II Tool→Option中設置第三方軟件路徑,如下所述:

wps_clip_image-11133

對於小白(我是小白)而言,modelsim可以通過在Quartus II的設置自動運行,進行時序仿真或者功能仿真。不過Altera軟件中稱為RTL級仿真與Gate Level門級仿真,分別對應功能仿真、時序仿真。

wps_clip_image-2129

(二)功能仿真

(1)在Quartus EDA Tool Setting→Simulate中設置

如下圖,在功能仿真的時候,不用選擇在編譯后進行門級(時序仿真)

wps_clip_image-9415

(2)設置自動生成功能仿真網標

wps_clip_image-25725

(3)添加testbench文件

wps_clip_image-7236

(4)編譯,Run RTL Simulation,即功能仿真

wps_clip_image-11687

(5)Quartus II+Altera Modelsim會自動完成Modelsim各種各種設置,直到仿真結束,如下:

wps_clip_image-14092

(三)時序仿真

(1)如在一開始設置中,選中在編譯后自動進行門級仿真(時序仿真),軟件會在編譯后自動進行仿真,知道仿真結束,設置如下圖:

wps_clip_image-27427

(2)當然,也可以在功能仿真的基礎上,直接Run gate level仿真即時序仿真

wps_clip_image-28256

(3)Quartus II + Modelsim自動加載,時序仿真結果如下圖所示:

wps_clip_image-24938

(四)偷懶調試法

在完成功能仿真,或者時序仿真最后一步之后,Modelsim已經出現了仿真結果,此時還可以進行“深度”調試:

(1)run 500ns(你隨意),用以增加仿真時間

wps_clip_image-16045

(2)Restart復位,重新來過wps_clip_image-18411

(3)修改testbench測試文件,重新編譯testbench文件,繼續進行調試

wps_clip_image-15504

(4)完了,對於龐大的工程,當然建議在Modelsim中建立工程,獨立運行。預知結果如何,傾聽下回分解!

wps_clip_image-4918


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM