IOs interface memory secutity

DFT的最佳设计实践

发布时间:2020-12-03 点击数:

1.简介

       SoC子组件(IP)通常来自内部和外部的各种来源,因此设计人员必须确保RTL可测试。 如果RTL存在可测试性问题,则无法达到测试覆盖率目标,并且需要修改RTL,这意味着需要进行多次综合,验证和自动测试模式生成(ATPG)。

       在这里,我们将讨论确保适当的可测试性的基本设计实践。


2.时钟控制

       为了使ATPG工具生成码型,触发器的时钟和复位必须完全可控。 也就是说,该工具可以在需要时触发时钟-一定不能被其他无法控制的信号选通。


2.1时钟由组合逻辑控制

       如果时钟由组合逻辑门控制,则应使用移位/测试模式信号添加倍率,以确保正确的移位和捕获时钟传播。

contenteetimes-images-01mdunn-ic-socdft-figure1.png


Figure 1: SHIFT_MODE = 1 during shift


2.2内部生成的时钟

       对于所有内部产生的时钟,应提供旁路。 如果需要此时钟,例如我们需要PLL时钟进行全速测试,则应在其上添加时钟控制逻辑。

contenteetimes-images-01mdunn-ic-socdft-figure2.png


Figure 2: Bypassing all internally generated clock


       一个示例是时序逻辑生成的时钟:

       这里的时钟是由触发器的输出生成的,因为生成的时钟不能由ATPG工具直接控制,所以我们需要添加时钟控制逻辑。

contenteetimes-images-01mdunn-ic-socdft-figure3.png

Figure 3: Bypass for clock generate from a flop


2.3测试时钟选择

        必须确保测试时钟频率始终大于或等于功能时钟频率,这样我们才不会最终对逻辑进行欠测试。


2.4使用时钟作为数据

        当时钟在设计中用作数据时,必须始终确保我们使用测试模式信号来控制此数据路径(即时钟到数据锥)。 否则,可能会导致产生不正确的模拟结果的竞争条件。

contenteetimes-images-01mdunn-ic-socdft-figure4.png

Figure 4: Eliminating race condition


3.无时钟闩锁

        静态时序分析(STA)团队仅在已计时的那些顺序元素上关闭时序。 如果锁存器的启用/时钟来自触发器的输出,则STA团队不会检查它的时序,这可能会导致错误的数据锁存。 它将在仿真或硅片上被捕获。 如果锁存器的启用是有效时钟(门控或非门控),则可以防止这种情况。

contenteetimes-images-01mdunn-ic-socdft-figure5.png

Figure 5: Un-clocked latch


        零延迟(ATPG /空闲):

        ATPG工具在生成模式时可在零延迟类型仿真模型上运行。 数据是在时钟沿之前进行采样的,因此从工具的角度来看,在这种情况下,生成码型期间的输出始终很高。

contenteetimes-images-01mdunn-ic-socdft-figure6a.png

Figure 6(a): Zero Delay


        时钟偏斜的数据(模拟):

        在仿真中,由于数据和时钟之间的设计偏差,我们可能会遇到两种情况:数据过早或过晚,在这两种情况下,我们都会开始出现故障。

contenteetimes-images-01mdunn-ic-socdft-figure6b.png

Figure 6(b): Data Early

contenteetimes-images-01mdunn-ic-socdft-figure6c.png

Figure 6(c): Data Delayed


4.重置控制

         如前所述,触发器的时钟和复位必须是完全可控的。 为此,将一个多路复用器放置在复位路径中,如下所示。 多路复用器的第一个输入是功能重置,如前所述。 第二个输入是DFT(测试)控制的RESET,DFT使用选择线(测试模式)切换到测试模式下的控制复位。

contenteetimes-images-01mdunn-ic-socdft-figure7.png

Figure 7: Reset control using mux


