題目說明
編寫一個創建模塊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
點擊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
點擊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
點擊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
點擊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
點擊Submit,等待一會就能看到下圖結果:
注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。
這一題就結束了。
審核編輯:劉清
-
Verilog
+關注
關注
28文章
1345瀏覽量
109996 -
HDL
+關注
關注
8文章
327瀏覽量
47344 -
時鐘信號
+關注
關注
4文章
445瀏覽量
28512 -
CLK
+關注
關注
0文章
127瀏覽量
17129
原文標題:HDLBits: 在線學習 SystemVerilog(二十四)-Problem 163-177(TestBench)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論