最近在做TOP scan integration 的时候发现了一个比较严重的问题,工具在做scan insertion 的时候会动到DFF D pin.
其中,在做TOP 整合的时候大概有以下几种模式来做.
-
subsys 做完scan insertion,输出ctlddc / ctl 给TOP 层进行整合.
TOP + subsys ctlddc / ctl+empty.v 进行TOP 整合. -
TOP 直接top down 处理,直接所有subsys RTL 吃进去编译,然后进行scan insertion 整合.
-
TOP modules RTL + subsys full ddc ,这种就遇到了问题.
subsys 在做综合的时候如果是compile_ultra -scan 会进行整体替换scan dff, 但是由于面积和时序的考量,会识别有些DFF 为 shift_registers , 并不进行替换,这些信息同时会保存至full ddc中.
TOP 吃 subsys full ddc的时候,由于不清楚工具是如何理解subsys full ddc 中的 shift_regs ,但是又必须同时上chain ,D pin 就会动到。
这里的原因是:
a. 首先在subsys综合时 使用compile_ultra -scan ,工具会默认识别scan_shift_register(如果是单纯的Q–>D 路径,只会将第一级转换为带有SI/SE 的register , 其后面的几级不会转换).
然后对应的register 会有shift_register_head ,shift_register_flop 属性,并且会将 Q–>D 的shift_register 顺序保存到full ddc 中(scan segment).
在进行TOP Scan整合时,遇到工具在scan insertion过程中影响DFF D pin的问题。主要模式包括subsys独立处理、TOP层整合及直接处理所有subsys RTL。当TOP使用subsys的full ddc时,由于部分DFF被识别为shift_registers并保存在ddc中,导致D pin变动。原因在于工具在subsys综合时仅部分转换scan_shift_registers,而在TOP层无法获取shift_register_flop scan segment信息。解决方案包括取消dont touch属性、手动保存segment信息或关闭scan shift register识别。
最低0.47元/天 解锁文章
2844

被折叠的 条评论
为什么被折叠?



