一段用verilog编写的testbench程序,不知道有什么错误。

刚学编写testbench,用的是ISE。程序如下:`timescale1ns/1psmodulecounter_tb;//Inputsregclk;regrst_n;r... 刚学编写testbench ,用的是ISE。程序如下:
`timescale 1ns / 1ps

module counter_tb;

// Inputs
reg clk;
reg rst_n;
reg inEn;

// Outputs
wire [7:0] counter;

// Instantiate the Unit Under Test (UUT)
counter uut (
.clk(clk),
.rst_n(rst_n),
.inEn(inEn),
.counter(counter)
);

initial begin
// Initialize Inputs
clk = 1;
rst_n = 1;
inEn = 0;

// Wait 100 ns for global reset to finish

#100;
forever
#50 clk=~clk;

// Add stimulus here

end

endmodule
就是一个简单的计数器仿真验证。testbench程序大部分是系统生成的,我自己写的也就是initial begin到end那一小段。可是无论是调用modelsim还是ISE自己的仿真器,clk都是一点变化没有,一直是初始值。这个是什么原因呢?
展开
 我来答
风雷小草
推荐于2016-10-07 · TA获得超过1711个赞
知道小有建树答主
回答量:1174
采纳率:0%
帮助的人:679万
展开全部
删除initial块内部以下内容:
#100;
forever
#50 clk=~clk;

在initial块外部(注意是外部,不是内部)添加以下内容:
always #50 clk= ~clk;

另外,initial内部的“rst_n = 1; ”也要改成以下形式:
rst_n=1'b0;
#3
rst_n=1'b1;
以便对电路进行复位。
pc_repair
2011-11-22 · TA获得超过1720个赞
知道小有建树答主
回答量:1150
采纳率:66%
帮助的人:487万
展开全部
你把这句移出Initial看看,即放在endmodule前. 我也不确信,试试看吧.
forever
#50 clk=~clk;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qingg2011
2011-11-21
知道答主
回答量:5
采纳率:0%
帮助的人:5.4万
展开全部
你给CLK赋个初值,看看能行不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winston_hao
2011-11-21 · 超过24用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:49.8万
展开全部
仿真时间跑少了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式