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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6351|回复: 9

[讨论] 对两个关联信号进行复位时产生的问题

[复制链接]
发表于 2011-3-26 19:09:58 | 显示全部楼层 |阅读模式

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

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

x
假设en是已经同步好且宽度为一个时钟(clk)的信号,现要用它对计数值cnt和分频信号co_reg进行复位。如果用同步复位,则代码通常如下:
process(clk,en)
begin
    if (clk'event and clk='1') then
        if (en='1') then
           countx<="00000";
           co_reg<='1';
        elsif countx="11111" then
               countx<="00000";
               co_reg<='1';
        else
               countx<=countx+'1';
               co_reg<='0';      
        end if;   
   end if;
end process;
      但这会使co_reg比en晚一拍,在我的系统里面不允许这一点。如果换成异步复位倒是可以让en和co_reg同时产生,但又会带来不稳定因素。想请教各位前辈能否不用异步复位来做到en和co_reg同时产生?
发表于 2011-3-26 21:42:12 | 显示全部楼层
不可能,除非用组合逻辑
 楼主| 发表于 2011-3-26 23:06:00 | 显示全部楼层
谢谢你的回复!
关键是怎么用。
 楼主| 发表于 2011-3-27 11:17:16 | 显示全部楼层
问题的症结在于不使用异步复位就不能让en和co_reg同时产生;而换成组合实现,则需要另外开辟一个进程,那么co_reg又无法在两个进程中被驱动。真是很有趣啊。
发表于 2011-3-27 14:24:32 | 显示全部楼层
回复 4# zhinvxing


    co-reg可以是计数器各位的组合逻辑。
 楼主| 发表于 2011-3-27 16:47:55 | 显示全部楼层
回复 5# laoqiang

    谢谢你的回复。
    关键是en既然对co_reg置位,也要对countx进行复位。如果单独用一个进程对countx计数,再在另一个进程中用组合逻辑去控制co_reg和countx,会造成countx的多驱动。
发表于 2011-3-27 22:50:16 | 显示全部楼层
从你的代码来看,实际co_reg的值可以通过countx来控制的,根本不需要en来进行复位。所以只需要在另一个process中对co_reg进行控制即可。
不知道我的理解对不对。还有,最好能够说明一下外部的控制情况具体怎样,比如,en是周期出现还是偶尔出现,不然,可能你本身的出发点已经错了,那么别人回答问题也是南辕北撤
发表于 2011-3-28 10:46:11 | 显示全部楼层
楼主,首先你要清楚你的代码中co_reg是寄存器,肯定是要在延迟1拍输出的。如果你需要当前周期输出,那你需要使用组合逻辑输出。如果你不知道如何用组合逻辑输出,还请你好好看看书,这是最基础的设计知识,这些都不清楚,何来设计系统?
 楼主| 发表于 2011-3-28 12:25:07 | 显示全部楼层
呵呵。谢谢alenww的教导。
谢谢hahalucky的回复。外界的en是周期(=32)出现的。系统上电后要求用第一次出现的en立即复位countx,并将co_reg置1。此后co_reg就可以在en与countx的联合控制下输出了。关键在于第一次en既要让countx复位,又要让co_reg同时置1,如果用组合进程,那么该组合进程中的countx和co_reg都要被驱动;而另外的那个计数并产生co_reg的进程中countx、co_reg还要被驱动,这造成错误。
发表于 2011-3-28 20:07:49 | 显示全部楼层
首先,co_reg这个东东到底要用来干什么呢?看你的代码的思想,我觉得直接将co_reg = en 不就可以了?
我觉得你可能对到底要干什么还有些糊涂,en的周期刚好是countx自己计数的循环周期,就是说,en来一次,后面每32个周期来不来对countx来说已经无所谓了,因为countx到那个时候自己就清零了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 09:01 , Processed in 0.020470 second(s), 7 queries , Gzip On, Redis On.

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