min_pulse_width和min_period
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了min_pulse_width和min_period相关的知识,希望对你有一定的参考价值。
参考技术A min_pulse_width首先,min_pulse_width, 是检查时序逻辑中clock信号的高电平与低电平的宽度是否超过了规定的最窄宽度。
对于这个check,是不能够忽略的。理论上必须fix。但是由于在signoff是会加一些derating,uncertainty, 以及各种corner,因为存在一定的margin,所以,如果有违例,但是芯片回来却没有问题,也不必惊讶,那是因为这些违例尚在margin的覆盖范围之内。
强烈建议不要带着mpw违例进行signoff,而如果必须如此,需谨慎评估风险。
min_period
既然有了min_pulse_width, 为什么对于sram,还有个min_period的check?
这个要从sram的原理说起。
六管sram bitcell
对于一个常见的六管sram为例。
那么,对于这个bitcell的读取过程如下:
假定存储的内容为1, 即在Q处的电平为高. 读周期之初,两根位线预充值为逻辑1, 随后字线WL充高电平,使得两个访问控制晶体管M5与M6通路。第二步是保存在Q的值传递给位线BL在它预充的电位,而泻掉(BL非)预充的值,这是通过M1与M5的通路直接连到低电平使其值为逻辑0 (即Q的高电平使得晶体管M1通路). 在位线BL一侧,晶体管M4与M6通路,把位线连接到VDD所代表的逻辑1 (M4作为P沟道场效应管,由于栅极加了(Q非)的低电平而M4通路). 如果存储的内容为0, 相反的电路状态将会使(BL非)为1而BL为0. 只需要(BL非)与BL有一个很小的电位差,读取的放大电路将会辨识出哪根位线是1哪根是0. 敏感度越高,读取速度越快。
简单来说,SRAM在读取之前需要对BL BLB进行预充电(precharge), 然后打开WL,然后BL,BLB才是被送入sense amp进行比较。
再来看时序图。
时序图
当sram读取之后,BL/BLB需要再次重新进行预充电,以便进行下一次读取。
那么这个min period,就是SRAM本身的delay(CLK->RD)再加上BL/BLB预充电的时间。
因此回到最初的问题。
为什么sram有个min_period的check。
答案是为了给sram的bitline进行预充电留足时间。
原文链接:https://blog.csdn.net/graymount/article/details/106132592
& 和 && 区别和联系,| 和 || 区别和联系
& 和 && 区别和联系,| 和 || 区别和联系,实际项目中,什么情况用哪种?
首先,& 和 && 的联系(共同点):
& 和 && 都可以用作 逻辑与 运算符,但是要看使用时的具体条件来决定。
情况1:当上述的操作数是boolean类型变量时,& 和 && 都可以用作逻辑与运算符。
情况2:当上述的表达式是boolean类型变量时,& 和 && 都可以用作逻辑与运算符。
表示逻辑与(and),当运算符两边的表达式的结果或操作数都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。
& 和 && 的区别(不同点):
1)& 逻辑运算符称为逻辑与运算符,&& 逻辑运算符称为短路与运算符,也可叫逻辑与运算符。
2)对于 & :无论任何情况,&两边的操作数或表达式都会参与计算。
3)对于 && :当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。
综上所述,如果逻辑与运算符的第一个操作数为false或第一个表达式的结果为false时,对于第二个操作数或表达式是否进行运算,对最终的结果没有影响,结果肯定是false。推荐多用&&,因为它的效率更高些。
附:&还可以用作位运算符。当&两边操作数或两边的表达式的结果不是boolean类型时,&用于按位运算符的操作。
| 和 || 的区别和联系与 & 和 && 的区别和联系类似。
以上是关于min_pulse_width和min_period的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()