DFT学习记录----Wrapping Cores(二)

The Simple Core Wrapping Flow

简单的core wrapping flow提供了基本的core wrapping功能,主要介绍simple core wrapper cells和simple core wrapper chains。

simple core wrapper cells

简单的core wrapping flow所用到的wrapper cell有三种:Dedicated Wrapper Cell、Dedicated Safe-State Wrapper Cell和Shared-Register Wrapper Cells。

1.Dedicated Wrapper Cell

Dedicated Wrapper Cell用自己内部的专用触发器来提供可控制性、可观测性和移位功能,如下图所示。
dedicated wrapper cell
该wrapper cell包含如下接口:

cti - core test input,wrapper cell的测试输入,该信号可以来自主要输入(如果该wrapper cell处于wrapper chain的首位)或者wrapper chain上前一个wrapper cell的cto信号。

cto - core test output,wrapper cell的测试输出,该信号可以驱动主要输出(如果该wrapper cell处于wrapper chain的末位)或者wrapper chain上后一个wrapper cell的cti信号。

cfi - core functional input,对于输入的wrapper cell,该信号来自core周围的逻辑;对于输出的wrapper cell,该信号来自core。

cfo - core functional output,对于输入的wrapper cell,该信号驱动core;对于输出的wrapper cell,该信号驱动core周围的逻辑。

shift_clk - wrapper clock,通常由core的wrp_clock驱动,为wrapper cell中的触发器提供时钟。

shift_en - shift enable,类似于wrapper cell的scan-enable信号,该信号为高时,通过cti和cto进行数据移位;该信号为低时,根据capture_en决定是捕获功能输入还是保持当前状态。输入和输出wrapper cell的shift_en可以分别进行控制。

capture_en - capture enable,该信号决定wrapper cell不进行移位时所捕获的内容,为高时保持当前值,为低时捕获功能输入。

2.Dedicated Safe-State Wrapper Cell

wrapper cell可以在它的输入提供可观测性,在它的输出提供可控制性,但是,wrapper cell的受控输出也会在通过wrapper chain进行数据移位(shift)时发生变化。在一些情况下,如果wrapper cell的扇出存在边沿触发或者电平敏感的逻辑,就会发生意外的电路操作。

为了避免此种情况,可以为wrapper cell指定一个安全值。如下图所示,在cfo输出增加了一个mux来驱动一个静态安全值(safe_value),由safe_control进行控制。
安全值

3.Shared-Register Wrapper Cell

如果在design中存在边界I/O寄存器,那么wrapper cell可以共享这些function寄存器,以减少wrapper cell的面积开销。share wrapper cell会取代原有的function寄存器,并且在function mode下可以提供原有的功能。下图是上述提到的两种wrapper cell所对应的share wrapper cell,接口均保持不变。
share

为了能够share已有的function寄存器,I/O寄存器和port必须满足一定的条件:寄存器的数据输入或者输出必须和边界port直接连线或者通过logic path相连,logic path必须敏化以产生buffer或者invert的效果,而且敏化必须由固定的信号进行控制;被share的寄存器的时钟必须是function clock,如果该function clock还驱动了core内部的其他function寄存器,那么在wrapper chain操作期间可能会干扰core的内部逻辑,因此需要为share wrapper cell提供单独的function clock或者使用 - use_dedicated_wrapper_clock这一选项。

如果使能了share wrapper cell,DFT Compiler会尽可能地插入share wrapper cell,会将其放在和存在的function寄存器相同的hierarchy下。下图展示了share wrapper cell是如何进行替换的(图中WC_S1为share wrapper cell,WC_D1为dedicated wrapper cell)。

替换
如果不满足要求,则会插入dedicated wrapper cell,如下图。
替换2

当一个寄存器既是输入又是输出时,会将其作为输入的share寄存器,同时在输出插入dedicated wrapper cell,如下图。

替换3
如果输出的寄存器被定义了安全值,通常情况下会使用dedicated safe-state srapper cell,但是当该寄存器还驱动内部逻辑时,安全值会影响内部逻辑,这种情况下会使用dedicated wrapper cell并将安全值逻辑移到输出port,如下图。
替换4

simple core wrapper chains

在简单的core wrapping flow中,输入和输出的wrapper cell能够放在同一条wrapper chain中,可以有单条或者多条wrapper chain。

在内部测试模式下,shift和capture的行为如下图所示,在capture时输入的wrapper cell保持循环用于阻止外部值输入core。
在这里插入图片描述

在外部测试模式下,shift和capture的行为如下图所示,在capture时输出的wrapper cell保持循环用于阻止core的值输出到外部。

在这里插入图片描述

最后,欢迎大家关注微信公众号:** 数字IC小白成长记录 **

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44746697

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值