当前位置:   article > 正文

SOC课程——④——Verilog程序(Testbench的编写)_verilog testbench end

verilog testbench end

SOC课程——④——Verilog程序(Testbench的编写)

testbench的作用:提供输入激励

1 编写testbench

  • 编写的流程
    在这里插入图片描述

  • 时钟信号的固定写法

	initial begin
		clk	=	0;
		forever
		#(CYCLE/2)
		clk=~clk;
	end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 复位信号的固定写法
	//产生复位信号
	initial begin
		rst_n = 1;
		#2
		rst_n = 0;
		#(CYCLE*RST_TIME);
		rst_n = 1;
	end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 其他信号的固定写法
	//输入信号din0赋值方式
	initial begin
		#1;
		//赋初值
		din0 = 0;
		#(10*CYCLE)
		//开始赋值
		(开始赋值的语句)
	end

	//输入信号din1赋值方式
	initial begin
		#1;
		//赋初值
		din0 = 0;
		#(10*CYCLE)
		//开始赋值
		(开始赋值的语句)
	end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

模板和流程

  • 定义时间标识
  • 原模块的输入信号定义为reg类型
  • 原模块的输出信号定义为wire类型
  • 模块的例化
  • 输入信号的驱动
'timescale 1ns/1ns
module testbench_name();

	//时钟和复位
	reg clk;
	reg rst_n;

	//uut的输入信号
	reg[3:0]	din0;
	reg			din1;
	......(等信号)
	
	//uut的输出信号
	wire		dout0;
	wire[4:0]	dout1;
	......(等信号)
	
	// 时钟周期,单位是ns,可在此修改时钟周期
	parameter CYCLE	= 20;
	
	//复位时间,此时表示复位3个时钟周期的时间
	parameter	RST_TIME = 3;
	
	//待测试的模块例化
	module_name uut(
		.clk	(clk	),
		.rst_n	(rst_n	),
		.din0	(din0	),
		.din1	(din1	),
		.dout0	(dout0	),
		.dout1	(dout1	)
		......(等信号)
	);

	//生成本地时钟50M
	initial begin
		clk	=	0;
		forever
		#(CYCLE/2)
		clk=~clk;
	end

	//产生复位信号
	initial begin
		rst_n = 1;
		#2
		rst_n = 0;
		#(CYCLE*RST_TIME);
		rst_n = 1;
	end
	
	//输入信号din0赋值方式
	initial begin
		#1;
		//赋初值
		din0 = 0;
		#(10*CYCLE)
		//开始赋值
		(开始赋值的语句)
	end

	//输入信号din1赋值方式
	initial begin
		#1;
		//赋初值
		din0 = 0;
		#(10*CYCLE)
		//开始赋值
		(开始赋值的语句)
	end

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/661286
推荐阅读
相关标签
  

闽ICP备14008679号