題目說明
編寫一個創建模塊dut實例(具有任何實例名稱)的測試平臺,并創建一個時鐘信號來驅動模塊的clk輸入。時鐘周期為 10 ps。時鐘應初始化為零,其第一個轉換為 0 到 1。
模塊端口聲明
moduletop_module();
題目解析
生成clock有很多種方式,常見的就是forever和always。
timeunit1ps; timeprecision1ps; moduletop_module(); logicclk; dutu1_dut( .clk(clk) ); initialbegin clk<=?1'b0?; ????end ???? ????always?#5?clk?<=?~clk?; ? endmodule
![93e47c44-c01c-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/99/AE/wKgaomTndCeAfcGeAAEH_la9kVg985.png)
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
Problem 174-tb1
題目說明
創建一個 Verilog 測試臺,它將為輸出 A 和 B 生成以下波形
模塊端口聲明
moduletop_module(outputregA,outputregB);
題目解析
initial+# n即可。
timeunit1ps; timeprecision1ps; moduletop_module(outputlogicA, outputlogicB);// //generateinputpatternshere initialbegin A<=1'b0?; ????????B?<=1'b0?; ????????#10?; ????????A?<=?1'b1?; ????????B?<=?1'b0?; ????????#5?; ????????A?<=?1'b1?; ????????B?<=?1'b1?; ????????#5?; ????????A?<=?1'b0?; ????????B?<=?1'b1?; ????????#20?; ????????A?<=?1'b0?; ????????B?<=?1'b0?; ????end endmodule
![9446c25a-c01c-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/99/AE/wKgaomTndCeAEoXgAAFOY5V65WA937.png)
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
Problem 175-and
題目說明
給給定的與門寫測試文件,波形參考下圖。
模塊端口聲明
moduletop_module();
題目解析
和上一題類似。
timeunit1ps; timeprecision1ps; moduletop_module(); logic[1:0]in; wirelogicout; andgateu_andgate( .in(in), .out(out) ); initialbegin in<=?2'b00?; ????????#10?; ????????in?<=?2'b01?; ????????#10?; ????????in?<=?2'b10?; ????????#10?; ????????in?<=?2'b11?; ????end?? ???????? endmodule
![94aa31a0-c01c-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/99/AE/wKgaomTndCiAcyQYAAE28TH82Jo711.png)
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
Problem 176-tb2
題目說明
給定一個q7電路,按照下圖編寫testbench:
模塊端口聲明
moduletop_module();
題目解析
timeunit1ps; timeprecision1ps; moduletop_module(); logicclk; logicin; logic[2:0]s; wirelogicout; q7u1_q7( .clk(clk), .in(in), .s(s), .out(out) ); initialbegin clk<=?1'b0?; ????????forever ????????#5?clk?<=?~clk?; ????end ???? ????initial?begin ????????in?<=?1'b0?; ????????s??<=?3'd2?; ????????#10?; ????????in?<=?1'b0?; ????????s??<=?3'd6?; ????????#10?; ????????in?<=?1'b1?; ????????s??<=?3'd2?; ????????#10?; ????????in?<=?1'b0?; ????????s??<=?3'd7?; ????????#10?; ????????in?<=?1'b1?; ????????s??<=?3'd0?; ????????#30?; ????????in?<=?1'b0?; ????????s??<=?3'd0?; ????end ???????? endmodule
![950701c8-c01c-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/99/AE/wKgaomTndCiAY-RRAAFcYYnWjFM765.png)
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
Problem 177-tff
題目說明
給題目中給定的tff編寫測試文件。
模塊端口聲明
moduletop_module();
題目解析
timeunit1ps; timeprecision1ps; moduletop_module(); logicclk; logicreset; logict; wirelogicq; tffu_tff( .clk(clk), .reset(reset), .t(t), .q(q) ); initialbegin clk<=?1'b0?; ????????forever ????????#5 ????????clk?<=?~clk?; ????end ???? ????initial?begin ????????reset?<=?1'b0?; ????????t?<=?1'b0?; ????????#3; ????????reset?<=?1'b1?; ????????t?<=?1'b1?; ????????#10; ????????reset?<=?1'b0?; ????????t?<=?1'b1?; ????end ? endmodule
![95681742-c01c-11ed-bfe3-dac502259ad0.png](https://file1.elecfans.com//web2/M00/99/AE/wKgaomTndCiALtNLAAGOYTfYF1I195.png)
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
審核編輯:劉清
-
Verilog
+關注
關注
28文章
1351瀏覽量
110397 -
HDL
+關注
關注
8文章
328瀏覽量
47469 -
時鐘信號
+關注
關注
4文章
453瀏覽量
28666 -
CLK
+關注
關注
0文章
127瀏覽量
17236
原文標題:HDLBits: 在線學習 SystemVerilog(二十四)-Problem 163-177(TestBench)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何在PetaLinux流程外創建模塊
FPGA固件開發- 測試平臺的編寫
數字IC驗證之“構成uvm測試平臺的主要組件”(4)連載中...
Simulink建模仿真實例快速入門
Verilog HDL硬件描述語言_建模實例
PCB設計:網絡分析儀測試DUT出現2個差不多的阻抗?
VHDL測試平臺編寫綜述
![VHDL<b class='flag-5'>測試</b><b class='flag-5'>平臺</b><b class='flag-5'>編寫</b>綜述](https://file.elecfans.com/web1/M00/DB/CA/pIYBAGAH33OAGxRAAABsi6CnXp8933.png)
評論