Modelsim_testbench設定

更新 發佈閱讀 5 分鐘

每次我都搞不清楚testbench要怎麼設定開頭,整理成一個簡單的示意圖,這樣就很清楚了。

raw-image
  1. `timescale設定(第一行一定要定義的東西)
    格式說明:`timescale <time_unit> / <time_precision>
    1ns代表該testbench時間單位,所有的#開頭的delay都會是ns的時間
    1ps代表時間的精度
    常見的幾種組合:
    1ns/1ps:最常見,精度高
    1ns/1ns:精度普通
    10ns/1ns:常用於舊專案
    1ps/1ps:高速電路模擬
    `timescale 1ns/1ps
  2. 設定Testbench的PIN,就像一般的.V檔一樣把這個testbench當成一個元件,這邊定出來的PIN name,就會出現在Modelsim上的波形上。
    module state_exer_tb();    
    reg clk;
    reg rst_n;
    reg ext_bot;
    wire led_r;
    wire led_y;
    wire led_g;
    raw-image
  3. 定義我們要模擬的.V檔的PIN,與我們的tessbench PIN做連結
    Testbench pin link:
       // 被測試模組
    state_exercise u_state (
    .ext_clk(clk),
    .ext_rst_n(rst_n),
    .ext_bot(ext_bot),
    .led_r(led_r),
    .led_y(led_y),
    .led_g(led_g)
    );
    Module state_exercise pin define
    raw-image
  4. 開始定義我們的動作,主要就是一些input動作的0或1的設定,接著敲我們的clk,可以看到我們的rst_n從50ns後開始轉太,而clk則是固定40ns。
        // 初始化
    initial begin
    clk = 0;
    rst_n = 0; // 一開始 reset
    ext_bot = 0;
    #50 rst_n = 1; // 50ns 後釋放 reset
    end

    // 模擬時鐘,假設 25MHz -> 40ns 一個週期
    always #20 clk = ~clk;
    raw-image
  5. 後續就是我們其他input的設定,而led_r, led_y, led_y,則是照我們在程式內設定的方式來動作。當我的ext_bot每轉態一次,而clk在rising的時候,就會觸發led的動作更新。
    //testbench_tb.v
    initial
    begin
    #110 ext_bot = 1;
    #63 ext_bot = 0;

    #70 ext_bot = 1;
    #58 ext_bot = 0;

    #65 ext_bot = 1;
    #91 ext_bot = 0;

    #155 ext_bot = 1;
    #63 ext_bot = 0;

    #155 ext_bot = 1;
    #62 ext_bot = 0;

    #155 ext_bot = 1;
    #68 ext_bot = 0;

    #155 ext_bot = 1;
    #77 ext_bot = 0;
    end
    endmodule
    raw-image
    //欲模擬的.V檔​
    always @(posedge ext_clk or negedge ext_rst_n) begin
    if (!ext_rst_n)
    state <= S0;
    else
    if (ext_bot)
    state <= next_state;
    end

留言
avatar-img
k07110隨手記
0會員
8內容數
主要是記錄一些我工作上有可能用到又常忘記的小東西,或者是我用AI寫出來的小工具之類,畢竟學的程式語言多了,格式大同小異,有時候難免錯亂。
k07110隨手記的其他內容
2026/02/18
Modelsim的使用(2)_直接開啟Modelsim做模擬
Thumbnail
2026/02/18
Modelsim的使用(2)_直接開啟Modelsim做模擬
Thumbnail
2026/02/18
Modelsim的使用(1)_Quartus連結開啟
Thumbnail
2026/02/18
Modelsim的使用(1)_Quartus連結開啟
Thumbnail
2026/02/10
電路分享:雙CPLD在同一塊板子上的使用。
Thumbnail
2026/02/10
電路分享:雙CPLD在同一塊板子上的使用。
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
Pinterest
Thumbnail
Pinterest
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News