在芯片的GDS数据里,使用Calibre对数据进行处理是非常常见的操作,但是GDS是一种和常规设计结构不太一样的一种数据,这里,通过这个小小的科普文章,一起看看怎么样在GDS里边做数据漫游吧!闲言少叙,ICer GO!

在这里插入图片描述

Verilog-like 数据结构

在芯片设计的世界中常用的数据结构就是verilog类型的了,通常是由module(设计)和instance(例化)组成,这样通过对module的不断instance,就可以形成一个层次化(hierarchy)的完整设计,在EDA工具里边,不同家对verilog有自己的独特的命名定义

  • S家
    • module:design/ref_name
    • instance:cell/leaf_cell
  • C家
    • module:cell/ref_lib_cell_name
    • instance:insts/Hinsts

基本在工作中,用上述的名词,就可以完成对verilog-like的数据进行准确的描述。

GDS-like 数据结构

对于GDS数据,由于其添加了很多的物理信息,所以这个数据结构和verilog-like相比,有其特殊性,基于常用的Calibre系列工具,它的数据命名大概类似如下:

基础元素(base element)

  • top-cell:当前GDS的顶层设计(top-design),类似verilog里的current_design
  • cell:数据库所有的设计,相当于verilog里的module,cell本层可以包含下列的实际结构,可以简单的理解为leaf-instance
    • poly/wire:指定cell下的metal 类型,可以是任何层的物理图案,会出现在最后的wafer上,PS:需要mask的支持
    • text:指定cell下的text,只是字符描述,不会出现在最后的wafer上,PS:常见的芯片logo等字符,其实是用某一层的polygon实现的
    • Via:一个完整的VIA是包含cut、upper和lower layer的,这个不是单纯的metal/text,所以在GDS里边,这个被归为cell*
  • ref:指定cell所使用的设计,
    • 如果只有名称,那么可以理解为verilog里的module
    • 如果具备了名称和物理信息,那么可以理解为verilog里的instance。
    • 支持嵌套调用
    • 不支持hierarchy design(ref)

可以看到,整个GDS的主要结构还是仿效verilog-like,但是由于都是基于实际的物理设计,所以对于instance和hierarchy做了一些简化处理。cell/ref可能灵活切换,取决于用户看数据的层级/角度。

  • Cell/ref

在这里插入图片描述

  • Poly/text

在这里插入图片描述

在这里插入图片描述

具备了上述的数据定义知识,用户就可以通过calibredrv里边提供的命令完成数据的抽取和遍历了。

注意:calibredrv命令默认返回的信息都是去重的(unique ),除非特殊声明

GDS 数据遍历

Calibre的家族可谓博大精深,根据用途,一般可以分为两类

  • 对GDS的查看(GUI)和数据遍历:calibredrv系统,启动命令:calibredrv
  • 对GDS的进行静态规则检查(DRC/LVS etc.):calibre系统,启动命令:calibre

这里,使用calibredrv -shell命令,就可以启动calibredrv的命令行模式了,这个时候并不会弹出calibre的GUI,只有一个提示符。

