min pulse width && min period

Min Pulse Width
文章目录

前言

min pulse width 是对信号高电平或低电平脉冲最小宽度的衡量,通常都只针对clock path 做min pulse width 检查。

一、什么是 min pulse width?

min pulse width ,全称为最小脉冲宽度检查。min pulse width用于检查时钟信号的波形是否处在一个合理的状态。时序单元对时钟的高电平和低电平的脉冲宽度有一定的要求,经过min pulse width检查可以获悉时钟信号的最小脉冲宽度是否满足了时序单元的要求。

二、为什么检查 min pulse width?

一般情况下,由于cell本身的差异,rise和fall delay不相同,这样可能会造成时钟信号脉冲宽度减小。
如下图一个周期为1ns,duty cycle 为50%的clock信号:
在这里插入图片描述
在经过一个buffer(rise delay: 0.05, fall delay:0.03):
在这里插入图片描述
clock信号波形变成如下图所示:
在这里插入图片描述
假设一个占空比为50%的时钟穿过一个buffer,该buffer的rise delay大于fall delay,则经过buffer后的脉冲宽度要比输入时钟小。如果时钟信号经过一系列相同类型的单元,则时钟信号的脉冲宽度将会持续减小。如果小于某个最小宽度,可能会导致器件不能正常的捕获数据。
因此,在做timing分析时,我们是必须对cell的pin做min pulse width检查。

三、如何设置 min pulse width约束?

min pulse width检查设置通常有两类方法:直接使用library里面的设置或者在sdc里面重新设置min pulse width约束。

1. std library

EDA工具可以通过查找单元库来获取 min pulse width的阈值,在单元库中,一般是以input transition 为index 的一张一维表。
在这里插入图片描述

2. 在sdc里面重新设置约束

指令如下(示例):

set_min_pulse_width 1.25 [get_clocks *]

 
 
  • 1

或者指令如下(示例):

set_timing_derate -min_pulse_width 1.25 

 
 
  • 1

一般情况下,如果要设置比lib里面更为严格的min pulse width检查,需要在sdc里面重新设置min pulse width约束。

四、如何检查 min pulse width?

因为library 中相应clock pin 上定义了min pulse width 属性,或用命令set_min_path_width 设了约束,因此在做了CTS之后,则可以使用命令report_min_pulse_width 可以报出相应min pulse width check。
在这里插入图片描述
如上电路图,我们想要计算ff2的clock pin的min pulse width check,采用report_min_pulse_width -path_type full_clock_expanded [get_pin ff2/CP],得到下面path路径slack。
在这里插入图片描述
如果想要报出所有的min pulse width violation可以使用report_min_pulse_width -all_violators命令。

五、如何修复 min pulse width?

  1. 由于普通buffer上升和下降的delay不一样,如果经过一连串的buffer的话,有时候会发生min pulse width的violation。因此,更加推荐采用clock inverter来取代buffer,相比buffer来说,inverter的上升和下降时间会相互补偿,这样就更容易避免min pulse width violation的产生;
  2. 检查是否有比较大的transition, 因为min pulse width的阈值在单元库中一般是以input transition 为index 的一张一维表;
  3. 检查时钟路径是否用了相同阈值电压(Vt)的的单元,是否用了时钟单元(一般以CK或DCCK开头),另外,对于先进工艺电路,一般时钟路径会使用低阈值电压单元(ULVT);
  4. 检查是否有串扰,消除或者减少串扰引起的delta delay。

总结

最小脉冲宽度对数字电子设备的功能和性能至关重要,它直接影响设备的稳定度和精度,因此设计数字电子设备时,必须仔细考虑最小脉冲宽度,并确保信号始终保持在可接受范围内。

Min Period 文章目录

前言

我们在实际设计中可能会碰到这种情况,如果我们的memory最高只能工作到800Mhz频率,但是我们却让它工作在1Ghz的频率,这时就会出现min period的violation。

一、什么是 min period?

Min period也就是最小时钟周期,是DRV检查的一种。Min period用于检查时钟电路是否达到了预期的工作频率。例如min period1.25代表着到达memory的CLK pin的所有clock需要至少1.25ns周期,如果不满足该条件的话,工具会显示violation。

二、为什么检查 min period?

以一个常见的六管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中的每一bit储存在由四个场效管(M1,M2,M3,M4)组成2个交叉耦合的反相器中。此外2个场效管(M5,M6)是储存基础模块到用以读写能力基准线(BitLine)的自动开关。
min_period是为了给sram的bitline进行预充电留足时间,如果两次读间隔period太近,那么第二次读就不能正确读出。
在这里插入图片描述

三、如何设置 min period?

min_period 在RAM 的lib 里定义为index 是CLK pin transition 的一张一维表,min period的阈值是通过库文件查询得到的。
在这里插入图片描述
上图是一个RAM的CLK pin的min period的库文件信息。从中可以看出,min period的阈值与transition有关。并且不同的sdf_cond也会对应不同的查找表,也就是说相关pin的case值会影响min period的阈值。

四、如何检查 min period?

如下电路图所示,我们想要计算ram0的clock pin的min period check,采用report_min_period -path_type full_clock_expanded [get_pin ram0/CLK],得到下面path路径slack。
在这里插入图片描述
在PrimeTime中,用report_min_period命令可以得到如下min period的report结果。
在这里插入图片描述
另外,如果想要报出所有的min period violation可以使用report_min_period -all_violators命令。

五、如何修复 min period?

  1. 检查是否有比较大的transition, 因为transition影响min period的阈值,减小transition有利于min period;
  2. 检查是否有串扰。消除串扰有利于min period。

如果尝试以上方法依然meet 不了clock min period 的需求,说明memory 选型时可能考虑不周全,可以尝试换low VT 的memory。

总结

在memory 选型的时候,clock min period 是一个重要指标,需要根据电路实际的工作频率, clock 的uncertainty, Crosstalk, 工艺的Variation 来选定。在IC设计时,如果设计频率为1Ghz,那么sram选型min_period必须小于1ns,同时后端会对设计的SRAM的min_period提出过约要求,一般为过约15%,即要求min_period 为0.85ns才符合实际要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值