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

【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 相似

软件功能模块&#xff1a; 用户界面模块&#xff08;UI Module&#xff09; 项目管理界面模型构建界面分析和设计界面结果展示和报告生成界面 数据库模块&#xff08;Database Module&#xff09; 材料数据库结构组件数据库设计标准和规范数据库用户项目数据存储 模型构建模块&…...

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()方法的实现方法&#xff1a; 将浮点数直接作为参数传递给Math.Round()方法&#xff0c;并指定要保留的小数位数。此方法将返回最接近的整数值。 double number 3.89; int roundedNumber (int)Mat…...

【C++BFS算法】886. 可能的二分法

本文涉及的点 CBFS算法 LeetCod886. 可能的二分法 给定一组 n 人&#xff08;编号为 1, 2, …, n&#xff09;&#xff0c; 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人&#xff0c;那么他们不应该属于同一组。 给定整数 n 和数组 dislikes &#xff0c;其…...

【MySQL】记录MySQL加载数据(LOAD DATA)

MySQL LOAD DATA 一、背景二、模拟生成用户信息三、加载到mysql表3.1、建表语句3.2 加载数据3.3、查看结果 一、背景 现在有个需求是将用户信息存入student.data文件中&#xff0c;在现在load到数据库中 二、模拟生成用户信息 假设用户信息&#xff0c;包含姓名&#xff0c;…...

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数据转换 说明&#xff1a;使用CASE WHEN我们可以将范围的数据转换成特定的值来表达; 假如&#xff1a;有一个员工表Employee(employee_id,department_id.salary,name,age)&#xff1b; 需求&#xff1a;需要根据薪资情况来评定等级&#xff1a;…...

CTF-Web习题:[GXYCTF2019]Ping Ping Ping

题目链接&#xff1a;[GXYCTF2019]Ping Ping Ping 解题思路 访问靶机&#xff0c;得到如下页面&#xff0c;类似于URL参数 尝试用HackBar构造url传输过去看看 发现返回了ping命令的执行结果&#xff0c;可以猜测php脚本命令是ping -c 4 $ip&#xff0c;暂时不知道执行的函数…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录

#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...