当前位置: 首页 > news >正文

SDC命令详解:使用write_script命令进行输出

相关阅读

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


目录

指定所有设计

指定不包含反标延迟检查命令

指定不包含反标延迟命令

指定不包含时钟门控信息

指定完整库名

指定不换行

指定包含被断开的组合环

指定文件名

Multicorner-Multimode支持

注意事项

简单使用


write_script命令用于将设计中的部分属性设置命令(相对于设计读取时)输出为脚本文件(其实它并不是一个SDC命令,归为此类只是为了方便管理),这包括所有的SDC命令(实际上所有的SDC命令都会设置相应属性,例如set_ideal_network命令设置了ideal_network_source属性),但不包括用户自定义属性。对于那些不能直接用特定命令设置的属性,将统一使用set_attribute命令设置。

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

write_script [-hierarchy] [-no_annotated_check] [-no_annotated_delay] [-no_cg] [-full_path_lib_names] [-nosplit] [-include loop_breaking] [-output file_name] //注:该命令的选项和参数顺序任意

指定所有设计

-hierarchy选项指定为所有设计生成属性设置命令,如果不使用该选项,只会为当前设计生成属性设置命令。

指定不包含反标延迟检查命令

-no_annotated_check选项指定脚本文件中不包含set_annotated_check命令。对于含有大量反标信息的设计,使用此选项可以避免生成过大的脚本文件。

指定不包含反标延迟命令

-set_annotated_delay选项指定脚本文件中不包含set_annotated_delay命令。对于含有大量反标信息的设计,使用此选项可以避免生成过大的脚本文件。

指定不包含时钟门控信息

-no_cg选项指定脚本文件中不包含Power Compiler中有关时钟门控的属性设置(通过set_attribute命令设置),这些属性有助于门控时钟单元的识别。

指定完整库名

-full_path_lib_names选项指定逻辑库名以基本名作为前缀的方式写出。

指定不换行

-nosplit选项指定当字段长度超出列宽时不进行换行(适合用diff比较或后处理)。

指定包含被断开的组合环

-include loop_breaking选项指定为那些被断开的组合环输出set_disable_timing命令。

指定文件名

-output选项指定脚本文件的名称,如果不使用该选项,则默认只输出至标准输出。

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、某些属性(比如隐式size_only属性或隐式dont_touch属性)不支持输出,某些命令由于未设置属性也不支持输出,例如set_clock_gating_style、set_min_library等。

2、对于Design Compiler而言,输出的设置命令可能与执行时不完全一样,这是因为综合过程中Design Compiler可能对设计进行解组、唯一化、重命名等优化操作(严格意义说,此时的设置命令对应的是综合后设计的属性,而不是综合前的),并且设置命令应该是参数展开的形式。

简单使用

假设执行了以下脚本文件,但不进行综合。

create_clock -period 10 [get_ports clk] set_clock_latency -source 0.5 [get_clocks clk] set_dont_touch [get_nets clk] set_attribute [get_nets in1] dont_touch true set_load [expr 0.5+0.5] out // 输出时是以展开的形式 set_input_delay 0.5 -clock [get_clocks clk] [get_ports in*] // 输出时是以展开的形式

使用write_script命令后,输出的内容如下所示。

dcnxt_shell> write_script Warning: Design 'top_module' has '1' unresolved references. For more detailed information, use the "link" command. (UID-341) ################################################################### # Created by write_script -format dctcl on Wed Jul 30 18:50:23 2025 ################################################################### # Set the current_design # current_design top_module remove_wire_load_model set_dont_touch [get_nets in1] // 尽管使用set_attribute命令设置,但输出set_dont_touch命令 set_dont_touch [get_nets clk] set_load -pin_load 1 [get_ports out] create_clock [get_ports clk] -period 10 -waveform {0 5} set_clock_latency -source 0.5 [get_clocks clk] set_input_delay -clock clk 0.5 [get_ports in1] set_input_delay -clock clk 0.5 [get_ports in2] set_input_delay -clock clk 0.5 [get_ports in3]
http://www.gsyq.cn/news/1642447.html

相关文章:

  • 企业级LLM中间件架构:litellm智能请求处理与可观测性方案解析
  • 题解:学而思编程 折半与最小值
  • [A-48]ARMv9/v8-电源状态管理机制(PSCI协调机制)
  • STM32扩展EEPROM存储方案与I2C驱动实践
  • 【信息科学与工程学】【通信工程】第一百二十三篇 网络NaaS函数 01
  • Clang-tutorial项目深度解析:从ASTVisitor到Rewriter的核心功能详解
  • 如何让老款Mac焕发新生?OpenCore Legacy Patcher完整指南解锁最新macOS体验
  • 调查研究-216 Tesla Robotaxi 进了 Miami,但真正的考题才刚开始
  • 新能源汽车功率级测试自动化方案:从理论到实践的深度解析
  • 智慧教育平台电子课本下载终极指南:三步获取优质教学资源
  • Heya最佳实践:来自生产环境的10个邮件序列设计经验
  • GNN 实战:PyTorch Geometric 1.7.2 构建异构图推荐系统,Recall@10 提升 15%
  • 性能监控与调试:使用MeshApiExamples分析网格处理瓶颈的方法
  • PS5 NOR修改器:修复故障PS5主机的完整解决方案指南
  • 移动优化 CMI 线路验收:移动用户占比过半时代的一票否决项
  • Teku REST API完全参考:开发者必备的30个端点详解
  • 7个终极技巧:掌握Delta模拟器金手指功能
  • MC6470与MK64FN1M0VDC12的嵌入式运动感知方案
  • 基于微信小程序的高校学生兼职服务平台的设计与研究
  • REFramework:RE引擎游戏模组开发框架深度解析与实战指南
  • 如何在无网络环境下快速提取图片文字?Umi-OCR离线文字识别终极指南
  • 分治策略+微型模型集群:Micro XGBoost框架做锂电池寿命预测
  • Flutter Planets导航教程:深入理解Flutter路由与页面跳转的最佳实践
  • Pillar Valley游戏商业化策略:应用内购买与广告集成的实战指南
  • 微信防撤回补丁终极指南:告别消息丢失的完整解决方案
  • 动态歌词引擎架构解析:构建企业级音频同步方案
  • CAN通信协议 - ISO 11898
  • 基于YOLO的计算机视觉项目实战:从数据标注到边缘部署全流程解析
  • 3步搭建Linkding:你的私有书签管理系统完整指南
  • 如何用Python轻松搞定通达信数据读取:3分钟开启你的量化分析之旅