首页 > 其他分享 >OCC控制逻辑重点详细讨论

OCC控制逻辑重点详细讨论

时间:2024-07-12 11:26:23浏览次数:7  
标签:capture 逻辑 chain clk shift OCC clock 详细 occ

occ是什么:自己看manu

为了控制fast clock ,我们加入了OCC (on-chip clock control)模块,他的作用如下:

为每个clock domain提供独立的控制
根据pattern的情况 为 capture cycle分发正确数量的脉冲
更加干净的在shift clock和fast clock之间进行切换;
根据测试的类型,判断capture阶段是使用slow clock还是 fast clock;

以上主要由其occ结构中得shift_regs和occ_control来控制:shift_reg,即occ_chain(一般单独串chian)控制capture阶段中clk_pulse的精准次数,即func_clk的pulse;occ_control控制llslow_clk和fat_clk的快慢切换和clk_pulse次数。

结构如下:

根据dft_test_mode 和AC_MODE 的状态控制,分为两种模式Test和func,又根据capture的分为DC和AC测试。

func_mode 下,即occ_bypass模式:其一:fast_clk从顶层PLL过来(一定熟悉clk_path结构),只经过buff、fast_gate、mux等结构,会有一些delay的延迟,但对其原有的功能时序没有太大影响;其二:同时也会通过slow_clk_gate逻辑关闭test_clk的活动,减小功耗。

shift_mode :不赘述;

capture_mode:

在dc_capture 中:scan_en拉低,需要在atpg中设置一些dead_cycles的,让scan_en足够稳定,同时在SDC中设其为multi_cycles,让生出的pat和sdc保持一致;在ac_capture中同理。

几个特殊的信号:

1.occ_kill_clk_en:

用于ATE机台debug:在test_mode=0时,关闭occ输出的clk,减小power;

2、shift_only_mode:

test_mode=0,scan_en=1,slow_clk一直在活跃,也用于debug调试;

3、inject_tck:

用于选择pad上的slow_clk还是pad上的ijtag_tck,作为sel信号,来自于occ_control的tdr上。也是机台调试用。

出pulse—clk的方式:

方式一:

CCD(clock control definition)
用户定义ATPG能怎样控制时钟;(具体ATPG如何控制 产生多少个pulse 是由ATPG工具在推pattern的时候决定的)
并不会定义特定的时序;所以并不能配置复杂的clock schemes;
对每一个内部时钟做单独的definition;工具会自动决定在capture cycle 使用哪个clock,去detect更多的faults;
DRC的时候会验证 test procedure文件中时钟第一的语法;

CCD
两种定义:

per-cycle clock control (最常用的):
允许你使用scan cell的值基于单个的capture cycle 去定义内部时钟的输出;
使用 基于流水线的时钟生成,每个cycle 使用一bit(scan cell里的值 sub-chain里面的值)去控制时钟;

取决于capture_cycle_width[1:0]的值:默认为10,有三个cell,即三个pulses;00 有一个,01 有两个,一般seq_depth为2,则设置为01,采用两个clk_pulse,可以减小shift_cycles数量,缩短测试时间;11有四个。

clk_seq_pat:

使用 scan_cell里的值 基于capture cycle的时序去定义内部时钟; 使用基于计数器的时钟生成电路;不能被用来生成 launch-off-shift’的pattern;

区别:pre-cycle使用sub-chain 直接去存储pulse; 而sequence clock control 使用sub-chain去控制pulse的出现时间

方式二:
NCP(named capture procedure)
用户指定外部信号和内部生成时钟的关系, 好处是用户可以控制capture cycle全部的失踪时序;
前提是你得先写好procedure;一般不用。

OCC两种类型:

1、标准型:不赘述,一般最多三级级联,不要同时使能。

优点:shift_ck 和func_ck  time_path分开互不影响。

2、父子型:有两种模式,父模式只有select功能,子模式有gate和select功能,一般para_occ在top层,做时钟选择,child_occ在底层做gate和clk_shoppping_control,两者级联使用,以减小clk_tree 的分支。一般用在,例如在clk_mesh结构或者H_clk_tree的设计中,不能用clk_mux的情况下。

缺点:对时序要求很要,需要主动把握。

插OCC的策略:

首先trace整个时钟网络结构,例如分频div,clk_gate,clk_mux等位置。一般occ插在这些逻辑的前面,同时不能影响功能func_clk的关系。一些特殊结构glitch_free_mux等,需要专门分析,可以放在其后,保证clk的稳定输出,同时采用tdr静态控制信号对其clk、rst的实现自主可控。

OCC_CHIAN的处理:

一般采用西门子tessent工具串chain时,不会根据reg的位置去做balance串chain,而是随机串起来,所以有可能shift_clk 频率太高时(超过100Mhz),timing过不了。需要后端提供PR后的def/lef位置信息做occ_chain_reorder处理。

Occ_chain在压缩时可能出现的问题:

一般采用双edt结构缓解顶层压缩,模块级会在ext_mode下采用ext_edt结构压缩wrap_chain和occ_chian,两者统称为ext_chain,对occ_chian拿出来单独压缩;如果设计比较大,即func_ck比较多,插入的occ较多,几百甚至上千,在occ_chain较多,且wrap_chain较少的情况下,ext-edt可能会失去解压缩能力,导致atpg推不出pats 。

解决办法:1.对occ_chain 单独出chain_family,且不加入ext_edt结构;缺点:需要使用多余的gipo资源。

