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會員
10內容數
主要是記錄一些我工作上有可能用到又常忘記的小東西,或者是我用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 ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
Pinterest
Thumbnail
Pinterest
Thumbnail
求職一定會遇到的一個關卡,就是「面試」。對於新鮮人或很長時間沒有經歷面試的求職者來說,常常聽到「面試」就覺得皮皮挫!但其實只要做好充足準備,事先掌握面試的流程和內容,就像是考試前就得到了考題一樣,只要好好準備,一定就能獲得期望的成果!
Thumbnail
求職一定會遇到的一個關卡,就是「面試」。對於新鮮人或很長時間沒有經歷面試的求職者來說,常常聽到「面試」就覺得皮皮挫!但其實只要做好充足準備,事先掌握面試的流程和內容,就像是考試前就得到了考題一樣,只要好好準備,一定就能獲得期望的成果!
Thumbnail
哈囉大家好~~我第一次使用
Thumbnail
哈囉大家好~~我第一次使用
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News