VerilogHDL小练习(三)简单testbench的编写

笔者使用开发工具的是QuartusII在使用过程中也遇到很多问题不过经过咨询还是成功解决,下面是一个简单的二选一选择器的testbench。

先贴出来二选一多选器的模型

module muxtwo(out,a,b,sl);
input a,b,sl;
output out;
//============================
reg out;
always@(sl or a or b)//表示只要有一个变化就执行下面的语句
if(!sl)
out=a;
else
out=b;
endmodule

接下来就是我们的testbench文件的写法

`timescale 1 ps/ 1 ps
module muxtwo_vlg_tst();
reg a;
reg b;
reg sl; 
reg clock;              // 时钟信号                                            
wire out;               // wires 
                       
muxtwo i1 (
// 连接端口 ,把测试的端口和做好的模型连接进取 
	.a(a),
	.b(b),
	.out(out),
	.sl(sl)
);
initial                 //初始化                                            
begin                                                  
a=0;
b=0;
sl=0;
clock;                                                                                                                                     
$display("Running testbench");                       
end                                                    
always #50 clock=~clock;//产生一个不断重复的,周期为100单位的时钟
always @(posedge clock) //时钟上升沿触发                   
begin                                                  
     a={$random}%2;       //{$random}系统任务随机生成数字,%2对2取模即要么为1要么为0
 #3  b={$random}%2;       //延时3个单位时间                        
end   
always #1000 slin=!slin;    //1000个单位时间后变化一次                                              
endmodule

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值