淺談?dòng)肕odelSim+Synplify+Quartus來實(shí)現(xiàn)Altera FPGA的仿真
出處:fyb1983 發(fā)布于:2011-09-02 08:10:38
工作內(nèi)容:
Mentor公司的ModelSim是業(yè)界秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺無關(guān),便于保護(hù)IP核,個(gè)性化的圖形界面和用戶接口,為用戶加快調(diào)錯(cuò)提供強(qiáng)有力的手段,是FPGA/ASIC設(shè)計(jì)的仿真軟件。
Synplify、Synplify Pro和Synplify Premier是Synplicity(Synopsys公司于2008年收購了Synplicity公司)公司提供的專門針對FPGA和CPLD實(shí)現(xiàn)的邏輯綜合工具,Synplicity的工具涵蓋了可編程邏輯器件(FPGAs、PLDs和CPLDs)的綜合,驗(yàn)證,調(diào)試,物理綜合及原型驗(yàn)證等領(lǐng)域。Quartus® II design 是和復(fù)雜的,用于system-on-a-programmable-chip (SOPC)的設(shè)計(jì)環(huán)境。 QuartusII design 提供完善的 timing closure 和 LogicLock? 基于塊的設(shè)計(jì)流程。QuartusII design是一個(gè)包括以timing closure 和 基于塊的設(shè)計(jì)流為基本特征的programmable logic device (PLD)的軟件。 Quartus II 設(shè)計(jì)軟件改進(jìn)了性能、提升了功能性、解決了潛在的設(shè)計(jì)延遲等,在工業(yè)領(lǐng)域率先提供FPGA與mask-programmed devices開發(fā)的統(tǒng)一工作流程。
1、設(shè)計(jì)一個(gè)多路選擇器,利用ModelSimSE做功能仿真;多路選擇器是數(shù)據(jù)選擇器的別稱。在多路數(shù)據(jù)傳送過程中,能夠根據(jù)需要將其中任意一路選出來的電路,叫做數(shù)據(jù)選擇器,也稱多路選擇器或多路開關(guān)。
2、利用Synplify Pro進(jìn)行綜合,生成xxx.vqm文件;
3、利用Quartus II導(dǎo)入xxx.vqm進(jìn)行自動(dòng)布局布線,并生成xxx.vo(Verilog
4、利用ModelSimSE做后仿真,看是否滿足要求。
注:
1. 仿真器(Simulator)是用來仿真電路的波形。仿真器(emulator)以某一系統(tǒng)復(fù)現(xiàn)另一系統(tǒng)的功能。與計(jì)算機(jī)模擬(Computer Simulation)的區(qū)別在于,仿真器致力于模仿系統(tǒng)的外在表現(xiàn)、行為,而不是模擬系統(tǒng)的抽象模型。請參閱仿真和模擬詞條。
2. 綜合工具(Synthesizer)的功能是將HDL轉(zhuǎn)換成由電路所組成的Netlist.
3. 一般而言,在電路設(shè)計(jì)的仿真上可分為Pre-Sim 和Post-Sim.Pre-Sim 是針而Post-Sim則是針對綜合過且做完成了Auto Place and Route(APR)的電路進(jìn)行仿真,以確保所設(shè)計(jì)的電路實(shí)現(xiàn)在FPGA上時(shí),與Pre-Sim 的功能一樣。多路選擇器還包括總線的多路選擇,模擬信號的多路選擇等,相應(yīng)的器件也有不同的特性和使用方法。具體可以查找相關(guān)網(wǎng)站 .
1、前仿真(Pre-Sim)
步驟一:打開ModelSimSE,然后建立一個(gè)Project;
建立Project的方式為點(diǎn)選File → New → Project…;
設(shè)定Project Name 與Project location,按OK 即可建立Project.

步驟二:新增設(shè)計(jì)文檔或加入文檔。
新增文檔的方式為點(diǎn)選File → New → Source → Verilog,然后對文檔進(jìn)行編輯并儲存為xxx.v;
加入文檔的方式為點(diǎn)選File → Add to Project → File…,然后點(diǎn)選xxx.v;

步驟三:編譯(Compile)。
編譯文檔的方式為點(diǎn)選Compile → Compile All,即可編譯所有的文檔。
如果編譯時(shí)發(fā)生錯(cuò)誤,在顯示錯(cuò)誤的地方(紅字)點(diǎn)兩下,即可跳到錯(cuò)誤。

步驟四:新增或加入測試平臺(Testbench)。
當(dāng)設(shè)計(jì)完電路后,為了確定所設(shè)計(jì)的電路是否符合要求,我們會寫一個(gè)測 試平臺(Testbench);
新增或加入測試平臺,然后編譯它。
步驟五:仿真(Simulate)。
仿真的方式為點(diǎn)選Simulate → Simulate…;
打開Design里面的work,然后點(diǎn)選mux_4_to_1_tb 并Add 它,按Load 即可跳到仿真窗口。

步驟六:加入信號線。
在窗口上按右鍵,然后點(diǎn)選Add → Add to Wave;

步驟七:看波形。
在工具列上按Run,然后就會顯示波形;
慢慢看波形吧,沒有波形就沒有真相.

以上就是使用ModelSim做Pre-Sim的基本流程,在此要特別強(qiáng)調(diào)的是,ModelSim所有的功能并不僅僅于此,如果你想要了解更多的話,一切都要靠自己花時(shí)間去問去試,只有努力的人才能有豐富的收獲,加油!
2、綜合(Synthesis)
步驟一:打開Synplify Pro,然后建立一個(gè)Project.
先點(diǎn)選File,再點(diǎn)選New;
選擇Project File,并設(shè)定File Name與File Location;

步驟二:加入設(shè)計(jì)文件。
點(diǎn)選欲加入的xxx.v,然后按Add,再按OK后就可以將檔案加入。

步驟三:選擇FPGA的Device 與其它相關(guān)設(shè)定。
先點(diǎn)選Project,再點(diǎn)選Implementation Options.
在Device 的設(shè)定如下:Technology為Altera Stratix,Part為EP1S10,Speed 為-6,Package 為FC780.
在Options 的設(shè)定是將FSM Compiler與Resource Sharing打勾。
在Constraints的設(shè)定是將Frequency設(shè)定至100Mhz.
在Implementation Results的設(shè)定是將Result File Name填入與電路模塊相同的名稱,而xxx.vgm這個(gè)文件會在QuartusII做APR時(shí)被使用。然后將下列兩個(gè)選項(xiàng)打勾(Write Vendor Constraint File與Write Mapped Verilog Netlist)。
在Timing Report的設(shè)定是將Number of Critical Paths與Number of Start/End Points都設(shè)為11.
在Verilog里是將TOP Level Module填入與電路模塊相同的名稱,然后將 Use Verilog 2001打勾。

步驟四:綜合(Synthesis)。
點(diǎn)選RUN → Synthesize,出現(xiàn)Done!就是已經(jīng)綜合完畢。
步驟五:檢查綜合后的電路。
先點(diǎn)選HDL Analyst,再點(diǎn)選RTL,點(diǎn)選Hierarchal View,畫面會出現(xiàn)綜合后的電路Netlist.

以上就是使用Synplify將HDL程序合成為電路Netlist的基本流程,值得注意的是,當(dāng)你針對不同要求而設(shè)定的Constraints不同時(shí),你就會得到不同的電路Netlist,所要付出的硬件代價(jià)也不同,這就需要大家多花點(diǎn)心思來了解其中的奧妙之處。
3、自動(dòng)布局布線(APR)
步驟一:開啟Quartus II,然后建立一個(gè)Project.
先點(diǎn)選File,再點(diǎn)選New Project Wizard…
設(shè)定Work Directory,Project Name與Top-Level Entity Name,再按Next.

步驟二:加入設(shè)計(jì)文件。
點(diǎn)選Add…,將Synplify合成出來的xxx.vqm加入,再按Next.

步驟三:設(shè)定相關(guān)的EDA Tools.
在Tool Type點(diǎn)選Simulation,Tool Name點(diǎn)選ModelSim.

點(diǎn)選Settings,將Time Scale設(shè)定為1 ns.

步驟四:設(shè)定Family.
設(shè)定Family為Stratix,再按Next.

步驟五:設(shè)定Device.
設(shè)定Device 為EP1S10F780C6,再按Finish,即可完成Project的設(shè)定。

步驟六:編譯。
點(diǎn)選Processing → Start Compilation,即可開始編譯。

步驟七:完成編譯。
彈出下面窗口即代表編譯完畢。

以上就是使用Quartus II對電路Netlist做APR的基本流程,并且利用設(shè)定仿真工具所產(chǎn)生的xxx.vo(Verilog Output File)與xxx.sdo(Standard Delay Output File)做后仿真。
4、后仿真(Post-Sim)
步驟一:啟動(dòng)ModelSim,然后建立一個(gè)Project.
建立Project的方式為點(diǎn)選File → New → Project…
設(shè)定Project Name與Project location,按OK即可建立Project.
步驟二:加入設(shè)計(jì)文檔。
將xxx.vo更改為xxx.v,然后加入。
步驟三:加入組件庫文件。
由于我們是采用Altera的Cell Library來合成電路,所以合成后的電Netlist里所包括的那些Logic Gates與Flip-Flop 都是出自于Cell Library,所以模擬時(shí)要將此Cell Library加入。
我們所選用的Family是Stratix,所以到QuartusIIedasim_lib 里將Stratix的Cell Library(stratix_atoms.v)加入。
步驟四:加入測試平臺。
加入Pre-Sim的測試平臺,并在測試平臺里加上`timescale 1ns/100ps.
步驟五:編譯。
編譯檔案的方式為點(diǎn)選Compile → Compile All,即可編譯所有的檔案。
如果編譯時(shí)發(fā)生錯(cuò)誤,在顯示錯(cuò)誤的地方(紅字)點(diǎn)兩下,即可跳到錯(cuò)誤。
步驟六:仿真。
仿真文件的方式為點(diǎn)選Simulate → Simulate…
步驟七:加入要觀察的信號。
在窗口上按右鍵,然后點(diǎn)選Add → Add to Wave.
步驟八:觀察波形。

慢慢看波形吧,沒有波形就沒有真相
步驟九:比對Pre-Sim 與Post-Sim.
很明顯地,Post-Sim 的輸出有不穩(wěn)定的信號,并且受到延遲時(shí)間的影響。


版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04
- 高速PCB信號完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









