zoukankan      html  css  js  c++  java
  • 独立写testbench注意的几点

    在单独使用Modelsim有时候需要自己独立书写testbench,对于应用QII所自带的Start testbench Template writer确实方便,但是有时对于一个小的独立模块进行仿真时就需要独立调用Modelsim,这样在Modelsim中编写testbench,下面对于testbench的书写总结一下。

      首先在写testbench时,应注意名称要和自己待仿真的工程名称要对应,比如自己的待仿真文件名称叫grey_even,那么对于teshbench的名称则取一个叫grey_even_tst,在书写testbench module name则取名叫grey_even_vlg_tst();这样对于自己有好处,以免自己找不到自己写的文件。

      书写grey_even_vlg_tst();时,原来module grey_even();中的input端口在grey_even_vlg_tst();中要定义为同名reg变量,output 端口要定义为同名wire变量,然后在grey_even_vlg_tst();例化module grey_even();并调用module grey_even();这样构成一个测试反馈回路,即例化的步骤:

    grey_even i1(

       .iCLK(iCLK),
        .iG_grey(iG_grey),
        .iH_cont(iH_cont),
        .iRST_N(iRST_N),
        .iVGA_VS(iVGA_VS),
        .iV_cont(iV_cont),
        .oFIFO_syn(oFIFO_syn),
        .o_even(o_even)

     );
    端口一定要和定义的接口对应,输入口与reg相连,输出口同wire相连。代码如下
    `timescale 1 ps/ 1 ps
    module grey_even_vlg_tst();
    // constants                                           
    // general purpose registers
    // test vector input registers
    reg iCLK;
    reg [9:0] iG_grey;
    reg [10:0] iH_cont;
    reg iRST_N;
    reg iVGA_VS;
    reg [10:0] iV_cont;
    // wires                                               
    wire oFIFO_syn;
    wire [9:0]  o_even;
    
    // assign statements (if any)                          
    grey_even i1 (
    // port map - connection between master ports and signals/registers   
        .iCLK(iCLK),
        .iG_grey(iG_grey),
        .iH_cont(iH_cont),
        .iRST_N(iRST_N),
        .iVGA_VS(iVGA_VS),
        .iV_cont(iV_cont),
        .oFIFO_syn(oFIFO_syn),
        .o_even(o_even)
    );
    initial                                                
    begin                                                  
    // code that executes only once                        
    // insert code here --> begin                          
                                                           
    
                                               
    $display("Running testbench");                       
    end                                                    
    always                                                 
    // optional sensitivity list                           
    // @(event1 or event2 or .... eventn)                  
    begin                                                  
    
    
                                                 
    end                                                    
    endmodule

    然后再在例化后的部分开始编写测试代码。

    testbench name :grey_even_tst(testbench的文件名)

    Top level module :grey_even_vlg_tst(testbench的module名)

    Design instance module name:i1(待测试module 在testbench的例化module名)

    这个关系要明白

  • 相关阅读:
    Atitit. 查找linux 项目源码位置
    Atitit.用户权限服务 登录退出功能
    Atitit.js javascript的rpc框架选型
    Atitit.php  nginx页面空白 并返回500的解决
    Atitit .linux 取回root 密码q99
    Atitit.报名模块的管理
    Atitit.基于时间戳的农历日历历法日期计算
    Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
    我的博客开通了
    (转)列举ASP.NET 页面之间传递值的几种方式
  • 原文地址:https://www.cnblogs.com/woshitianma/p/2824776.html
Copyright © 2011-2022 走看看