2、reduce occ_chain的长度;缺点导致atpg推算的逻辑深度不够,有些深度faults测不出来,覆盖率可能会降低。

OCC交付数据:

1.三种模式下的 SDC :

scan_shift : case test_mode=1;test_en=1)

scan_dc_capture :case test_mode=1;test_en=0 fast_capture_mode=0)

func_mbist (包括ac_capture func  mbist)  case scan_en=0 

附加理论:

Mini_occ结构:在tessent中name is  *edt_gate_tessent_sib_sti_inst;是由ijtag_tck和DFT_test_clk,clk_mxu,sel 为ltest_en实现的时钟切换逻辑;即在DFT _test_clk的后面的cg的shift_capture_clk处插入mini_occ结构。

应用场景:设计中存在fun_ck小于shift_ck的时钟,采用mini_occ切掉。以处理atpg推ac_pat时DRC违例。原因:由于fun_ck的频率过小,pulse_width太宽,在capture_cycle里无法实现至少两个ck_pulse,以至无法launch & capture trans faults。

标签:capture,逻辑,chain,clk,shift,OCC,clock,详细,occ
From: https://blog.csdn.net/jinkai0822/article/details/140345911

相关文章

  • 在springboot 中使用Apache HttpClient 4的详细示例
    在SpringBoot中使用ApacheHttpClient,可以通过配置HttpClient的Bean并使用它来发起HTTP请求。下面是一个详细的示例,展示了如何在SpringBoot应用中集成和使用ApacheHttpClient。步骤1:添加依赖在你的pom.xml文件中添加ApacheHttpClient的依赖:<dependency>......
  • 在springboot 中使用Apache HttpClient 5的详细示例
    ApacheHttpComponentsClient5.x是HttpClient的最新版本,与4.x系列相比,5.x系列进行了许多改进和重构,提供了更现代的API和更好的性能。以下是使用步骤步骤1:添加依赖在你的pom.xml文件中添加ApacheHttpClient5.x的依赖:<dependency><groupId>org.apache.htt......
  • 2024最新【内网隐蔽扫描,Nmap高级用法】(非常详细)零基础入门到精通,收藏这一篇就够了
    前言Nmap(NetworkMapper)是一款开源免费的网络发现和安全审计工具,主要用于扫描目标主机的开放端口、操作系统类型、启用的服务等信息。以下是Nmap的一些常见使用介绍Nmap的常见使用介绍「主机发现」:Nmap可以通过发送不同类型的探测包(如ICMPecho请求、TCPSYN包等)来检测......
  • 【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享|附代码数据
    原文链接:http://tecdat.cn/?p=22410 最近我们被客户要求撰写关于逻辑回归的研究报告,包括一些图形和统计输出。本文介绍了逻辑回归并在R语言中用逻辑回归(Logistic回归)模型分类预测病人冠心病风险数据逻辑回归是机器学习借用的另一种统计分析方法。当我们的因变量是二分或二元时......
  • 利用逻辑回归判断贷款用户是否会逾期
            逻辑回归是一种广义的线性回归模型,用于解决二分类问题。它通过Sigmoid函数将线性回归模型的输出转换为0到1之间的概率值,用于预测二元响应变量的分类概率。在逻辑回归中,我们通过极大化似然函数或最小化损失函数(如对数损失函数)来求解模型参数,并利用梯度下降算法......
  • threadLocal详细认识(使用场景与局限性)与样例测试
    Threadlocal的介绍与使用1,是什么?ThreadLocal是Java提供的一个工具类,用于在多线程环境中为每个线程提供独立的变量副本。它是Java标准库中的一部分,提供了线程局部存储的功能,这意味着每个线程都有自己独立的变量副本,这些副本在其他线程中不可见。2,有啥特点?线程隔离:Th......
  • C语言大端存储和小端存储到底有什么区别? 结尾详细题目加深理解
    一.为什么有大端小端模式?        大端模式(Big-endian)和小端模式(Little-endian)是计算机科学中数据存储的一种方式,它们指的是多字节数据类型(如整数、浮点数等)在内存中的字节序(byteorder)。这两种模式的主要区别在于数据的最高有效字节(MSB)和最低有效字节(LSB)的存储位置。......
  • 虚拟机 VMware - 安装详细步骤
    目录虚拟化概念VMwareWorkstation简介一、安装准备1.安装环境2.软件下载二、常见问题1.虚拟机的【默认位置】会在C盘,盘符内存不够的建议改为D盘或别的盘符2.验证许可证是否密钥是否成功。进入虚拟机点击【帮助】下的关于VMwareWorkstation(A)可以查看验证许可证......
  • Spring MVC 全面指南:从入门到精通的详细解析
    引言:SpringMVC,作为Spring框架的一个重要模块,为构建Web应用提供了强大的功能和灵活性。无论是初学者还是有一定经验的开发者,掌握SpringMVC都将显著提升你的Web开发技能。本文旨在为初学者提供一个全面且易于理解的学习路径,通过详细的知识点分析和实际案例,帮助你快速上手Sprin......
  • Python爬虫入门详细教程,通俗易懂,看一遍就会!(含实例)
    一、正确认识Python爬虫爬虫是门很有意思的技术,可以通过爬虫技术获取一些别人拿不到或者需要付费才能拿到的东西,也可以对大量数据进行自动爬取和保存,减少时间和精力去手动做一些累活。【爬虫资料领取方式在文末!!】可以说很多人学编程,不玩点爬虫确实少了很多意思,不管是业余......