完整的Test bench文件结构及实例笔记

module Test_bench();//通常无输入无输出

信号或变量声明定义

逻辑设计中输入对应reg型

逻辑设计中输出对应wire型

使用initial或always语句产生激励

例化待测试模块

监控和比较输出响应

endmodule

一、时钟激励产生方法:

一、产生50%占空比的时钟信号
//方法一:
initual 

        begin               

                  clk_i = 0;

                 forever  #10  clk_i = ~clk_i;

        end

//方法二:

initial

        begin

                clk_i = 0;

                always   #10  clk_i = ~clk_i;

        end

//产生固定数量的时钟脉冲信号:

initial

        begin

                clk_i=0;

                repeat(6)   //此处()中的数据为重复次数 :注意:重复一次为半个时钟周期

                #10  clk_i=~clk_i;

        end

//产生非占空比为50%的时钟(例:占空比30%):

initial

        begin

                clk_i=0;

                forever

                        begin

                                #6  clk_i=0;

                                #14 clk_i=1;   //此处的延时14是再延时14 在延时6的基础上+14;

                        end

        end

二、复位信号设计:
 


// 一、异步复位

initial
    begin
        rst_n_i=1;
        #100;
        rst_n_i=0;
        #100;
        rst_n_i=1;
    end
//二、同步复位

initial
    begin
        rst_n_i=1;
        @(negedge clk_i)
            rst_n_i=0;
        #100;                         //固定时间复位
        repeat(10) @(negedge clk_i); //固定周期数复位
        @(negedge clk_i)
        rst_n_i=1;
    end

//三、复位任务封装
task reset;
    input [31:0] reset_time;     //复位时间可调,输入复位时间
    RST_ING=0;                    //复位方式可调,低电平或高电平
        begin
            rst_n=RST_ING;    //复位中
            #reset_time;      //复位时间
            rst_n_i=~RST_ING; //撤销复位,复位结束
        end
endtask

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值