[page_break] 本文適合初學(xué)者,源代碼:mux4_to_1.v
工作內(nèi)容:
1、設(shè)計(jì)一個(gè)多路選擇器,利用ModelSimSE做功能仿真;
2、利用Synplify Pro進(jìn)行綜合,生成xxx.vqm文件;
3、利用Quartus II導(dǎo)入xxx.vqm進(jìn)行自動(dòng)布局布線,并生成xxx.vo(Verilog
4、利用ModelSimSE做后仿真,看是否滿(mǎn)足要求。
注:
1. 仿真器(Simulator)是用來(lái)仿真電路的波形。
2. 綜合工具(Synthesizer)的功能是將HDL轉(zhuǎn)換成由電路所組成的Netlist。
3. 一般而言,在電路設(shè)計(jì)的仿真上可分為Pre-Sim 和Post-Sim。Pre-Sim 是針而Post-Sim則是針對(duì)綜合過(guò)且做完成了Auto Place and Route(APR)的電路進(jìn)行仿真,以確保所設(shè)計(jì)的電路實(shí)現(xiàn)在FPGA上時(shí),與Pre-Sim 的功能一樣。
1、前仿真(Pre-Sim) 步驟一:打開(kāi)ModelSimSE,然后建立一個(gè)Project;
※建立Project的方式為點(diǎn)選File → New → Project…;
※設(shè)定Project Name 與Project location,按OK 即可建立Project。
步驟二:新增設(shè)計(jì)文檔或加入文檔。
※新增文檔的方式為點(diǎn)選File → New → Source → Verilog,然后對(duì)文檔進(jìn)行編輯并儲(chǔ)存為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ò)誤。
步驟四:新增或加入測(cè)試平臺(tái)(Testbench)。
※當(dāng)設(shè)計(jì)完電路后,為了確定所設(shè)計(jì)的電路是否符合要求,我們會(huì)寫(xiě)一個(gè)測(cè) 試平臺(tái)(Testbench);
※ 新增或加入測(cè)試平臺(tái),然后編譯它。
步驟五:仿真(Simulate)。
※仿真的方式為點(diǎn)選Simulate → Simulate…;
※打開(kāi)Design里面的work,然后點(diǎn)選mux_4_to_1_tb 并Add 它,最后按Load 即可跳到仿真窗口。
步驟六:加入信號(hào)線。
※ 在窗口上按右鍵,然后點(diǎn)選Add → Add to Wave;
步驟七:看波形。
※在工具列上按Run,然后就會(huì)顯示波形;
※慢慢看波形吧,沒(méi)有波形就沒(méi)有真相!
以上就是使用ModelSim做Pre-Sim的基本流程,在此要特別強(qiáng)調(diào)的是,ModelSim所有的功能并不僅僅于此,如果你想要了解更多的話(huà),一切都要靠自己花時(shí)間去問(wèn)去試,只有努力的人才能有豐富的收獲,加油!
2、綜合(Synthesis)
步驟一:打開(kāi)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填入與電路模塊相同的名稱(chēng),而xxx.vgm這個(gè)文件會(huì)在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填入與電路模塊相同的名稱(chēng),然后將 Use Verilog 2001打勾。
步驟四:綜合(Synthesis)。
※點(diǎn)選RUN → Synthesize,最后出現(xiàn)Done!就是已經(jīng)綜合完畢。
步驟五:檢查綜合后的電路。
※先點(diǎn)選HDL Analyst,再點(diǎn)選RTL,最后點(diǎn)選Hierarchal View,畫(huà)面會(huì)出現(xiàn)綜合后的電路Netlist。
以上就是使用Synplify將HDL程序合成為電路Netlist的基本流程,值得注意的是,當(dāng)你針對(duì)不同要求而設(shè)定的Constraints不同時(shí),你就會(huì)得到不同的電路Netlist,所要付出的硬件代價(jià)也不同,這就需要大家多花點(diǎn)心思來(lái)了解其中的奧妙之處。