这个也是一个TCL命令接口(PS:这个TCL接口比较古早,不支持命令自动补全 auto-complete,可能对于用惯S家/C家的用户,还是有一些不太习惯。

加载一个GDS文件
set L [layout create BIST.gds -dt_expand] 

这里的L是GDS创建后的文件句柄,后面所有的操作,都需要借助这个句柄。

  1. 获取当前设计(top-cell)
$L topcell

在这里插入图片描述

这个GDS的顶层只有一个就是BIST,当然Calibre也支持多个top-cell的GDS数据,但是这个违背了层次化设计规则,建议所有的GDS都有且只有一个topcell

  1. 罗列出所有的cell(唯一化过的)
$L cells

在这里插入图片描述

这里的返回并没有排序,也没有上下级关系,有点类似于get_designs这类命令。

  1. 罗列出指定cell下的第一层引用(ref)

对所有当前层次(cell)下的所有leaf(包含ref)进行罗列,

在这里插入图片描述

结合下面的截图,可以看到,只有第一层的高亮ref被返回,所以,类似verilog下的get_cells命令:

在这里插入图片描述

  1. 对于指定ref,查看在当前设计(top-cell)被引用了多少次

这个例子表明了nand_4p在整个BIST设计下,被例化的16次,每次例化都有不同的物理坐标信息,尽管设计内容是一样的:

在这里插入图片描述

所以类似的,在当前top-cell下,top-cell(BIST),并没有被例化过任何一次,这个和verilog里的current_design的道理是类似的。

在这里插入图片描述

  1. 获取指定cell下的所有和具体inst和inst数量
  • 获取指定cell下的具体inst
$L iterarot ref $cell

在这里插入图片描述

这里返回的是ref以及具体的坐标等信息,这个就是上文说GDS里边例化(instance)了

具体的返回信息解释如下:

在这里插入图片描述

  • 获取指定cell的所有inst数量

    方法一: $L refcount -parent nand_4p

在这里插入图片描述

​ 方法二:llength [$L iterarot ref $cell]

在这里插入图片描述

这个命令是得到了指定cell下的所有子inst,这个和比children(只打印第一层)有如下区别:

​ - Children只输出第一层的ref,iterator则包含了所有层次的 ref

​ - Children的输出是uniq 后的ref信息

​ - Iterator 则是inst的信息

  • 获取指定cell下的所有poly
$L iterator poly $cell $layer_list range 0 n

在这里插入图片描述

返回值的说明:

在这里插入图片描述

所以,可以看到,是一个水平走线的一段metal

  • 获取指定cell下的所有text
$L iterator text $cell $layer_list range 0 n

在这里插入图片描述

返回值的说明:

在这里插入图片描述

【敲黑板划重点】

image-20240503184222477

通过上述讲解,用户基本上可以通过命令模式,遍历出GDS里边的所有类型的数据,这个对于GDS的信息抓取或者数据比对有很好的参考作用,如果加以灵活运用,对于一些之前需要在APR里边生成的信息,可以在完整的GDS里边实现了,譬如:单孔的检查,metal的面积/密度统计,layer信息的抽取等等,通过Calibre,可以给后端工程师提供更多维度的数据评判和比对。

参考资料

Mentor Calibre® DESIGNrev™ Reference Manual

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

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

相关文章

PyQtNode Editor 第二篇自定义可视化视图

在第一篇博客中,我们已经完成了 PyQtNode Editor 的基础环境搭建,并深入解析了自定义图形场景QDMGraphicsScene的实现原理。那个带有网格背景的场景就像一张空白的图纸,现在我们要在这张图纸上开始绘制真正的节点系统。 今天我们将聚焦于节点编辑器的核心数据结构设计,实现…

【扩欧应用】同余方程

与扩欧的联系 在同余方程的求解过程中,我们通常需要将方程转化为线性不定方程(Diophantine 方程)的形式,然后使用扩展欧几里得算法(Extended Euclidean Algorithm, EEA)求解。 同余方程是怎么转化为线性不…

结构化数据:NumPy 的结构化数组

文章目录 结构化数据:NumPy 的结构化数组探索结构化数组的创建更高级的复合类型记录数组:结构化数组的变体走向 Pandas 结构化数据:NumPy 的结构化数组 虽然我们的数据通常可以用同质数组很好地表示,但有时情况并非如此。本文将演…

phpcms 更换新域名更新栏目url和内容页url无法更新解决方法

更换域名后更新栏目url和内容页url还是无法更新为新的域名,手动把cache文件夹下能清除的缓存文件清除了还是不行,把数据库的缓存表内容清空了还是不行,问题在于栏目缓存并没有清除。 解决办法: (1)、找到文件:/caches/configs/sys…

玛哈特七辊矫平机:板材平整的精密卫士

在金属板材加工领域,表面平整度是衡量产品质量的核心指标之一。无论是汽车覆盖件、精密仪器外壳,还是建筑装饰板材,任何弯曲、波浪或翘曲都将严重影响后续加工精度、产品强度及美观度。七辊矫平机,凭借其独特的辊系结构设计&#…

融合聚类与分类的退役锂电智能分选技术:助力新能源汽车产业可持续发展

融合聚类与分类的退役锂电智能分选技术:助力新能源汽车产业可持续发展 关键词:退役锂离子电池分选 | 聚类分类融合 | 电化学阻抗谱(EIS) | 动态时间规整(DTW) | 多模态分类模型 新能源汽车 | 电池梯次利用 | 增量学习 | 数字孪生 | 联邦学习 | 双流特征…

jenkins中执行python脚本导入路径错误

🧾 问题一:ModuleNotFoundError: No module named jenkins 🔍 现象: 在本地运行正常,但在 Jenkins 中运行脚本时报错,提示找不到 jenkins 模块。 ❓ 原因分析: Python 默认只从当前目录或已…

华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手

华为云FlexusDeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手 前言一、ModelArts Studio介绍1. 华为云ModelArts Studio简介2. 华为云ModelArts Studio主要特点3. 华为云ModelArts Studio主要使用场景 二、AingDesk介绍1. AingDes…

NLP基础1_word-embedding

基于github项目:https://github.com/shibing624/nlp-tutorial/tree/main 自然语言处理任务 1) 简单任务 拼写检查 Spell Checking 关键词检索 Keyword Search 同义词查找 Finding Synonyms 2) 中级任务 解析来自网站、文档等的信息 3) 复杂任务 机器翻译 Ma…

ClickHouse系列--BalancedClickhouseDataSource实现

clickhouse-jdbc中负载均衡数据源的实现。 基本逻辑如下: 1.通过配置的url串,来切分构造url列表; 2.通过一个定时线程任务,来不断的去ping url列表,来更新可用的url列表; 3.在可用列表中随机返回一个可用ur…

Linux目录说明

Linux Filesystem Hierarchy Standard(FHS) 1. /bin 全称:Binary(二进制文件)功能:存放系统最基础的可执行命令,所有用户(包括普通用户)都能使用,用于系统启…

鸿蒙 Grid 与 GridItem 深度解析:二维网格布局解决方案

一、引言:网格布局 —— 多维度数据展示的黄金方案 在鸿蒙应用开发体系中,网格布局作为处理多元素有序排列的核心方案,广泛应用于电商商品陈列、图片画廊、功能矩阵等场景。鸿蒙提供的 Grid 与 GridItem 组件通过声明式语法构建灵活的二维布…

​​Vue 开发环境配置:使用 devServer.proxy 解决跨域问题​-vue中文件vue.config,js中配置devserver做反向代理到后端

​​Vue 开发环境配置:使用 devServer.proxy 解决跨域问题​​ ​​引言​​ 在现代 Web 开发中,前端和后端通常独立开发,前端运行在 http://localhost:8080,而后端可能运行在 http://localhost:8000 或其他端口。由于浏览器的 …

JVM 中的 GC 算法演进之路!(Serial、CMS、G1 到 ZGC)

引言 想象一下,Java 程序运行就像在一个巨大的图书馆里借书还书。这个图书馆(JVM 的内存堆区)为了高效运转,需要一个聪明的“图书管理员”来清理失效的书籍(垃圾对象)。这,就是垃圾回收器&#…

(9)python+playwright自动化测试-页面(page)

1.简介 通过前边的讲解和学习,细心认真地你可能发现在Playwright中,没有Element这个概念,只有Page的概念,Page不仅仅指的是某个页面,例如页面间的跳转等,还包含了所有元素、事件的概念,所以我们…

《自动控制原理 》- 第 1 章 自动控制的基本原理与方式

1-1 自动控制的基本原理与方式 自动控制是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数按照预定的规律运行。自动控制的核心原理是反馈控制,即通过将系统的输出量回送到输入端,与…

DL00715-基于YOLOv11的水面漂浮物目标检测含数据集

【论文必备】基于YOLOv11的水面漂浮物目标检测——让你的研究走在科技前沿! 在环境监测、海洋保护和水质管理领域,水面漂浮物的检测一直是一个亟待解决的难题。传统的人工巡检方式不仅耗时费力,还无法覆盖广泛的水域范围。如今,基…

权电阻网络DAC实现电压输出型数模转换Multisim电路仿真——硬件工程师笔记

目录 1 基础知识 1.1 运算放大器在DAC中的作用 1.2 常见的基于运算放大器的DAC电路 1.2.1 倒T形电阻网络DAC 1.2.2 权电阻网络DAC 1.2.3 开关电容DAC 1.3 运算放大器的选择 1.4 设计注意事项 2 仿真实验 2.1 权电阻网络DAC实现数字0对应电压输出 2.2 权电阻网络DAC实…

Redis主从集群

✅ 一、什么是 Redis 主从集群? Redis 主从(Master-Slave)集群是一种最基础的集群方式: 一台 Redis 作为主节点(Master),负责写操作; 一到多台 Redis 作为从节点(Slave&…

【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间

【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间 写在最前面**为什么“token序列空间”有根本缺陷?****为什么“语义向量空间”能破局?****1. 连续性(抗攻击的核心)****2. 高维复杂性(防破解…