集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3232|回复: 7

计数器问题,这个代码的testbench对不对,仿真的时候,输出一直是X

[复制链接]
longtim 发表于 2010-6-28 00:16:44 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2011-8-17 13:38 编辑

这个代码的testbench对不对,仿真的时候,输出一直是X,帮忙指点一下
module tcount(out,data,load,reset,clk);
  output[7:0] out;
  input[7:0] data;
  input load,clk,reset;
  reg[7:0] out;
  always @(posedge clk)
  begin
  if(!reset)
  out<=8'h00;
  else if (load)
  out<=data;
  else
  out<=out+1;
  end
endmodule

测试文件:
`timescale1ns/1ns
module tcount_tp;
  reg clk,reset,load;
  reg[7:0] data;
  wire[7:0] cntout;
  integer i;
  tcount count(cntout,data,load,reset,clk);
  
  always #10 clk<=~clk;
  
  initial
  begin
  clk<=0;reset<=0; load<=0;data<=8'h00;
  
  #5 reset<=1;
  
  #10 load<=1;
  #10 load<=0;
  
  for(i=0;i<255;i=i+1)
  #10 data<=data+1;
  
  #10000$finish;
  end
  initial
  $monitor($time,,,"cntout=%d",cntout);  
endmodule
ups 发表于 2010-6-28 01:45:31 | 显示全部楼层
注意,在你的时钟上升沿的这几个时间点上:10,30,50。。。复位和置数都正好无效。计数器不能够进入到一个确定的状态上。
ICE 发表于 2010-6-28 02:42:12 | 显示全部楼层
如果在0时刻把clk赋成1,那么在20时刻,就可以把数置进去了。
CHAN 发表于 2010-6-28 04:19:09 | 显示全部楼层
感谢了,好像明白加载激励的精髓了
HANG 发表于 2010-6-28 05:52:50 | 显示全部楼层
感谢了
       
FFT 发表于 2010-6-28 07:31:54 | 显示全部楼层
弱弱的说一句
       
<br>
<br>
你的模块里面,好象没有定义 load,clk,reset; 的类型.
       
FFT 发表于 2010-6-28 09:29:13 | 显示全部楼层
端口定义input,output,inout时,默认它们的类型是wire。
AAT 发表于 2010-6-28 09:43:53 | 显示全部楼层
hehe&nbsp;&nbsp;<br>
长见识了
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 10:28 , Processed in 0.069876 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表