【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检查的流程和方法,为您的设计工作提供有价值的参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL优化(一)基础概念

基数(cardinality) 表中某个列的唯一键的数量叫做基数,主键列的基数就是表中数据的总行数。 可以用select count(distinct 列名) from 表名来计算基数。 基数的高低影像列的数据分布。 例如:先用Scott账户创建一个测试表test …

设计模式15-门面模式

设计模式15-门面模式 "接口隔离"模式典型模式1. 适配器模式(Adapter Pattern)2. 装饰模式(Decorator Pattern)3. 桥接模式(Bridge Pattern)4. 代理模式(Proxy Pattern)5. …

Git基本原理介绍及常用指令

文章目录 前言一、Git是什么?集中化的版本控制系统分布式版本控制系统 二、Git基本概念三、git命令操作配置用户信息常用指令 总结 前言 如果你用Microsoft Word写过论文,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不…

linux:用户管理,增删改

1.查看当前登录的用户信息 [root@bgx ~]# id #查看当前所登陆的用户信息 # uid:用户id,系统只能识别uid,不能识别名字,人看名字 # gid:组id uid=0(root) gid=0(root) groups=0(root) [root@bgx ~]# id oldboy #查看其它用户的信息 uid=1000(oldboy) gid=1000(oldboy) g…

【Linux】2.Linux 指令大揭秘:常见八个指令的妙用(上)

欢迎来到 CILMY23 的博客 🏆本篇主题为:Linux 指令大揭秘:常见八个指令的妙用(上) 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | …

千万别从系统中创建线程, 看看从线程池中调用的线程的效率(1)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

Web3.js 4.x版本事件监听详解:从HTTP到WebSocket的迁移

项目场景 在一个使用以太坊区块链技术的项目中,需要监听智能合约的事件,以便在事件触发时能够及时响应。项目中使用了web3.js库的4.x版本,节点使用Geth启动,并通过HTTP与节点进行通信。 问题描述 合约DataStorage.sol文件已经定…

学习c语言第16天(数据的存储)

一、数据类型的介绍 c语言基本的内置类型 类型的意义: 1.使用这个类型开辟内存空间的大小(大小决定了使用范围) 2.如何看待内存空间的视角 1.类型的基本归类 整形家族 字符的本质是ASCII码值,是整形 int a等于 signed int a char稍微特殊一些…

新书速览|动手学PyTorch建模与应用:从深度学习到大模型

《动手学PyTorch建模与应用:从深度学习到大模型》 本书内容 《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。《动手学PyTorch建模与应用:从深度学习到大模型》共11章,第1章主要介绍深度学习的概念…

Python --Pandas库基础方法(2)

文章目录 Pandas 变量类型的转换查看各列数据类型改变数据类型 重置索引删除行索引和切片seriesDataFrame取列按行列索引选择loc与iloc获取 isin()选择query()的使用排序用索引排序使用变量值排序 修改替换变量值对应数值的替换 数据分组基于拆分进行筛选 分组汇总引用自定义函…

优思学院|抽样检验的概念和21种抽样方式

抽样检验的概念 根据事先制定的抽样方案,从一批产品中随机抽取一部分作为样品,以这部分样品的检验结果,对整批产品质量合格与否作出判定的活动过程,称为抽样检验。除了用于质量控制之外,抽样检验同样适用于在六西格玛…

AI工作流程设计的自动化优化:微软与斯坦福的新成果 - Trace

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

学习网络安全 为什么Linux首择Kali Linux? 以及如何正确的使用Kali Linux

1.什么是kali linux? Kali Linux是一款基于Debian的Linux发行版,主要用于网络安全测试和渗透测试。它由全球顶尖的安全专家和黑客社区维护开发,提供了丰富的工具和资源,用于测试安全性、漏洞利用和渗透测试。此外,Kal…

修复msvcp120.dll丢失的问题的几种简单方法,msvcp120.dll是什么

在使用电脑时,你可能会遭遇一个提示称“msvcp120.dll丢失”的错误信息。这个问题比较普遍,主要是因为你的系统中缺失了某个特定的动态链接库(DLL)文件。msvcp120.dll是由 Microsoft Visual C 可再发行包提供的关键文件&#xff0c…

一键切换阿里yum源(包括其他系统repo镜像查找方法)

一键切换阿里yum源 示例命令其他系统repo镜像GitHub文档 示例命令 # 备份旧源 mv CentOS-Base.repo CentOS-Base.repo.bak # 添加新源(阿里镜像源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo其他系统repo镜像 这里的示例是用…

链表篇-02.从尾到头打印链表(反转链表)

解题思路: 链表从尾到头打印链表, 我的思路是 用三个指针,第一个指针(pre)指向指向头节点的前一个位置,第二个指针(cur)指向头节点, 然后依次往后执行,第三个指针用于临时记录第二个指针的下一个位置。 代码详情: import java.…

2024年中职云计算实验室建设及云计算实训平台整体解决方案

随着信息技术的飞速发展,云计算作为新一代信息技术的核心,正逐步渗透到各行各业,成为推动数字化转型的重要力量。为了适应这一趋势,中职教育作为技能型人才培养的重要阵地,亟需加强云计算实验室建设与云计算实训平台的…

【Linux】CentOS更换国内阿里云yum源(超详细)

目录 1. 前言2. 打开终端3. 确保虚拟机已经联网4. 备份现有yum配置文件5. 下载阿里云yum源6. 清理缓存7. 重新生成缓存8. 测试安装gcc 1. 前言 有些同学在安装完CentOS操作系统后,在系统内安装比如:gcc等软件的时候出现这种情况:&#xff08…

【C++进阶学习】第九弹——哈希的原理与实现——开放寻址法的讲解

前言: 在前面,我们已经学习了很多存储机构,包括线性存储、树性存储等,并学习了多种拓展结构,效率也越来越高,但是是否有一种存储结构可以在大部分问题中都一次找到目标值呢?哈希可能能实现 目录…

Maven已经导入Junit包,但是还是无法使用注解

Maven已经导入Junit包&#xff0c;但是还是无法使用注解 背景&#xff1a; 导入了Junit的依赖 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></d…