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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 5618|回复: 9

[求助] 一个关于计数器设计的问题

[复制链接]
发表于 2011-3-3 10:22:54 | 显示全部楼层 |阅读模式

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

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

×
123.jpg
上面设计的是一个八进制的计数器,上半部分是相当于一个门控时钟,下半部分是计数器输出,计数器输出前半部分很长条的000是由于复位信号的缘故,本意是在时钟上升沿到来时计数,而且计数是从000开始,但现在却是从001开始计数,因为普通计数器设计时编下面一段代码实现的,这段代码必然会造成在第一个上升沿处计数值为001,请问各位大侠门,有什么方法能让它在第一个上升沿处计数值也为000?

counter_out <= (counter_out == 3'b111 ? 3'b000:counter_out+1'b1);
发表于 2011-3-3 10:43:28 | 显示全部楼层
初始态没要求的话可以让他从111开始
呵呵

或者你设计个逻辑,从clk生成一个延迟了一个周期的clk2作为计数器时钟。

愚见愚见
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-3 11:00:38 | 显示全部楼层
回复 2# gamehama


    谢谢啊,第一种方式以前就试过了,在我这个电路中不适用,第二种方式可以考虑。。。
回复 支持 反对

使用道具 举报

发表于 2011-3-3 11:58:03 | 显示全部楼层
对时钟延迟不是一个好的建议方式,你可以把产生的计数值用时钟延时一拍,然后内部使用这个延时的计数值,那么在上升沿上看到的就是从0到7的计数循环,而不是从1到0的计数循环了。
回复 支持 反对

使用道具 举报

发表于 2011-3-3 12:05:21 | 显示全部楼层
回复 4# gaurson


    我想问下,为什么时钟不适合延迟。是不是会导致其他单元调用的时钟跟计数器所使用的时钟不一致而产生错误?
    因为我想的是通过一个初始为0、D端接高、时钟端接到clk的DFF生成一个使能信号,并将这个信号与clk与一下作为计时器的时钟。
回复 支持 反对

使用道具 举报

发表于 2011-3-3 12:19:21 | 显示全部楼层
呵呵,你这么做出来的,就是一开始的一拍时钟没有而已,之后还是和时钟一样的,其实并没有做任何延时,你再想想?至于时钟为什么不合适做延时,我的经验是,时序设计都是依赖于时钟来控制时序的,你改变别的时序总是相对容易的,在时序设计中还是不要通过逻辑去改变时钟的延时,因为不好做,而且实际电路中的时钟到各个寄存器本来就有延时的,所以也没必要去做。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 09:59:31 | 显示全部楼层
回复 5# gamehama


   同步设计嘛,整个设计最好只用一个时钟来驱动。直接把计数结果打一拍,延时一个周期就行了。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 10:22:39 | 显示全部楼层
本帖最后由 hover99 于 2011-3-4 10:28 编辑

always @(posedge clk or negedge reset) begin
    if (!reset)
        cnt <= 4'b1000;
    else if (cnt[3])
        cnt <= 4'b0000;
    else
        cnt[2:0] <= cnt[2:0] + 1;
end

其实就是计数器带一个使能信号,复位的时候使能信号无效,复位之后的第一个时钟沿使能有效。
回复 支持 反对

使用道具 举报

发表于 2011-3-4 15:40:39 | 显示全部楼层
一个时钟来驱动
回复 支持 反对

使用道具 举报

发表于 2011-3-6 22:45:15 | 显示全部楼层
八楼正解,估计楼主没有设置复位端的……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-9-13 16:33 , Processed in 0.036815 second(s), 6 queries , Gzip On, Redis On.

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