DFT中scan shift/launch/capture过程,launch off shfit/launch from capture & OCC

本文深入探讨了At-speed测试模式下scan测试的过程,包括launch和capture两个关键阶段,以及支持这一测试模式的OCC电路设计原理。介绍了OCC电路如何在不同测试模式下切换时钟源,确保芯片在at-speed测试中准确检测延迟故障。

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


本篇内容经过整理后可以分别阅读以下文章:
scan过程的shift,launch和capture
OCC(On-Chip-Clock)含义及功能和结构
详解DFT的scan(边界扫描)

scan的过程解说

scan分为stuck-at和at-speed两种测试模式,

itemclk说明对应的DC/AC
stuck-at测试机提供时钟 时钟慢静态测试 测试芯片中的固定故障 故障和时钟频率无关DC mode
at-speedfunction clk测试芯片中的延迟故障,也就是transitionAC mode

DC和AC模式下它们的shift过程是一样的,而且sfift clk来自ATE,由于shfit clk是整芯片全局clk,很难做到高频,所以基本频率都在100M以下。在launch和capture过程的时钟策略是不一样的
下面以At-speed来讲解scan过程

At-speed测试

at - speed测试生成的测试向量分为两部分。第一部分是在一个组合逻辑的输入端发射( launch)一个 0 - 1或1 - 0的翻转,第二个部分要捕获( capture)组合逻辑的输出端响应。如果在指定的时间周期内capture的响应正确,那么说明电路没有at-speed故障。

scan 过程

图1 at-speed测试原理
图1 at-speed测试原理

    1. scan shift
      在shift阶段( scan_enable = 1或者叫shift_enable)使用测试机提供的慢速时钟,A和B分别装载0和1。这个过程就是测试机将测试向量‘01’shift到对应的flip-flop。
    1. launch
      首先set scan_enable = 0,这时发一个功能时钟( launch时钟) , B会在D端捕获0,一个1 - to - 0的翻转会传递到C。(为了简单认为两寄存器之间没有组合逻辑)
    1. capture
      保持scan_enable = 0,在第二个功能时钟脉冲( cap ture时钟) C会捕获这个变化。

      如果在第二个时钟C捕获到了0,意味着在一个周期内完成了所需的翻转。
      图2 at-speed测试clk波形
      图2 at-speed测试clk波形
      图2中Clk信号在shift和launch、cap tuer阶段的切换、以及launch、cap ture2个功能脉冲的产生需要有专门的电路支持。这就是下面要介绍的OCC电路。

OCC电路

一般芯片内部都由CRG (Clock Reset Generation)模块来提供系统工作所需的各种时钟,然后提供给各个模块使用。为了支持at-speed测试,需要在CRG和模块之间加入OCC电路。OCC电路可以支持以下功能:

  • 正常功能模式下输出系统时钟。
  • stuck_at测试模式下输出测试机慢速时钟scan_clk。
  • at_speed测试模式下输出如图2的时钟。

OCC电路的模块结构示意图如图3所示。
图3 OCC结构图
图3 OCC结构图
下面分别介绍各个模块的作用。
OCC_SYNC对控制信号(通常为scan_enable)使用本地时钟进行同步处理,避免亚稳态。
OCC_DLY对控制信号进行延时,确保OCC在输出系统前,芯片处于稳定状态。一般OCC_DLY中使用计数器计算延时,计数器位宽由Dly_cfg[N:0 ]配置。此模块可以根据需要决定是否加入。
OCC_CTRL电路用来产生图2 中的at-speed测试时钟。电路如图4所示。
图4 at-speed的测试时钟的产生
图4 at-speed的测试时钟的产生
在2 pulse generation中前2个寄存器用来对控制信号做同步,后面的2个寄存器和与门产生2个周期长度的控制信号。然后和clock gating 中的PLL_CLK做一个gating,生成2个功能脉冲,第一个即launch 时钟, 第二个为capture 时钟。最后用scan_enable信号来实现图2中不同阶段的选择。Occ_en信号用来配置此OCC电路是否使能。

以上摘自(上海交通大学,上海200052)李 冬,任敏华《如何用OCC电路实现at - speed测试》,该文详细给出了scan at-speed mode的详细过程和OCC电路原理

### DFT OCC Clone 实现及常见问题解决方案 在处理DFT(密度泛函理论)计算中的OCCOccupation)克隆操作时,通常涉及到电子结构软件包的具体实现细节。对于Abacus这款开源材料模拟程序而言,其源码托管于GitHub仓库中[^1]。 #### 1. OCC Clone 的基本概念 OCC Clone指的是复制特定占据态的行为,在DFT框架下主要用于加速自洽场迭代过程或初始化波函数。通过合理设置初始占据数可以有效提高收敛速度并改善数值稳定性。 #### 2. Abacus 中 OCC Clone 的具体实现方式 为了理解如何在Abacus中执行OCC Clone操作,建议先获取最新版本的源代码: ```bash git clone https://github.com/deepmodeling/abacus-develop.git ``` 进入项目目录后,可以通过阅读`module_occ`模块下的相关文件来深入了解具体的算法逻辑。该部分主要负责管理K点网格上的能带分布以及相应的占据情况。 #### 3. 常见问题及其解决方案 - **问题一:无法正确读取输入参数** 如果遇到此类错误提示,需确认输入文件格式是否遵循官方文档规定,并仔细核对关键字拼写准确性。此外还需注意不同版本间可能存在兼容性差异。 - **问题二:SCF 过程不收敛** 对于难以收敛的情况,尝试调整混合方案、增加最大迭代次数或是适当放宽能量变化阈值等措施往往能够取得良好效果。必要时可参考已有文献资料寻找更优策略。 - **问题三:内存溢出异常** 当处理大规模体系时容易触发此现象。此时应考虑优化数据存储结构减少冗余开销;或者利用分布式计算资源分担负载压力以缓解单节点负担过重的问题。 ```python # Python 脚本用于辅助分析日志文件 import re def parse_log(file_path): with open(file_path, 'r') as f: content = f.read() pattern = r'Error.*?: (.*)' errors = re.findall(pattern, content) return errors ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值