最简单的verilog的test bench程序贱

最简单的verilog的test bench程序贱,第1张

always

begin

forever # 5 clk = ~ clk

end

直接用always # 5 clk = ~ clk 就可以。

time_div 模块寄存器没有复位,通常有个初始值,如:

always @ (posedge clk or negedge rst)

if (!rst)

begin

count <= 2'b00

div4 <= 1'b0

div8 <= 1'b0

end

else

。。。

不复位的话,寄存器输出为不定值,后面的语句就都有可能为X

给你写一个例子,下面是一个设计文件和一个对应的测试程序,希望能起到抛砖引玉的和用:

/*

File Name : test.v

Author: www.flxc.net

Data : 2010-10-14 20:20:52

Description : This module is to shift the 32 bit input data with clock edges.

*/

`timescale 1ns/1ns

`define period 10

module test(

clk,

rst_n,

data_i,

data_o

)

input clk

input rst_n

input [31:0] data_i

output [31:0] data_o

reg [31:0] data_o

always@(posedge clk or negedge rst_n)

beg

if(!rst_n)

data_o <= 32'b0

else

data_o <= data_i >>1

end

endmodule

module test_tb

reg clk

reg rst_n

reg [31:0] data_i

wire [31:0] data_o

initial

begin

clk=1'b1

rst_n=1'b1

data_i=32'b1010_1111_1000_1111_1111_0000_0001_0000

#(`period/3)

rst_n=1'b0

#(`period/3)

rst_n=1'b1

#100000000

$stop

end

always #(`period/2) clk=~clk

endmodule


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12134264.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存