FPGACPLD應(yīng)用技術(shù) 數(shù)字系統(tǒng)的驗證_第1頁
FPGACPLD應(yīng)用技術(shù) 數(shù)字系統(tǒng)的驗證_第2頁
FPGACPLD應(yīng)用技術(shù) 數(shù)字系統(tǒng)的驗證_第3頁
FPGACPLD應(yīng)用技術(shù) 數(shù)字系統(tǒng)的驗證_第4頁
FPGACPLD應(yīng)用技術(shù) 數(shù)字系統(tǒng)的驗證_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

會計學(xué)1FPGACPLD應(yīng)用技術(shù)數(shù)字系統(tǒng)的驗證任務(wù):設(shè)計一個具有“百分秒、秒、分”計時功能的數(shù)字跑表,可以實現(xiàn)一個小時以內(nèi)精確百分之一秒的計時,具有復(fù)位、暫停功能,其設(shè)計方案框圖如圖5.1所示。要求復(fù)位信號高電平有效,對系統(tǒng)異步清零,暫停信號高電平有效,即高電平停止計數(shù),低電平繼續(xù)計數(shù),百分秒、秒、分鐘計數(shù)均采用BCD碼計數(shù)方式。第1頁/共36頁邏輯設(shè)計`timescale1ns/1nsModulepaobiao(clk,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);第2頁/共36頁3.Testbench設(shè)計在數(shù)字系統(tǒng)設(shè)計完成后,就要對設(shè)計電路進(jìn)行功能仿真,以驗證設(shè)計的正確性,這是本任務(wù)的核心步驟。編寫Testbench的主要目的是為了對使用硬件描述語言(HDL)設(shè)計的電路進(jìn)行仿真驗證,測試設(shè)計電路的功能、部分性能是否與預(yù)期的目標(biāo)相符。第3頁/共36頁moduletb_paobiao;reg clk,reset,pause;wire[3:0] ms_h,ms_l,s_h,s_l,m_h,m_l;paobiaou_paobiao(clk,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);//時鐘產(chǎn)生模塊initialbegin clk=1'b0;endalways #5clk=~clk;//復(fù)位信號產(chǎn)生initialbegin reset=1'b0; #100reset=1'b1; #10reset=1'b0;end//暫停信號產(chǎn)生initialbegin pause=1'b1; #300pause=1'b0; #119905pause=1'b1; #30pause=1'b0;endinitial$monitor($stime,,reset,,clk,,,pause,,ms_h,,ms_l,,s_h,,s_l,,m_h,,m_l);endmodule第4頁/共36頁Modelsim仿真1)新建project(1)選擇菜單File/new/project,彈出CreateProject對話框,如圖5.2所示。第5頁/共36頁Modelsim仿真1)新建project(2)添加文件到Project中在彈出的CreateProject對話框中點擊OK,彈出AdditemstotheProject對話框,選擇AddExistingFile,彈出CreateProjectFile對話框,如圖5.3所示。第6頁/共36頁Modelsim仿真1)新建project(3)在AddfileasType欄中選擇Verilog,點擊Browse,添加文件后的對話框,如圖5.4所示。第7頁/共36頁Modelsim仿真2)編譯源代碼點擊菜單Compile/Compileall,編譯后的文件狀態(tài)如圖5.5所示。第8頁/共36頁Modelsim仿真3)啟動仿真器點擊StartSimulation,啟動仿真器,如圖5.6所示。第9頁/共36頁Modelsim仿真3)啟動仿真器在work工作庫下找到testbench文件,并選中,然后點擊OK,如圖5.7所示。第10頁/共36頁Modelsim仿真4)執(zhí)行仿真將仿真信號添加到仿真波形窗口,用鼠標(biāo)選中仿真信號,選擇菜單Add/Wave/SelectedSignals,如圖5.8所示。第11頁/共36頁Modelsim仿真4)執(zhí)行仿真選擇菜單Simulation/Run/RunAll,執(zhí)行仿真,仿真波形如圖5.9所示。第12頁/共36頁ModelsimModelsim是Mentor公司開發(fā)的HDL硬件描述語言仿真軟件,該軟件可以用來實現(xiàn)對用戶設(shè)計的VHDL、Verilog或者兩種語言混合的程序進(jìn)行仿真,同時也支持IEEE常見的各種硬件描述語言標(biāo)準(zhǔn)。第13頁/共36頁使用Modelsim進(jìn)行功能仿真

1.新建工程

在Modelsim軟件中選擇“File”菜單下的“New”選項,選擇“Project”選項,打開如圖5.16所示的新建工程對話框。在該對話框中填寫工程名稱,路徑和庫。單擊“OK”按鈕,彈出如圖5.17所示的添加工程項目對話框。選擇向工程添加的項目類型,然后單擊“Close”按鈕完成工程的建立。這里選擇“AddExitingFile”項目。第14頁/共36頁使用Modelsim進(jìn)行功能仿真

2.加入文件在新建工程時,也可以不選擇添加的項目種類,而是在project欄里面單擊右鍵,在彈出的菜單中選擇“AddtoProject→ExistingFile”,如圖5.18所示。第15頁/共36頁使用Modelsim進(jìn)行功能仿真

3.編譯源代碼Verilog源文件的GUI模式的編譯方法是:直接執(zhí)行主窗口中“Compile”菜單下的各種不同的編譯命令,如圖5.20所示。第16頁/共36頁使用Modelsim進(jìn)行功能仿真

3.編譯源代碼當(dāng)文件窗口中“Status”欄的“﹖”圖標(biāo)變成一個“√”的圖標(biāo)時,說明文件編譯成功,如圖5.21所示。第17頁/共36頁使用Modelsim進(jìn)行功能仿真

4.啟動仿真器并加載頂層設(shè)計這一步驟的GUI操作方法:執(zhí)行主菜單中的Simulate/Simulate命令。打開開始仿真對話框,如圖5.24所示,選擇頂層模塊,如圖5.25所示。

第18頁/共36頁使用Modelsim進(jìn)行功能仿真

5.執(zhí)行仿真,查看波形右鍵單擊test,選擇“Add”選項下面的“AddtoWave”選項,為波形窗口添加信號,如圖5.26所示。

第19頁/共36頁使用Modelsim進(jìn)行功能仿真

5.執(zhí)行仿真,查看波形此時即可在新彈出的窗口中看到已添加的信號,如圖5.27所示。

第20頁/共36頁使用Modelsim進(jìn)行功能仿真

5.執(zhí)行仿真,查看波形單擊工具欄中的圖標(biāo)就能看見仿真結(jié)果了,如圖5.28所示。

第21頁/共36頁5.3Testbench設(shè)計方法通常Testbench沒有輸入與輸出端口,通常應(yīng)包括信號或變量定義,產(chǎn)生激勵波形語句,例化設(shè)計模塊,監(jiān)控和比較響應(yīng)輸出語句。5.3.1Testbench基本結(jié)構(gòu)moduletest_bench;

信號或變量定義聲明使用initial或always語句來產(chǎn)生激勵波形例化設(shè)計模塊監(jiān)控和比較輸出響應(yīng)endmodule第22頁/共36頁5.3Testbench設(shè)計方法HDL用于描述硬件電路,同樣也可以用于描述仿真激勵的產(chǎn)生。HDL描述可以產(chǎn)生所需要的控制信號,以及一些簡單的數(shù)據(jù)。5.3.2簡單CPU接口激勵產(chǎn)生方式initialbegin cs_n=1;//CPU接口初始狀態(tài)

wr_n=1; rd_n=1; addr=8’hxx; data=8’hzz; #1000; //一次寫操作

cs_n=0;

wr_n=0; addr=8’h80; data=8’h00; #100; cs_n=1;wr_n=1;#10;addr=8’hxx;data=8’hzz;end第23頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式1)產(chǎn)生時鐘的幾種方式(1)使用initial方式產(chǎn)生占空比為50%的時鐘initialbegin clk=0; #delay; forever #(period/2)clk=~clk;end第24頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式1)產(chǎn)生時鐘的幾種方式(2)使用always方式initial clk=0;always #(period/2)clk=~clk;第25頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式1)產(chǎn)生時鐘的幾種方式(3)使用repeat方式產(chǎn)生確定數(shù)目的時鐘脈沖initialbegin clk=0;repeat(6)

#(period/2)clk=~clk;end第26頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式1)產(chǎn)生時鐘的幾種方式(4)產(chǎn)生占空比非50%的時鐘initial clk=0;alwaysbegin #3clk=~clk; #2clk=~clk;end第27頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式2)產(chǎn)生復(fù)位信號的幾種方式(1)異步復(fù)位initialbegin rst=1; #100; rst=0; #500; rst=1;end第28頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式2)產(chǎn)生復(fù)位信號的幾種方式(2)同步復(fù)位1initialbegin rst=1; @(negedgeclk);//等待時鐘下降沿

rst=0; #30; @(negedgeclk);//等待時鐘下降沿

rst=1;end第29頁/共36頁5.3Testbench設(shè)計方法5.3.4常用產(chǎn)生激勵描述方式2)產(chǎn)生復(fù)位信號的幾種方式(3)同步復(fù)位2initialbegin rst=1; @(negedgeclk); //等待時鐘下降沿

repeat(3)@(negedgeclk);//經(jīng)過3個時鐘下降沿

rst=1;end第30頁/共36頁5.4常用的Verilog測試語句1.$display/$monitor//在終端上打印信號的ASCII值initialbegin $timeformat(-9,1,“ns”,12);//設(shè)置輸出時鐘格式

$display(“stimeclkrstpausems_hms_ls_hs_lm_hm_l”);//顯示輸入的字符串

$monitor(“%t%b%b%b%b%b%b%b%b”,//設(shè)置輸出信號格式

$realtime,clock,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);//指定輸出的信號end$display是將函數(shù)內(nèi)部雙引號中的字符串輸出在終端上。而$monitor則不同,它的輸出是事件驅(qū)動的。在例子中,$monitor信號列表中的$realtime信號變化會觸發(fā)終端顯示事件的發(fā)生,該信號被設(shè)計者對應(yīng)到仿真時間中,每次$monitor的觸發(fā)將會把信號列表中的信號值顯示在終端中。$monitor語句中的“%”用于定義信號列表中信號的輸出格式。例如,%t將信號按照時間格式輸出,%b將信號按照二進(jìn)制格式輸出。另外VerilogHDL語言還提供了其它的輸出格式,比如%h為十六進(jìn)制輸出,%d為十進(jìn)制輸出,%o為八進(jìn)制輸出等。第31頁/共36頁5.4常用的Verilog測試語句2.timescales'timescale1ns/1ps//度量參考為1ns,精度為1psmoduletestbench; … initialbegin #10rst=1;//10個仿真時間延時,相當(dāng)于10x1ns=10ns的仿真時間

… end initialbegin //display語句將在每一個仿真推進(jìn)布進(jìn)中執(zhí)行,也就是1ps執(zhí)行一次

$display(''%d,rst=%b"m$time,rst); endendmodule'timescalereference_time/precision其中reference_time是單位時間的度量,precision決定了仿真的推進(jìn)延遲精度,同時也設(shè)置了仿真的推進(jìn)步進(jìn)單位。第32頁/共36頁5.4常用的Verilog測試語句3.force/releasemodule testbench; ... initialbegin rst=1;//在仿真時間零點將rst賦值1 forcedata=101;//在仿真時間零點強(qiáng)制使data為101,并保持

#30rst=0;//在仿真絕對時間30將rst賦值0 #50releasedata;//在仿真絕對時間80釋放

...//data值將保持直到下一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論