SDC命令详解:使用相对路径访问设计对象(current_instance命令)

发布时间:2026/9/25 2:34:38

SDC命令详解:使用相对路径访问设计对象(current_instance命令) 相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482在使用get_cells等命令访问设计对象时需要指定设计对象的名字这个名字是一个相对路径本文就将对此进行讨论。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。相对路径使用相对路径来访问设计对象时该对象必须位于当前设计(Current Design)中且路径相对当前实例(Current Instance)指定当前实例是当前设计中的一个层次单元默认情况下当前实例就是当前设计可以使用current_instance命令设置当前实例。图1 一个简单的层次设计以图1为例如果想在当前设计中Multiplier_Booth_STG_0中设置单元M1/C150的dont_touch属性可以使用下面两种方法// 方法一 prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt set_dont_touch [get_cells M1/C150]// 方法二 prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt current_instance . // 确认当前实例注意点的添加 Current instance is the top-level of design Multiplier_Booth_STG_0. prompt current_instance M1 // 设置当前实例 Current instance is /Multiplier_Booth_STG_0/M1 /Multiplier_Booth_STG_0/M1 prompt set_dont_touch [get_cells C150]在方法一中路径相对当前设计即顶层设计指定在方法二中路径相对实例M1指定。若想将当前实例重置为当前设计只需要使用不带参数或使用/作为参数的current_instance命令即可如下所示。prompt current_instance Current instance is the top-level of design Multiplier_Booth_STG_0. prompt current_instance / Current instance is the top-level of design Multiplier_Booth_STG_0.需要注意的是如果使用current_design重新设置了当前设计则当前实例也会被重置为当前设计如下所示。prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt current_design Datapath // 设置当前设计 Current design is Datapath {Datapath} Current design is Datapath prompt current_instance // 确认当前实例注意点的添加 Current instance is the top-level of design Datapath顺带一提除了使用current_instance命令设置当前实例current_instance变量也可以设置和查询当前实例如下所示。prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt current_instance . // 确认当前实例注意点的添加 Current instance is the top-level of design Multiplier_Booth_STG_0. prompt set current_instance M1 // 设置当前实例 Current instance is /Multiplier_Booth_STG_0/M1 /Multiplier_Booth_STG_0/M1 prompt printvar current_instance // 直接查看变量值 current_instance /Multiplier_Booth_STG_0/M1当使用get_cells/report_cell等命令时如果不指定对象作为参数默认以当前实例为参数如下所示。需要注意的是即使是相对当前实例指定的get_cell命令返回的对象名还是相对当前设计而言的。prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt current_instance . // 确认当前实例注意点的添加 Current instance is the top-level of design Multiplier_Booth_STG_0. prompt report_cell // 报告当前实例内的单元 **************************************** Report : cell Design : Multiplier_Booth_STG_0 Version: W-2024.09-SP2 Date : Sat Apr 12 13:17:57 2025 **************************************** Attributes: b - black box (unknown) h - hierarchical n - noncombinational r - removable u - contains unmapped logic Cell Reference Library Area Attributes -------------------------------------------------------------------------------- M1 Datapath 0.000000 h, n, u M2 Controller 0.000000 h, n, u -------------------------------------------------------------------------------- Total 2 cells 0.000000 prompt set current_instance M1 // 设置当前实例 Current instance is /Multiplier_Booth_STG_0/M1 /Multiplier_Booth_STG_0/M1 prompt report_cell // 报告当前实例内的单元 **************************************** Report : cell Design : Multiplier_Booth_STG_0/M1 (Datapath) Version: W-2024.09-SP2 Date : Sat Apr 12 13:21:17 2025 **************************************** Attributes: b - black box (unknown) c - control logic h - hierarchical n - noncombinational r - removable s - synthetic operator u - contains unmapped logic Cell Reference Library Area Attributes -------------------------------------------------------------------------------- B_0 GTECH_BUF gtech 0.000000 c, u B_1 GTECH_BUF gtech 0.000000 c, u C128 *SELECT_OP_5.1_5.1_1 0.000000 s, u C129 *SELECT_OP_2.8_2.1_8 0.000000 s, u C130 *SELECT_OP_2.4_2.1_4 0.000000 s, u C131 *SELECT_OP_5.1_5.1_1 0.000000 s, u C132 *SELECT_OP_3.8_3.1_8 0.000000 s, u C142 GTECH_OR2 gtech 0.000000 c, u C143 GTECH_OR2 gtech 0.000000 c, u C144 GTECH_OR2 gtech 0.000000 c, u C147 GTECH_AND2 gtech 0.000000 c, u C148 GTECH_AND2 gtech 0.000000 c, u C150 GTECH_AND2 gtech 0.000000 c, u C152 GTECH_AND2 gtech 0.000000 c, u C153 GTECH_AND2 gtech 0.000000 c, u C154 GTECH_AND2 gtech 0.000000 c, u C156 GTECH_AND2 gtech 0.000000 c, u C157 GTECH_AND2 gtech 0.000000 c, u C158 GTECH_AND2 gtech 0.000000 c, u I_0 GTECH_NOT gtech 0.000000 u I_1 GTECH_NOT gtech 0.000000 c, u I_2 GTECH_NOT gtech 0.000000 c, u I_3 GTECH_NOT gtech 0.000000 c, u I_4 GTECH_NOT gtech 0.000000 c, u add_28_S2 *ADD_UNS_OP_8_8_8 0.000000 s, u multiplicand_reg[0] **SEQGEN** 0.000000 n, u multiplicand_reg[1] **SEQGEN** 0.000000 n, u multiplicand_reg[2] **SEQGEN** 0.000000 n, u multiplicand_reg[3] **SEQGEN** 0.000000 n, u multiplicand_reg[4] **SEQGEN** 0.000000 n, u multiplicand_reg[5] **SEQGEN** 0.000000 n, u multiplicand_reg[6] **SEQGEN** 0.000000 n, u multiplicand_reg[7] **SEQGEN** 0.000000 n, u multiplier_reg[0] **SEQGEN** 0.000000 n, u multiplier_reg[1] **SEQGEN** 0.000000 n, u multiplier_reg[2] **SEQGEN** 0.000000 n, u multiplier_reg[3] **SEQGEN** 0.000000 n, u product_reg[0] **SEQGEN** 0.000000 n, u product_reg[1] **SEQGEN** 0.000000 n, u product_reg[2] **SEQGEN** 0.000000 n, u product_reg[3] **SEQGEN** 0.000000 n, u product_reg[4] **SEQGEN** 0.000000 n, u product_reg[5] **SEQGEN** 0.000000 n, u product_reg[6] **SEQGEN** 0.000000 n, u product_reg[7] **SEQGEN** 0.000000 n, u sub_31_S2 *SUB_UNS_OP_8_8_8 0.000000 s, u -------------------------------------------------------------------------------- Total 46 cells 0.000000有些命令只能在当前实例为当前设计时使用如all_inputs/all_outputs等命令有些命令需要配合current_instance命令使用才能完成某些效果如create_cell/insert_buffer等命令。current_instance命令除了不带参数和使用当前实例下的层次单元作为参数current_instance命令还可以接受其他类型的参数就像Linux中的相对路径那样可以接受.以表示当前实例和..表示上层实例如下所示。prompt current_design // 确认当前设计 Current design is Multiplier_Booth_STG_O. (Multiplier_Booth_STG_0} prompt current_instance . // 确认当前实例注意点的添加 Current instance is the top-level of design Multiplier_Booth_STG_0. prompt current_instance ./M1 // 设置当前实例与current_instance M1等价 Current instance is /Multiplier_Booth_STG_0/M1 /Multiplier_Booth_STG_0/M1 prompt current_instance .. // 设置当前实例 Current instance is the top-level of design Multiplier_Booth_STG_0. prompt current_instance ../../../M1 // 设置当前实例 Current instance is /Multiplier_Booth_STG_0/M1上例还有两点细节可以注意1、参数末尾加不加/效果相同2021版本后支持这与Linux中作为参数的目录类似2、如果索引超出了当前设计则视为当前设计。类似概念在低功耗设计(UPF)中也存在类似当前实例的概念叫做当前范围(Current Scope)使用set_scope命令可以设置当前范围实际上使用本文的current_instance命令和current_instance变量也可以设置当前范围它们之间的差别很小。
延伸阅读

