当前位置: 首页 > news >正文

数字IC后端设计实现OCC(On-chip Clock Controller)电路介绍及时钟树综合案例

在这里插入图片描述

数字IC后端时钟树综合专题(OCC电路案例分享)

复杂时钟设计时钟树综合(clock tree synthesis)常见20个典型案例

1、什么是OCC?
片上时钟控制器(On-chip Clock Controllers ,OCC),也称为扫描时钟控制器(Scan Clock Controllers,SCC)。OCC 是插在SoC上的逻辑电路。在ATE(自动测试设备)上对芯片做ATPG测试时,OCC用于控制内部scan flip-flop时钟。

OCC电路可以实现ate clock和function clock之间的切换,并且控制在什么时刻跳转。所以standard的OCC在设计时需要拥有三个主要功能:clock selection, clock chopping control and clock gating。

在这里插入图片描述

2、OCC的架构及功能
这里我们会介绍一下Synopsys的OCC 1.0 ,Synopsys的OCC定义了多个输入输出端口:

在这里插入图片描述

-OCC的基本逻辑

下图显示了one-single clock OCC的概念操作,未显示电路实现细节,本文目的是演示它是如何工作的。
当OCC处于function mode时,test mode = 0,此时pll _clk选通,OCC会向内部 design输入function clock,此时可以将OCC电路视为transparent。

在这里插入图片描述

当OCC处于shift mode时,我们在ate clock的控制下将测试向量load进internal scan chain和clock chain内,所以test mode = 1,scan_en = 1,此时ate _clk选通,完成shift操作。

在这里插入图片描述
OCC的shift mode

Synopsys的OCC 1.0 没有真正的slow capture mode,需要做stuck-at 测试时,可以直接从ATE机台提供OCC bypass mode capture clock。通过外部ATE机台对ate clock的pulse进行适当的控制就可以进行stuck-at测试,不需要clock chain的控制。此时test mode = 1,pll_bypass = 1。

在这里插入图片描述

在这里插入图片描述

OCC的bypass mode

当OCC处于fast capture mode时,期望在capture阶段生成两个function clock脉冲。所以test mode = 1,scan_en = 0,pll_bypass = 0,此时pll _clk选通,并且PLL cycle counter 和clock chain的输出经过ICG共同决定gating几个时钟脉冲,完成at-speed测试。

OCC的fast capture mode
Fast capture mode的波形图如下图所示,下面我们来简单地分析一下。

在这里插入图片描述

Fast capture mode波形图

当我们进行capture操作时,scan enable信号要从1变为0,为了保证得到的是稳定的0信号,我们需要先经过sync cell的3个synchronization cycles。
通过先前shift过程中load在clock chain里的test pattern(0110)以及PLL cycle counter的共同控制,在第2、3个cycle给出两个pulse,即launch和capture。
最后scan enable信号从0变为1,完成capture的操作,进入shift过程。
需要注意的是,对于Synopsys的OCC,Scan_en = 1后,ate clock在第二个pulse才出现 ,此过程被称为pre_shift 。

介绍完OCC电路的结构和工作模式后,我们来看看一个包含OCC设计的时钟树综合。一般来说这个电路在长clock tree阶段不做特殊处理,func clock的时钟树会被拖得比较长。

下图所示为典型OCC电路的时钟结构(本次复杂时钟clock gen训练营新增案例)。欢迎大家来讨论应该如何长clock tree? 如果直接让工具自动做clock tree,通常会遇到哪些问题?

ON CHIP Controller电路时钟树综合

http://www.lryc.cn/news/542396.html

相关文章:

  • Linux内核,slub分配流程
  • 本地部署DeepSeek-R1(Ollama+Docker+OpenWebUI知识库)
  • Java 实现快速排序算法:一条快速通道,分而治之
  • 20250223下载并制作RTX2080Ti显卡的显存的测试工具mats
  • element-ui的组件使用
  • 医疗AI领域中GPU集群训练的关键技术与实践经验探究(上)
  • 详解Redis淘汰策略
  • HarmonyOS 5.0应用开发——鸿蒙接入高德地图实现POI搜索
  • nginx关于配置SSL后启动失败原因分析
  • 【自学嵌入式(9)ESP8266网络服务器的使用】
  • 危化品经营单位安全管理人员的职责及注意事项
  • 项目实战--网页五子棋(匹配模块)(5)
  • mysql 迁移到人大金仓数据库
  • uniapp 网络请求封装(uni.request 与 uView-Plus)
  • 计算机网络与通讯知识总结
  • DPVS-2:单臂负载均衡测试
  • open webui 部署 以及解决,首屏加载缓慢,nginx反向代理访问404,WebSocket后端服务器链接失败等问题
  • 交通物联网:概念、历史、现状与展望
  • 如何实现应用程序与中间件的类进行隔离
  • MySQL 数据库基础
  • 微服务即时通信系统---(三)框架学习
  • 解决Spring Data JPA set值后自动更新到数据库问题
  • 心理咨询小程序的未来发展
  • STM32-智能台灯项目
  • c# —— StringBuilder 类
  • Linux 核心架构与组件(2025更新中)
  • Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35
  • 陀螺匠·企业助手v1.8 产品介绍
  • 文件包含-session2
  • GitHub免密操作与跨服务器通行:SSH密钥一站式配置指南