使用Calibre對GDS進行數據遍歷

在芯片的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. 高維復雜性(防破解…