时钟/复位设计中的DFT考虑

本文详细探讨了集成电路设计中时钟和复位的处理,包括时钟源的选择、时钟门控以及时钟分频。在scantest期间,需要使用scan_mux确保时钟和复位信号来自PAD,同时时钟门控的使能信号应考虑scan_mode。此外,复位信号也需要加入scanmux,并在DFT设计中处理好PAD的控制信号,以确保芯片在扫描测试期间的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

芯片正常工作时,各寄存器使用片上的正常时钟和复位信号,但在进行scan test时,时钟和复位应该分别是来自PAD的scan_clk和scan_rstn信号,在进行前端设计时,需要加入scan mux,将芯片内部的时钟和复位bypass掉,选用scan_clk和scan_rstn,即DFT需要对电路的Controllability(可控性).

1.时钟

时钟的设计考虑主要包括时钟源的选择和clock gating的设计

1.1 时钟源的选择

时钟可能是直接来自片上PLL/OSC产生的时钟或是由数字电路产生的时钟(如计数器分频产生的时钟,为了使用时钟下降沿而通过反相器产生的时钟等)。各异步时钟域的源时钟以及数字逻辑产生的时钟后面,都要加上scan mux,以在scan mode下选择scan_clk,但有一个例外是,经过clock gating产生的时钟,因为时钟可以认为是直接穿过gating(为了保证综合工具能正确识别clock gating,在verilog中使用clock gating必须采用例化common cell的方式),而不必定义新的时钟,所以无需加scan mux。由于现在DFT对at-speed test的需求,很多时候不再单纯地使用scan mux去选择clock,而是使用OCC(on chip clocking),频率高的时钟使用HOCC,频率低的时钟使用LOCC。

一种特殊情况是,i3c/spi等接口模块会使用来自PAD的信号直接驱动寄存器,在SDC中会把相应的PAD端口也定义为时钟,并在RTL代码中为它们插入scan mux。

1.2 时钟门控

时钟门控的enable信号来自电路中的寄存器或组合逻辑产生的信号,在scan shift过程中,可能导致这些信号意外变成0,导致时钟被gate掉,所以clock gating的实际使能信号应该是enable | scan_mode,保证在进行scan test时时钟不会被关闭。
2022.4.1补充,实际工程中,clock gating cell除输入和输出时钟(一般分别是clk和gclk端)外,会有EN和TE两个输入端口,EN端接function下的所需要的控制信号,TE端接scan_mode信号,这两个信号会在cell内部左或运算,作为ICG真正的EN信号。另外在比较复杂的DFT测试中,TE端可能并不是接scan_mode信号,而是icg_mode信号,从而使这个cell并不是在scan mode下一直常通,而是可以通过ATE进行控制。通常测试情况下,icg_mode应一直为1,即所有的flip-flop都进入scan chain进行测试,但是ATE也可以通过选择性地将icg_mode置0,由EN端去控制gating的开关,使gating后的寄存器没有时钟,观测整个chain的行为是否符合预期,以测试EN端是否发生了stuck-at fault,这需要使用和一般scan test下不同的test pattern。

1.3 时钟分频

在scan ac测试中,为了保证at-speed测试时所选择的func clock是电路signoff的最高频率,CRG中的时钟应保证没有分频(即1分频),其中的divider的div值在scan_ac_mode下应该直接bypass为1,而不是选择来自寄存器或其他硬件控制电路的值。同时CRG相应电路不应该在ac 测试的scan阶段被串入scan chain,保证在at speed测试中CRG正常工作。这一点一般是通过dummy reg,在ac mode下将CRG电路从scan chain中bypass掉。

2.复位

芯片上的复位源来自模拟电路(一般是power on reset)或数字电路,因为在scan shift过程中寄存器的值并不确定,如果复位信号的部分或全部来自数字电路,可能由于产生复位的寄存器值变化,导致复位被意外触发,测试失败,因此,同样需要加入scan mux,在scan mode下选择scan_rstn(任何由组合逻辑产生或由复位同步器产生的复位信号,都要加入scan mux)

对于 DFT (Design For Test可测性设计)设计,如果复位信号不是直接来自于 I/O 引脚,在 DFT 扫描和测试时,复位信号必须被禁止,因此需要额外的同步电路 ------《硬件架构的艺术》

9/2再补充:和DFT工程师确认了一下,对在RTL阶段没有给复位加入scan mux的寄存器,工具可以再次进行插入,但考虑到可能只有部分寄存器没有插入,简单起见会给所有寄存器再插一遍。当然,在前端保证设计的正确性是我们理应做到的,所以应尽可能保证所有寄存器在RTL阶段就已经有了scan mux。

3.PAD

在写作过程中还想到一点,PAD的控制信号也需要进行一定的处理,例如,在scan过程中scan相关的信号有确定的配置,需要在scan mode下将这些信号设置为需要的值,且一般来讲,scan在产生这些控制信号的逻辑中要有最高的优先级。

另外,pad mux module或控制芯片模式的module要格外注意,以避免scan过程修改了芯片的工作模式(要保证scan test期间芯片处于scan mode,工作模式可能由PAD输入的信号控制或芯片内部的寄存器控制,如果是寄存器控制,则该寄存器不能被加入scan chain中,如果是PAD输入控制,则PAD sel信号不能发生变化)和PAD sel信号(也可能是直接由PAD输入或PAD mux module的寄存器控制,如果是寄存器控制,则该寄存器不能被加入scan chain中)。

9/1晚上再次更新,附上两篇补充说明:http://blog.eetop.cn/home.php?mod=space&uid=1592&do=blog&id=6946129
http://blog.eetop.cn/blog-1592-6946122.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值