Modelsim_testbench設定

更新 發佈閱讀 5 分鐘

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

vocus|新世代的創作平台
  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;
    vocus|新世代的創作平台
  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
    vocus|新世代的創作平台
  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;
    vocus|新世代的創作平台
  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
    vocus|新世代的創作平台
    //欲模擬的.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會員
11內容數
主要是記錄一些我工作上有可能用到又常忘記的小東西,或者是我用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
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
Pinterest
Thumbnail
Pinterest
Thumbnail
求職一定會遇到的一個關卡,就是「面試」。對於新鮮人或很長時間沒有經歷面試的求職者來說,常常聽到「面試」就覺得皮皮挫!但其實只要做好充足準備,事先掌握面試的流程和內容,就像是考試前就得到了考題一樣,只要好好準備,一定就能獲得期望的成果!
Thumbnail
求職一定會遇到的一個關卡,就是「面試」。對於新鮮人或很長時間沒有經歷面試的求職者來說,常常聽到「面試」就覺得皮皮挫!但其實只要做好充足準備,事先掌握面試的流程和內容,就像是考試前就得到了考題一樣,只要好好準備,一定就能獲得期望的成果!
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News