91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何寫testbench的verilog代碼

發布時間:2021-12-23 09:37:42 來源:億速云 閱讀:362 作者:柒染 欄目:互聯網科技

如何寫testbench的verilog代碼,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

使用的FPGA開發板:xilinx KC705
開發環境: vivado2019.1

Readme:
昨天在流水燈的代碼中添加了“按鍵消抖”功能。上板也進行了測試,測試結果OK。
但是對于有些上板測試,有時候還不能完全反應出邏輯設計時的意思。
因此,還是需要testbench測試下仿真的波形,通過波形來看,是不是真的完全表達了設計的初衷。

正文:
1.編寫測試文件的思路
通常,編寫測試文件的過程如下:
1)產生模擬激勵(波形);
2)將產生的激勵加入到被測試模塊中并觀察其響應;
3) 將輸出響應與期望值相比較

2.怎么寫
1)建立仿真文件
如何寫testbench的verilog代碼

文件命名:文件命名保持一致,后邊加一個尾綴“tb”,表示testbench.
如何寫testbench的verilog代碼
此時,出來一個空文件:
如何寫testbench的verilog代碼

  1. 編寫內容
    了解下testbench 的基本架構

module Test_bench();//通常無輸入無輸出//信號或變量聲明定義//邏輯設計中輸入對應 reg 型//邏輯設計中輸出對應 wire 型reg  key_in;//邏輯設計中輸入對應 reg 型reg  rst_n;reg  clk;reg [7:0] cnt;wire key_out;//邏輯設計中輸出對應 wire 型//1.使用 initial 或 always 語句產生激勵// 一般包括:時鐘,復位,以及(模擬)產生測試的輸入信號//2.例化待測試模塊
 key_noshake
#(.cnt_max(8'd100))key_noshake_inst(.key_in(key_in),.rst_n(rst_n),.clk(clk),.key_out(key_out));  //3.監控和比較輸出響應//觀察仿真后的輸出波形即可endmodule

3)完整代碼如下:

`timescale 1ns / 1ps//// Company: // Engineer: // // Create Date: 2021/03/12 10:58:46// Design Name: // Module Name: key_noshake_tb// Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //module key_noshake_tb();//通常無輸入無輸出//信號或變量聲明定義reg  key_in;//邏輯設計中輸入對應 reg 型reg  rst_n;reg  clk;reg [7:0] cnt;wire key_out;//邏輯設計中輸出對應 wire 型//1.使用 initial 或 always 語句產生激勵    initial 
    begin
        clk=1'b1;rst_n=1'b0;#50rst_n=1'b1;end

always #10  clk=~clk;//生成(模擬)時鐘信號always@(posedge clk or negedge rst_n)if( rst_n==1'b0)cnt<=8'b0;else if(cnt==8'd249)cnt<=8'b0;else cnt<=cnt+8'b1;always@(posedge clk or negedge rst_n)//模擬按鍵key_in的前抖動,后抖動,以及穩定段if( rst_n==1'b0)key_in<=1'b1;else  if (cnt>=8'd02 &&  cnt<=8'd19)key_in<={
   
   
   $random} %2;else  if (cnt>=8'd129 &&  cnt<=8'd149)key_in<={
   
   
   $random} %2;elsekey_in<=1'b0;// 2.例化待測試模塊  

 key_noshake
#(.cnt_max(8'd100))key_noshake_inst(.key_in(key_in),.rst_n(rst_n),.clk(clk),.key_out(key_out));     //3.監控和比較輸出響應endmodule

注:
如何寫testbench的verilog代碼

3.仿真結果

如何寫testbench的verilog代碼

如何寫testbench的verilog代碼
放大(局部特寫)
如何寫testbench的verilog代碼

關于如何寫testbench的verilog代碼問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

缙云县| 商都县| 常州市| 新巴尔虎右旗| 清镇市| 云阳县| 锡林郭勒盟| 宣化县| 大冶市| 中西区| 登封市| 萨嘎县| 太仆寺旗| 衡阳县| 平乡县| 肥西县| 蒙山县| 芷江| 元氏县| 延津县| 昭通市| 南华县| 勐海县| 西林县| 清镇市| 垦利县| 锡林郭勒盟| 英山县| 四平市| 平罗县| 登封市| 怀柔区| 桃源县| 山阴县| 韶关市| 新绛县| 尉氏县| 疏附县| 平湖市| 临澧县| 汽车|