【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】
请阅读【嵌入式及芯片开发学必备专栏】
请阅读【芯片设计 DFT 学习系列 】
如有侵权,请联系删除
转自: 芯爵ChipLord 2024年07月10日 12:00 浙江
文章目录
- 概述
- DRC的概念
- Tessent DRC检查的概述
- 时钟相关检查
- 扫描相关检查
- BIST规则检查
- 预DFT时钟规则检查
- 如何进行DRC检查
- 启动DRC检查
- 配置DRC检查
- 生成DRC报告
- 典型的DRC规则示例
- 时钟相关规则
- 预DFT时钟规则
- DRC检查的分析与处理
- 总结
概述
在现代半导体设计中,DFT(Design for Test)技术的重要性不言而喻。它确保了芯片在制造完成后能够进行高效和可靠的测试。DFT设计规则检查(DRC)作为DFT流程中的一个关键环节,通过一系列自动化工具检测设计中的潜在问题,从而保证设计的可测试性和整体质量。在本文中,我们将详细探讨DFT DRC的概念、重要性、检查流程以及具体的规则和应用。
DRC的概念
DRC(Design Rule Check,设计规则检查)是一种通过预定义规则来验证设计是否符合特定标准和规范的过程。这些规则覆盖了电路设计、约束条件、测试过程等多个方面,旨在发现和纠正可能影响测试或故障模拟的问题。DRC在芯片设计和测试中发挥着至关重要的作用,确保最终产品的功能性和可靠性。

Tessent DRC检查的概述
Tessent是业界领先的DFT解决方案之一,其DRC工具通过一系列自动化检查,确保设计符合DFT要求。Tessent DRC检查涵盖多个方面,包括时钟相关检查、扫描相关检查、内建自测试(BIST)规则检查、Pre-DFT时钟规则检查等。

时钟相关检查
时钟在DFT中扮演着重要角色,时钟信号的定义和传递直接影响到芯片的测试效果,在tessent里,任何可能改变时序器件状态的信号,都称之为时钟。时钟相关的DRC检查主要包括以下几方面:

