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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6379|回复: 12

[讨论] 异步复位同步释放

[复制链接]
发表于 2017-12-18 14:34:09 | 显示全部楼层 |阅读模式

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

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

x
假设系统是上升沿采样,现在需要对复位信号做异步复位同步释放的操作。那么复位信号的同步释放是采用上升沿触发还是采样下降沿触发?
哪一种实际工程上用的更多一些,理由是什么?
发表于 2017-12-18 17:43:24 | 显示全部楼层
recover  removal检查 同沿吧
 楼主| 发表于 2017-12-18 19:11:39 | 显示全部楼层
回复 2# rvisk

我个人更倾向于同沿这种做法,不过师姐说用下降沿更好一点,意见不同。所以我就想问一下外面做工程或者实际流片更倾向于哪种做法?
发表于 2017-12-18 19:30:08 | 显示全部楼层
回复 3# mysoul


   1、建议同沿靠工具检查;负沿其实就是两个时钟,我觉得是不对的;   2、大芯片里那种大IP,比如Arm cortexA9,一般是有clockoff的,就先放复位,复位释放的时候是没有时钟的,不存在recovery removal问题,复位释放后,再把clock放出来;
 楼主| 发表于 2017-12-18 20:00:34 | 显示全部楼层
回复 4# rvisk
你这里说的clockoff是不是可以理解成类似于门控时钟?
 楼主| 发表于 2017-12-18 20:05:10 | 显示全部楼层
回复 4# rvisk
还有一点就是,如果按照同沿这种做法,还是需要工具去检查是否会存在recovery/removal问题,也就是说同沿这种做法并不能消除recovery/removal问题?不知道我的理解对不对,望指正
发表于 2017-12-18 20:21:22 | 显示全部楼层
回复 6# mysoul


1、  先回答你第一个关于clock off的   大IP时钟复位都是通过某个时钟复位模块送过去的,时钟和复位都是可控,先放复位再放时钟,此IP就没有recovery和removal的问题;

2、关于同沿检查recovery和removal的问题,你用负沿一样会检查的,你还的去想想工具怎么检查,你得去想想正反两个时钟的关系,怎么检查才能保证没有recovery 和removal的问题。所以,我觉得用负沿是给自己找难受!

      你要理解这个事情,时序检查是为了保证:在时钟采样点和复位释放的时间窗,不要撞一起。
     你想想看你用负沿的时钟和正沿时钟在PR以后的关系你得保证吧,否则你怎么保证他们时间窗不撞车。
 楼主| 发表于 2017-12-18 21:16:49 | 显示全部楼层
回复 7# rvisk

第一个问题基本明白,我觉得我可以参照这种思路来设计复位和时钟,反正时钟是要做门控的。
关于第二个问题,我的理解是:如果单纯的采用异步复位,那么复位的释放是不可预测的,那么就有可能违反D触发器的setup或者hold的要求,也就是这里说的rst的recovery/removal。
另外在问一个问题:在verilog模块中同时采用上升沿触发和下降沿触发的触发方式,会有什么影响?我在网上查阅资料,大多都是说这种做法不好,但是会有什么影响,我不太明白。
发表于 2017-12-19 08:37:26 | 显示全部楼层
本帖最后由 冲出藩篱 于 2017-12-19 08:39 编辑

从FPGA设计角度,说一下我的个人理解:
1.异步复位,同步释放,只解决了复位信号产生的问题。换句话说,这种复位信号的产生方法:
   a.避免了Trst<Tclk,采不到复位信号的问题。
   b.避免了clk和reset之间没有相位关系造成的recovery的问题。
   c.产生了一个至少两个sync到clk时钟域的复位信号,这样为后续的综合和时序分析提供了基础和可能。
2.具体到复位,只有两种:同步复位 和 异步复位
   a.xilinx推荐同步复位,因为寄存器本身没有异步复位端,因为已同步到本地时钟域,时序问题表现为set up 和 hold.
   b.Altera推荐异步复位,因为寄存器本身有异步复位端,但是毕竟是异步复位,时序问题表现为recovery和removal的问题.
3.顺便说下上升沿和下降沿的问题,上升沿和下降沿混用,在时序分析的时候,可能造成时序紧张的局面。
  举个栗子: a.不考虑skew, 下降沿打出的数据,上升沿采,留给数据的延时只有Tclk/2;
                 b.上升沿和下降沿还受时钟占空比的影响,uncertainty也要留够足够的裕量,这又进一步收紧了
                  时序收敛的条件。
                 c.有的时候,我们必须要用下降沿去解决一些时序问题,比如遇到了保持时间不好满足的情况,
                  但是时钟的约束,要做好。

最后说下实际工程中,异步复位同步释放真的好吗?
举个栗子: IO送来硬复位,常规做法倒是先打三拍同步到本地时钟域,然后再送去寄存器做异步或者同步复位信号。
      你在这里使用异步复位同步释放的方式产生复位信号,如果遇到复位信号上的毛刺干扰怎么办?反倒是产生了我们不愿意看到的复位信号产生。教科书上的栗子,在实际中要具体问题具体分析。

好了,以上仅是个人理解,不对之处欢迎大家指正。

最后,师姐说下降沿采样好,那就下降沿呗,你还要装作一本正经的样子,盯着师姐的眼睛懊恼的说,我怎么没想到,哈哈。
发表于 2017-12-19 17:01:26 | 显示全部楼层
回复 8# mysoul

(1)
一个模块中什么上升沿触发下降沿触发,比较教条吧。实际中还是会有。但我们实际中不会这么说,可能就直接认为这是两个时钟,至于这两个时钟的关系看实际设计了。
我大概碰到两种这样情况,
1、SPI的模块,涉及到正反两个时钟;
2、降低峰值功耗,特意用两个反向时钟来躲避峰值功耗;


(2)再补充下上面一位大牛的涉及到的问题
其实有些IP为了节约面积,是没有用异步复位的寄存器,都是全同步设计,两个好处吧
1、不需要平衡复位树;
2、节约面积
关于外部复位信号进来以后glitch的问题
1、可以选择滤glith的IO
2、自己内部电路做去抖动,有办法的


我讲的基本都是芯片设计,FPGA设计我不太熟悉,仅仅是做过原型验证,基本上不太关心面积。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 20:19 , Processed in 0.029077 second(s), 6 queries , Gzip On, Redis On.

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