news 2026/7/5 16:56:56

SDC命令详解:使用set_dont_touch_network命令进行约束

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SDC命令详解:使用set_dont_touch_network命令进行约束

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

指定dont_touch网络源

指定不传播

dont_touch属性传播规则

dont_touch网络的影响

Multicorner-Multimode支持

简单使用


set_dont_touch_network命令可以将当前设计中的一组端口、引脚或时钟标记为dont_touch网络源(设置端口、引脚或时钟对象的dont_touch_network属性为true),且dont_touch属性会沿着组合逻辑进行传播(其实它并不是一个SDC命令,归为此类只是为了方便管理),主要用于时钟路径,以防止工具在优化过程中修改时钟树。如果想要移除dont_touch网络,使用remove_attribute命令。

本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。set_dont_touch_network命令的BNF范式(有关BNF范式,可以参考以往文章)为:

set_dont_touch_network objects [-no_propagate] //注:该命令的选项和参数顺序任意

指定dont_touch网络源

指定一个对象列表/集合,包含端口对象、引脚对象或时钟对象。对于列表而言,如果有多于一个对象,需要使用引号或大括号包围(对使用集合无效),关于列表和集合的区别,可以参考下面的博客。

SDC命令详解:使用集合(Collection)而不是字符串(String)/列表(List)作为命令参数https://chenzhang.blog.csdn.net/article/details/147144571

指定不传播

-no_propagate选项指定dont_touch属性不会跨组合逻辑传播,但仍然可以跨层次结构传播。默认情况下,dont_touch属性会跨组合逻辑传播,直到时序逻辑为止(不会将时序逻辑标记为dont_touch)。

需要注意的是,如果此时dont_touch网络源是叶单元的输入引脚,则dont_touch属性可以跨该叶单元,但无法跨后续的组合逻辑传播。

dont_touch属性传播规则

dont_touch属性的传播规则与set_ideal_network命令有所不同,dont_touch网络源扇出中的所有单元和线网都会被设置dont_touch属性(例如单元的一个输入引脚被设置为dont_touch网络源,则该单元就会被标记为dont_touch,如果是set_ideal_network命令,则要求其所有输入引脚都被标记为理想)。

dont_touch网络的影响

1、所有dont_touch网络中的单元和线网都会被设置dont_touch属性,防止它们在优化过程中被修改(需要注意的是,此时的dont_touch属性是隐式设置的,这与使用set_dont_touch命令显式设置不同,无法使用report_attribute命令或get_attribute命令直接查看,而只能使用report_cell命令、report_net命令或report_dont_touch命令间接查看,remove_attribute命令只能移除显式设置的dont_touch属性,隐式dont_touch属性的优先级高于显式dont_touch属性),使用list_dont_touch_types命令可以列出单元和线网被设置dont_touch属性的原因(显式或隐式)。

2、如果dont_touch网络源是组合逻辑叶单元的输出引脚,则该叶单元将被设置size_only属性,这样可以确保dont_touch网络源不会在综合过程中被优化掉(需要注意的是,此时的size_only属性是隐式设置的,这与使用set_size_only命令显式设置不同,无法使用report_attribute命令或get_attribute命令直接查看,而只能使用report_cell命令或report_size_only命令间接查看,隐式size_only属性的优先级高于显式size_only属性),使用list_size_only_types命令可以列出叶单元被设置size_only属性的原因(显式或隐式)。

3、如果使用-no_propagate选项,则第一个被阻挡传播的组合逻辑叶单元将被设置size_only属性(需要注意的是,此时的size_only属性是隐式设置的,这与使用set_size_only命令显式设置不同,无法使用report_attribute命令或get_attribute命令直接查看,而只能使用report_cell命令或report_size_only命令间接查看,隐式size_only属性的优先级高于显式size_only属性),使用list_size_only_types命令可以列出叶单元被设置size_only属性的原因(显式或隐式)。

Multicorner-Multimode支持

该命令对所有场景生效。

关于场景的更多介绍,可以参考下面的博客。

Design Compiler:多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=e3267dcc7cc26380435f53994dc8b9b8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecase&utm_term=MCMM&spm=1018.2226.3001.4450

简单使用

下面以图1为例说明set_dont_touch_network命令的使用。

图1 简单的例子

下面使用set_dont_touch_network命令设置端口a为dont_touch网络源,可以使用get_attribute dont_touch_network命令确认一个对象是否是dont_touch网络源。

dcnxt_shell> set_dont_touch_network [get_ports a]

下面使用report_dont_touch命令报告所有被设置为dont_touch属性的单元和线网,如图2所示。

dcnxt_shell> report_dont_touch

图2 dont_touch属性报告

使用get_dont_touch_cells命令可以创建一个设置了dont_touch属性的单元对象集合,并可过滤被设置dont_touch属性的原因。使用get_dont_touch_nets命令可以创建一个设置了dont_touch属性的线网对象集合,并可过滤被设置dont_touch属性的原因。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 16:56:23

Windows Cleaner:终极解决方案!5步彻底告别C盘爆红烦恼

Windows Cleaner:终极解决方案!5步彻底告别C盘爆红烦恼 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows…

作者头像 李华
网站建设 2026/7/5 16:56:03

数据可视化新体验:Material Dashboard Lite中的D3与NVD3图表实现

数据可视化新体验:Material Dashboard Lite中的D3与NVD3图表实现 【免费下载链接】material-dashboard-lite A free dashboard template with material design lite 项目地址: https://gitcode.com/gh_mirrors/ma/material-dashboard-lite Material Dashboar…

作者头像 李华
网站建设 2026/7/5 16:55:21

重新定义数据治理:OpenMetadata如何颠覆企业元数据管理范式

重新定义数据治理:OpenMetadata如何颠覆企业元数据管理范式 【免费下载链接】OpenMetadata The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, a…

作者头像 李华
网站建设 2026/7/5 16:53:16

Dokemon实战教程:从零开始部署和管理WordPress应用

Dokemon实战教程:从零开始部署和管理WordPress应用 【免费下载链接】dokemon Docker Container Management GUI 项目地址: https://gitcode.com/gh_mirrors/do/dokemon Dokemon作为一款Docker容器管理GUI工具,能够帮助用户轻松实现Docker容器的可…

作者头像 李华
网站建设 2026/7/5 16:51:26

Dev Proxy 终极指南:分布式微服务架构的故障测试方案

Dev Proxy 终极指南:分布式微服务架构的故障测试方案 【免费下载链接】dev-proxy Simulate API failures, throttling, and chaos — all from your command line. 项目地址: https://gitcode.com/gh_mirrors/de/dev-proxy Dev Proxy 是一款强大的 API 模拟工…

作者头像 李华