4.1复位路径中的开关逻辑级联

         选择信号(复位优先)没有由时序团队计时,因此该信号中的任何随机偏斜都不得影响任何触发器的状态。 如果如图所示将两个或多个这样的开关逻辑级联,则可能导致触发器的RESET引脚出现故障,从而破坏其状态。

contenteetimes-images-01mdunn-ic-socdft-figure8a.png

Figure 8(a): Cascaded reset control logic


        零延迟(ATPG):

        由于ATPG中的零延迟,选择线M1和M2将同时切换,因此复位RST始终为高。

contenteetimes-images-01mdunn-ic-socdft-figure8b.png

Figure 8(b): Zero Delay ATPG


        M1和M2之间的延迟(模拟)

        由于互连延迟,M2比M1过渡得晚,导致复位时的毛刺使触发器复位。

contenteetimes-images-01mdunn-ic-socdft-figure8c.png

Figure 8(c): Real simulation Scenario


       为了解决该问题,在复位路径中仅应使用单个多路复用器。


4.2用于控制复位的开关逻辑的综合

         如上所述,在触发器复位之前增加了一个多路复用器。 在合成过程中,该多路复用器可以转换为复数门(AOI – AND OR INVERT),如图9(a)所示。

contenteetimes-images-01mdunn-ic-socdft-figure9a.png

Figure 9(a): Synthesized mux


        这种情况可能导致触发器复位时出现故障,从而导致输出错误。

contenteetimes-images-01mdunn-ic-socdft-figure9b.png

Figure 9(b): A failing scenario


        为了防止出现毛刺,应在RTL中使用编译指示保留该多路复用器,以便将逻辑综合为无毛刺的多路复用器,而不是将任何随机AOI组合用作多路复用器。


5.组合逻辑输入的共同来源

         组合逻辑(例如2输入与门或2输入或门)的两个输入均由相同源驱动且一个反相,无论驱动节点的状态如何,组合逻辑都将保持相同的恒定输出值,但是输出 当驱动节点更改状态时,将可能包含故障。

contenteetimes-images-01mdunn-ic-socdft-figure10.png

Figure 10: Two input AND gate with common input sources


6.组合环

        当组合逻辑的输出反馈到其输入之一时,就会形成一个组合环路。 ATPG工具在假设组合元素为零延迟的情况下模拟设计,这可能会导致一个或多个输入组合的输出不确定。

contenteetimes-images-01mdunn-ic-socdft-figure11.png

Figure 11: Combinational Loops


        如上所示,输入组合(A,B,C)=(1、0、0)将在电路中产生振荡。为了防止这种情况,该工具会中断循环并将其建模为反馈路径中的TIEX块,这会导致覆盖范围损失。因此,应避免此类循环。


7.模拟量块

         使用ATPG工具时,在测试过程中所有模拟模块都需要特殊处理。许多模拟模块都可以嵌入数字逻辑,我们应该确保所有这些逻辑都是可测试的。模拟量模块接口的数字量输入/输出需要完全可控和可观察。同时,模拟输入/输出应进行包装或设置为安全状态。根据测试用例,可能要求将模块的模拟部分保持在低功耗状态(掉电或休眠),以及使其模拟输出处于高阻抗状态或驱动恒定值,因此需要特别注意在这种情况下,请通过安全地说明该块进行护理。


8.电压和温度触发器屏蔽

         SOC内置有电压和温度检测电路,以防中断或超出规定范围而产生中断。在测试过程中,需要禁用或屏蔽这些信号,因为有多种测试,例如超低压(VLV)测试,高压应力测试等,如果不屏蔽这些中断信号,它们将开始显示失败。

contenteetimes-images-01mdunn-ic-socdft-figure12.png

Figure 12: Analog Wrapper


9.结论

        使我们的设计对DFT友好非常重要。 上面的简单实践可以节省很多设计时间,精力和麻烦。 因此,建议设计人员确保遵循上述所有设计实践。

赞助企业