漫谈时序设计(2)需要给复位足够的关心!
目录
前言
现在写博客和以前有点不一样的地方在于,不是东打一耙子,西打一耙子,更在的看重专题写作。给自己以清晰条理的感觉,有助于日后管理与维护。
这是一个新的阶段,也与心态有关,以前写博客为的是粗放式的增长知识范围,为找工作加油。
现在2019校招结束,写博客,已经是一种生活习惯,知识要更加的具有连续性,专业性。
今天的主题也和时序设计有关,时序设计不是狭义的静态时序分析,添加时序约束就完事了,还包括时序约束管理不到的地方,例如上一批博文,跨时钟域的问题就是设计出来的,而非通过约束解决的。时序违规,我们可以从约束上找问题,也可以从设计上找问题,因此,我把设计的问题也归于时序设计的专题上。那些会容易造成时序违规的设计,跨时钟域传输是,今天的主角,复位设计也是。
恢复时间与去除时间
谈到复位,就能想到同步复位以及异步复位,这个话题已经写了好多遍了,这里给出链接:
说起异步复位,就不得不说起恢复时间和去除时间,这是针对具有异步复位端的触发器而言的,和建立时间和保持时间的概念很相似,也很有意思。
下面这句解释,是我见过最喜欢的解释,原文是谁,我暂时也不知道,搜集于互联网:
恢复时间(Recovery Time)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,如果保证不了这个最小恢复时间,也就是说这个异步控制信号的解除与“下个时钟沿”离得太近(但在这个时钟沿之前),没有给寄存器留有足够时间来恢复至正常状态,那么就不能保证“下个时钟沿”能正常作用,也就是说这个“时钟沿”可能会失效。
先形象的解释下:
如上图所示,恢复时间就是异步复位信号撤离(无效)时刻与下一个时钟有效沿之间的时间,也就是复位信号必须在时钟有效沿到来之前的一段时间撤离,这样才能保证触发器有足够的时间恢复到非复位状态。如果违反了恢复时间,则会导致触发器输出出现亚稳态。
去除时间(Removal)是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”之后变无效的最小时间长度。这个时间的意义是,如果保证不了这个去除时间,也就是说这个异步控制信号的解除与“有效时钟沿”离得太近(但在这个时钟沿之后),那么就不能保证有效地屏蔽这个“时钟沿”,也就是说这个“时钟沿”可能会起作用。
同样,形象的解释下去除时间:
如上图,在时钟有效沿来临之后复位信号还需要保持的时间为去除时间removal time(去除时间);
换句话来说,如果你想让某个时钟沿起作用,那么你就应该在“恢复时间”之前是异步控制信号变无效,如果你想让某个时钟沿不起作用,那么你就应该在“去除时间”过后使控制信号变无效。如果你的控制信号在这两种情况之间,那么就没法确定时钟沿是否起作用或不起作用了,也就是说可能会造成寄存器处于不确定的状态。而这些情况是应该避免的。所以恢复时间和去除时间是应该遵守的。
Removal problems can occur if there are slight differences in propagation delays in either (or both) the reset signal or clock signal, which can cause some registers to exit the reset state before the others.
如果复位信号或时钟信号中的一个(或两者)的传播延迟存在细微差异,则可能会出现清除问题,这可能导致某些寄存器先于其他寄存器退出复位状态。
就是说,如果不满足去除时间,则可能导致提前复位提前撤离。
异步复位,同步撤离
异步复位和同步复位都有着各自的优缺点,但异步复位反应快的有点让我们比较喜欢,但是由于异步复位的时刻如果不满足恢复时间,就会出问题,也就是会产生亚稳态,亚稳态是危险的,因此我们要设法避免,异步复位,同步撤离的设计方式可以解决这个问题,见之前博文:谈谈复位
异步复位,同步释放的设计原理图如下:
可以将异步复位,同步释放电路设计在一个模块里面,供不同时钟域内的设计使用。
例如:
异步复位,同步释放,从名字上,也知道也属于异步复位,所以它所在的路径,在静态时序分析时候,不需要分析,直接设置为伪路径。
对应的XDC文件中的TCL命令为:
set_false_path -from [get_ports fpga_reset]
其中fpga_reset为异步复位端口。
写在最后
在今年的秋招一开始,我就建立了一个微信群,在CSDN发布了一条博文,召集全国各地的同行朋友们共同加入,共同讨论秋招求职笔试,面试经验,目前已经有300多人加入,各位才华横溢,让我大开眼界。
到今天11月份,从西北地区最早结束到其他各地陆续结束,但是我们曾开玩笑说,本群继续召集下一届同行,作为先行者的我们也会对你们给予应有的帮助,欢迎加入,到你们晒工资的时候,会不会再次把我们倒挂呢?拭目以待。
由于人数较多,所以加我的时候务必备注:CSDN+地区或学校+职位(意向职位)+昵称。
我的微信号是:ljs521615
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/102882585
- 点赞
- 收藏
- 关注作者
评论(0)