更多相关文章

2026/9/19 21:50:57

机器学习模型创建与调用全流程:从数据准备到生产部署

1. 从零到一:理解模型创建与调用的核心脉络在任何一个涉及数据驱动或智能化的项目中,模型的创建与调用都是承上启下的关键一步。它既不是凭空而来的魔法,也不是一蹴而就的代码堆砌。简单来说,创建模型,就是基于你的业务…

2026/9/22 1:08:00

Python图像处理实战:Pillow库核心功能与应用

1. 为什么选择Python处理计算机图形学?十年前我第一次接触计算机图形处理时,用的还是C和OpenGL。直到2015年一个图像批处理项目让我发现了Pillow这个宝藏库,从此Python成了我的图形处理主力工具。Pillow作为PIL(Python Imaging Li…

2026/9/25 4:02:44

6G显存N卡本地跑AI视频生成的工程实现

1. 项目概述:为什么6G显存N卡突然能跑AI视频生成了?“秋叶ComfyUI整合包:6G显存N卡也能本地跑AI视频生成”——这句话刚在社区刷屏时,我正盯着自己那台搭载GTX 1060 6GB的老工作站发呆。三年前它还能稳跑Stable Diffusion XL文生图…

2026/9/25 4:02:44

PyTorch统一视觉分类模板:从AlexNet到ViT训练与ONNX部署

很多刚接触视觉算法的同学都会遇到一个类似困境:在文章或课程里把 AlexNet、VGG、ResNet、ViT 的结构图看得明明白白,真正打开编辑器准备训练时,却发现自己只有“网络结构代码”,没有一套完整的数据加载、训练循环、评估和导出脚本…

2026/9/25 4:02:44

RKD关系知识蒸馏:CoaTNet蒸馏ResNet的原理与工程实践

简介:面向深度学习模型压缩与知识蒸馏方向的开发者,该压缩包提供RKD(Relational Knowledge Distillation)实战代码,示范以CoatNet为教师模型蒸馏ResNet学生模型。与常规特征蒸馏不同,RKD对展平层特征进行关…

2026/9/25 3:57:44

网上订餐系统毕设实战:Spring Boot+Vue全栈开发与答辩指南

做毕设选这个题目,我先说个结论:网上订餐系统这个选题,放在Spring Boot Vue这套组合里,是当前性价比最高的方向之一。原因很简单,它不属于那种冷门小众的偏题,业务流程完整、角色划分清晰、技术栈主流&…

2026/9/24 20:24:47

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