在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8658|回复: 11

[求助] 关于产生时钟的问题

[复制链接]
发表于 2011-4-20 18:30:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
module clkdiv(
  input clk,
  output reg clkdiv
);
  initial begin clkdiv <= 0;end
   
  always @ (posedge clk)
  begin
      clkdiv <= ~clkdiv;
  end
endmodule  

仿真波形图

仿真波形图
 楼主| 发表于 2011-4-20 18:32:44 | 显示全部楼层
主要是clkdiv信号已经赋初值了,为什么还这样?
发表于 2011-4-20 23:35:52 | 显示全部楼层
initial 里面应该直接用=吧
发表于 2011-4-21 19:13:35 | 显示全部楼层
其实是不需要赋初值的,这里不定态是仿真工具造成的。
仿真工具与实际电路是有区别的。
实际的分频寄存器clkdiv_reg即使没有复位,也会在上电后很快稳定到一个值的0/1。
而仿真工具,却不会这样,会一直将这个不定太延续下去。
你可以再仿真开始,用force clkdiv = 0,一个时钟周期后release clkdiv。
发表于 2011-4-21 20:01:24 | 显示全部楼层
学习了,谢谢啊~~~
发表于 2011-4-21 21:08:12 | 显示全部楼层
我来逛逛,学学
发表于 2011-4-21 21:10:12 | 显示全部楼层
回复 1# hxfwdzx


    看来verilog语言还真有意思啊
发表于 2011-4-21 23:21:45 | 显示全部楼层
四楼说的好
发表于 2011-4-22 08:37:34 | 显示全部楼层
你给的波形图最左边是0时刻吗?
如果是的话,问题可能就出在这里。
0时刻,clk=1,也就是clk信号存在一个x->1变化的上升沿,因此clkdiv会取~clkdiv,
这个操作可能会覆盖你对clkdiv赋初值0的操作。
这取决于仿真器。
你试试让0时刻的clk=0,可能就可以了。
发表于 2011-4-22 12:02:45 | 显示全部楼层
学习了,之前跟楼主遇到同样的一个问题,后来用了一个reset复位就放出来了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-30 03:43 , Processed in 0.026792 second(s), 12 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表