目前,在基于寄存器的同步设计中,除了ICG cell, 不期望设计中有其他latch ,所以在RTL 质量检查或综合阶段要对Latch 报警。
但Latch 在以下两个方面被广泛应用:
-
DFT: 插scan chain 如果做了clock mix 或clock edge mix 需要插入Lock-up latch;
-
修hold: 在某些情况下,setup margin 足够,如果用buffer 或delay cell 修hold 则需要插入大量cell,可以考虑插入一颗Latch 来修hold.
插scan chain 时插入lock-up latch 为了两个目的:
-
插scan chain 时如果做了clock mix,为了hold 好meet 需要在跨clock domain 处插一颗lock-up latch.
-
插scan chain 时如果做了clock edge mix, 且在链上正沿触发器在前负沿触发器在后,则需要在跨clock edge 处插一颗latch.
clock mix scan chain insertion:
在function 模式,异步clock 之间是不做balance 的,如果插scan chain 时要把不同clock domain 的寄存器串到同一条chain 上,在shift 模式:通常shift clock是慢速clock 且scan shift 路径上没太多逻辑,setup 通常没问题,但是hold 就比较难修,通常的做法是插一颗lock-up latch 将数据延迟半个cycle.
注意:
-
如果跨时钟域前后都是正沿寄存器,则需要插入一颗低电平有效的latch;
-
如果跨时钟域前后都是负沿寄存器,则需要插入一颗高电平有效的latch;
clock edge mix scan chain insertion:
通常插chain 的时候都会尽量将负沿寄存器放在前头,正沿寄存器放在后头,在夸时钟沿时不需要插入latch。
但是如果不得已或非要把正沿寄存器放在负沿寄存器之前,则必须在跨时钟沿处插一颗latch, 否则在shift 模式,一个cycle 之内会同时穿过正沿寄存器再穿过负沿寄存器,所以会丢掉一个值,故此处的lock-up latch 是必须的。
注意:
-
为了修hold 插入lock-up latch 跟clock mix scan chain insertion 的情况一样;
-
在DFT 模式下插入的lock-up latch 不应该影响function 逻辑;
-
插了lock-up latch 之后scan chain 会被打断成不同的scan segment, 影响scan reorder. <至于原因请翻阅:《论DFT | 一文读懂 ScanDEF 相关的一切》《Innovus 小技巧 | ScanChain reorder》>。
-
lock-up latch 会影响形式验证。
Lock-up Latch 对形式验证的影响:
-
如果lock-up latch 只在revised 中存在,且scan 相关的约束没有正确设上,那这些lock up latch 会被当做not-mapped DLAT, 并导致NoN-EQ.
-
如果lock-up latch 同时存在于Golden 跟Revised 中,且没有做scan reorder, 则工具会对lock up latch 做map 且compare, 结果应该Pass.
-
如果lock-up latch 同时存在于Golden 跟Revised 中,且做了scan reorder, 如让工具对lock up latch 做map 且compare, 则会导致NoN-EQ.
-
通常DFT 插入的lock-up latch 不应该被当做compare point, 需要在LEC 中将scan 相关的约束设上,且加-latch_transparent 的modeling, 如:
add pin constraints 0 SCAN_MODE –both
set flatten model -latch_transparent
-
如果设了"set flatten model -latch_transparen", 工具会判断latch 的enable 是否一直有效,如果是则会将对应的latch modeling 成buffer. 通常在DFT 阶段插入的lock-up Latch, 在function 模式下enable 应该是一直有效的。
-
但是某些特殊case 在function 模式通过设Scan 相关的约束也不能使得所有lock-up latch 的enable 一直有效。
-
对于在function 模式通过Scan 约束无法使latch 的enable 一直有效的情况,通常可以通过以下两种方式解决:
驴说IC
本文源自微信公众号:陌上风骑驴看IC,不代表用户或本站观点,如有侵权,请联系nick.zong@aspencore.com 删除!