- 时钟定义:确保所有定义的时钟信号能够正确传递到各个存储单元的时钟端。
- 时钟状态:在所有时钟处于关闭状态时,设计中的所有扫描和非扫描存储单元都不能捕获数据。
- 时钟影响:检查时钟信号在不同状态下对数据捕获的影响,确保不会干扰存储单元的数据操作。
扫描相关检查
扫描链的定义和连接是DFT的重要组成部分,扫描相关的DRC检查包括:
- 扫描链定义:确保所有扫描链组至少包含一条有效的扫描链,避免空的扫描链组存在。
- 时钟定义:确保每个扫描链组都有对应的时钟信号。
- 扫描链连接:检查扫描链的输入和输出连接,确保其与设计的其余部分正确衔接。
BIST规则检查
内建自测试(BIST)是一种常见的DFT技术,BIST规则检查主要包括:
- BIST模式:确保BIST模式能够正确应用于电路中。
- BIST连接:检查BIST逻辑的连接,确保其与电路其他部分的正确交互。
预DFT时钟规则检查
在插入内建测试之前,预DFT时钟规则检查确保时钟的定义和结构合理,包括:
- 时钟传递:确保定义的时钟信号能够传递到所有需要的存储单元。
- 时钟频率:在定义memory时钟时,需指定正确的时钟频率。
如何进行DRC检查
进行DRC检查需要执行一系列特定的命令和操作,这些操作可以帮助设计人员快速识别并修正设计中的问题。以下是一些关键命令和操作步骤:
启动DRC检查
- check_design_rules:启动DRC检查过程。
- set_system_mode analysis:设置系统模式为分析,准备进行DRC检查。
配置DRC检查
配置DRC检查可以根据需要调整检查规则的严重程度(Error、Warning、Note、Ignore),以便更好地管理和处理DRC检查结果。
- set_drc_handling:配置DRC检查的处理方式,根据严重程度进行分类处理。
生成DRC报告
DRC检查完成后,可以生成详细的DRC报告,帮助设计人员了解和修正设计中的问题。
-
report_drc_rules:生成DRC检查报告,包含所有的DRC违例总结。
-
report_drc_rules –all_fails:生成包含详细信息的DRC检查报告。
-
report_drc_rules ID:报告某一类特定的DRC违例。
-
report_drc_rules ID-num:报告某一个具体的DRC违例。
典型的DRC规则示例
以下是一些典型的DRC规则示例,这些规则在实际设计中经常被用到,用于确保设计的各个方面都符合规范要求。
时钟相关规则
-
C1:当所有定义的时钟都处于关闭状态时,设计中所有的扫描和非扫描存储单元都不能捕获数据,否则违例。
-
C2:所有已经定义了的时钟,都应该能向后到达某一个存储单元的时钟端,否则违例。
-
C6:定义的时钟不能影响存储单元正在捕获的数据。
预DFT时钟规则
-
DFT-C1:已经定义过的时钟信号必须能够传递到所有存储单元的时钟端。
-
DFT-C5:在定义memory时钟时,需指定正确的时钟频率,确保其在实际操作中能够正常工作。
-
扫描相关规则
-
G1:除了dummy外,所有扫描链组都应该包含至少一条扫描链。定义扫描链或者删除空的扫描链组。
-
G2:除了dummy外,所有扫描链组都应该有时钟。通过add_clock定义时钟。
-
G3:如果电路里没有时序存储单元,不能定义时钟。
-
G4:如果电路里没有时序存储单元,不能定义扫描链组。
-
G5:如果电路里没有RAM,不能定义写控制信号。
DRC检查的分析与处理
DRC检查完成后,生成的报告可以帮助设计人员详细了解每一个DRC违例,并根据需要进行相应的修正。通过以下命令和操作,设计人员可以高效地分析和处理DRC违例:
-
report_drc_rules:报告所有的DRC违例(总结)。
-
report_drc_rules –all_fails:报告所有的DRC违例(详细)。
-
report_drc_rules ID:报告某一类DRC违例。
-
report_drc_rules ID-num:报告某一个DRC违例。
此外,Tessent DRC检查工具还提供了GUI界面,通过图形化界面可以更直观地查看和处理DRC违例:
-
open_visualizer:打开GUI,选择“DRC Violations”标签。
-
analyze_drc_violation:分析具体的DRC违例。
总结
DFT DRC检查作为保障芯片设计质量和可测试性的关键步骤,通过自动化工具的帮助,设计人员能够及时发现和解决潜在问题,确保最终产品的可靠性和功能性。Tessent DRC工具以其强大的功能和高效的检查流程,成为业界广泛使用的解决方案。希望通过本文的详细介绍,您能更好地理解DFT DRC检查的流程和方法,为您的设计工作提供有价值的参考。
相关文章:
【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】
请阅读【嵌入式及芯片开发学必备专栏】 请阅读【芯片设计 DFT 学习系列 】 如有侵权,请联系删除 转自: 芯爵ChipLord 2024年07月10日 12:00 浙江 文章目录 概述DRC的概念Tessent DRC检查的概述时钟相关检查扫描相关检查BIST规则检查预DFT时钟规则检查 …...
深度学习:如何计算感受野
感受野(Receptive Field)是卷积神经网络(CNN)中的一个重要概念,用于描述输入图像中的一个像素在输出特征图中影响的区域大小。在设计和理解卷积神经网络时,计算感受野有助于理解网络如何对输入数据进行处理…...
【状语从句】
框架 概念,特点主将从现连接词时间条件地点结果方式让步原因目的比较省略倒装 解读 1【概念,特点】 一个完整的句子,去修饰另一个完整句子中的动词,称为状语从句;特点:从句完整,只用考虑连接词是…...
阿里云服务器安装Anaconda后无法检测到
前言 问题如标题所言,就是conda -V验证错误,不过后来发现其实就是虽然安装时,同意了写入环境变量,但是其实还没有写入,需要手动写入。下面也会重复一遍安装流程。 安装 到[Anaconda下载处](Download Now | Anaconda)查…...
在没有源程序的情况时,如何通过控制鼠标按钮控制电脑exe程序?
有时候想控制第三方软件,但是没有源程序,可以控制鼠标键盘自动操作软件达到我们想要的目的 首先建一个功能类包含窗口控制,鼠标控制和输入控制等 csharp using System; using System.Collections.Generic; using System.Linq; using System.…...
如何排查GD32 MCU复位是由哪个复位源导致的?
上期为大家讲解了GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位、内核软复位、窗口看门狗复位等,在一个GD32系统中,如果莫名其妙产生了MCU复位,如何排查具体是由哪个复位源导致的呢? GD32 MC…...
【C算法】编程初学者入门训练140道(1~20)
牛客编程初学者入门训练150题 BC1 实践出真知BC2 我是大VBC3 有容乃大BC6 小飞机BC7 缩短二进制BC8 十六进制转十进制BC9 printf的返回值BC10 成绩输入输出BC11 学生基本信息输入输出BC12 字符圣诞数BC13 ASCII 码BC14 出生日期输入输出BC15 按照格式输入并交换输出BC16 字符转…...
消息队列-rabbitmq(生产者.消费者. 消息.可靠性)
生产者者的可靠性 为了保证我们生产者在发送消息的时候消息不丢失,我们需要保证发送者的可靠性 1.生产者重试 假如发送消息的时候消息丢失 ,我们可以使用发送者 重试机制,尝试重新发送消息 实现该机制非常简单,只需要在yml文…...
《InheriBT行为树》For Unity
InheriBT: Unity Editor中的行为树编辑框架 行为树(Behavior Tree)是一种广泛应用于人工智能(AI)领域的决策模型,特别是在游戏开发中。行为树通过分层结构和节点的组合,实现了复杂行为的简洁表达。然而&am…...
黑马头条Day11- 实时计算热点文章、KafkaStream
一、今日内容 1. 定时计算与实时计算 2. 今日内容 KafkaStream 什么是流式计算KafkaStream概述KafkaStream入门案例SpringBoot集成KafkaStream 实时计算 用户行为发送消息KafkaStream聚合处理消息更新文章行为数量替换热点文章数据 二、实时流式计算 1. 概念 一般流式计…...
pnpm 设置国内源
pnpm config set registry https://registry.npmmirror.com/...
链表分割 C语言
链表分割_牛客题霸_牛客网 (nowcoder.com) ( 点击前面链接即可查看题目) /* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {} };*/ #include <cstddef> class Partition { public:ListNode* partition(ListNode* pHea…...
python编程,设计一个详细的软件 与SADS 相似
软件功能模块: 用户界面模块(UI Module) 项目管理界面模型构建界面分析和设计界面结果展示和报告生成界面 数据库模块(Database Module) 材料数据库结构组件数据库设计标准和规范数据库用户项目数据存储 模型构建模块&…...
META 备受期待的 Llama 3 405B 即将发布
本心、输入输出、结果 文章目录 META 备受期待的 Llama 3 405B 即将发布前言Llama 3 405B或许会彻底改变专用模型的数据质量Llama 3 405B将形成新的模型生态系统:从基础模型到专家组合Llama 3 405B有最高效 API 的竞争Llama 3 405B 基准测试META 备受期待的 Llama 3 405B 即将…...
c# Math.Round()四舍五入取整数
可以使用Math.Round()方法进行四舍五入取整数的操作。 以下是使用Math.Round()方法的实现方法: 将浮点数直接作为参数传递给Math.Round()方法,并指定要保留的小数位数。此方法将返回最接近的整数值。 double number 3.89; int roundedNumber (int)Mat…...
【C++BFS算法】886. 可能的二分法
本文涉及的点 CBFS算法 LeetCod886. 可能的二分法 给定一组 n 人(编号为 1, 2, …, n), 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。 给定整数 n 和数组 dislikes ,其…...
【MySQL】记录MySQL加载数据(LOAD DATA)
MySQL LOAD DATA 一、背景二、模拟生成用户信息三、加载到mysql表3.1、建表语句3.2 加载数据3.3、查看结果 一、背景 现在有个需求是将用户信息存入student.data文件中,在现在load到数据库中 二、模拟生成用户信息 假设用户信息,包含姓名,…...
6 网络
6 网络 1、概念2 IP地址3、套接字4、TCP协议4.1 TCP协议的基本特征4.2 建立连接4.4 终止连接4.5 编程模型 5、UDP协议5.1 UDP协议的基本特性5.2 常用函数5.3 UDP通信模型 6、域名解析 1、概念 计算机网络是实现资源共享和信息传递的计算机系统 ISO/OSI网络协议模型 TCP/IP协…...
SQL中CASE WHEN的用法
CASE WHEN的用法 1. CASE WHEN数据转换 说明:使用CASE WHEN我们可以将范围的数据转换成特定的值来表达; 假如:有一个员工表Employee(employee_id,department_id.salary,name,age); 需求:需要根据薪资情况来评定等级:…...
CTF-Web习题:[GXYCTF2019]Ping Ping Ping
题目链接:[GXYCTF2019]Ping Ping Ping 解题思路 访问靶机,得到如下页面,类似于URL参数 尝试用HackBar构造url传输过去看看 发现返回了ping命令的执行结果,可以猜测php脚本命令是ping -c 4 $ip,暂时不知道执行的函数…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
shell脚本质数判断
shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...
Pandas 可视化集成:数据科学家的高效绘图指南
为什么选择 Pandas 进行数据可视化? 在数据科学和分析领域,可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具,如 Matplotlib、Seaborn、Plotly 等,但 Pandas 内置的可视化功能因其与数据结…...
Vue3学习(接口,泛型,自定义类型,v-for,props)
一,前言 继续学习 二,TS接口泛型自定义类型 1.接口 TypeScript 接口(Interface)是一种定义对象形状的强大工具,它可以描述对象必须包含的属性、方法和它们的类型。接口不会被编译成 JavaScript 代码,仅…...
