Synopsys:默认报告精度(report_default_significant_digits变量)

Synopsys:默认报告精度(report_default_significant_digits变量)

相关阅读

Synopsyshttps://blog.ZEEKLOG.net/weixin_45791458/category_12812219.html?spm=1001.2014.3001.5482


        在使用report_timing之类的报告命令时,可以使用-significant_digits选项指定报告的精度,在不使用该选项的情况下,命令使用由report_default_significant_digits变量指定的默认精度进行报告。

        对于不同的工具,该变量的默认值和取值范围略有差别,如下所示。

Design Compiler:默认值为-1(表示使用命令特定的默认值),取值范围为-1到13。

IC Compiler:默认值为-1(表示使用命令特定的默认值),取值范围为-1到13。

PrimeTime:默认值为2,取值范围为0到13。

PrimePower:默认值为2,取值范围为0到13。

Fusion Compiler:默认值为2,取值范围为0到13。

IC Compiler II:默认值为2,取值范围为0到13。

NanoTime:默认值为3,取值范围为0到13。

RTL Architect:默认值为2,取值范围为0到13。

        并非所有报告命令都支持这个变量,具体需要查看命令手册。

        下面展示了report_default_significant_digits变量在PrimeTime中的使用方式。

pt_shell> report_timing **************************************** Report : timing -path_type full -delay_type max -max_paths 1 -sort_by slack Design : ORCA Version: O-2018.06-SP1 Date : Mon Jul 28 18:47:46 2025 **************************************** Startpoint: I_ORCA_TOP/I_PCI_CORE/pad_en_reg (rising edge-triggered flip-flop clocked by PCI_CLK) Endpoint: pad[1] (output port clocked by PCI_CLK) Path Group: PCI_CLK Path Type: max Min Clock Paths Derating Factor : 0.90 Point Incr Path ------------------------------------------------------------------------------ clock PCI_CLK (rise edge) 0.00 0.00 clock network delay (propagated) 3.63 3.63 I_ORCA_TOP/I_PCI_CORE/pad_en_reg/CP (sdcrq1) 0.00 3.63 r I_ORCA_TOP/I_PCI_CORE/pad_en_reg/Q (sdcrq1) 0.40 & 4.03 r U7/ZN (inv0d1) 0.07 & 4.10 f U62/ZN (inv0d1) 0.04 & 4.14 r U63/Z (or02d7) 0.27 & 4.41 r U63ASTipoInst495/Z (bufbdk) 0.31 & 4.71 r U63ASTipoInst494/Z (bufbda) 3.80 & 8.51 r pad_iopad_1/PAD (pc3b03) 6.12 H 14.63 r pad[1] (inout) 0.05 14.68 r data arrival time 14.68 clock PCI_CLK (rise edge) 15.00 15.00 clock network delay (propagated) 0.00 15.00 clock reconvergence pessimism 0.00 15.00 output external delay -4.00 11.00 data required time 11.00 ------------------------------------------------------------------------------ data required time 11.00 data arrival time -14.68 ------------------------------------------------------------------------------ slack (VIOLATED) -3.68 pt_shell> set_app_var report_default_significant_digits 4 pt_shell> report_timing **************************************** Report : timing -path_type full -delay_type max -max_paths 1 -sort_by slack Design : ORCA Version: O-2018.06-SP1 Date : Mon Jul 28 18:49:21 2025 **************************************** Startpoint: I_ORCA_TOP/I_PCI_CORE/pad_en_reg (rising edge-triggered flip-flop clocked by PCI_CLK) Endpoint: pad[1] (output port clocked by PCI_CLK) Path Group: PCI_CLK Path Type: max Min Clock Paths Derating Factor : 0.9000 Point Incr Path ------------------------------------------------------------------------------ clock PCI_CLK (rise edge) 0.0000 0.0000 clock network delay (propagated) 3.6278 3.6278 I_ORCA_TOP/I_PCI_CORE/pad_en_reg/CP (sdcrq1) 0.0000 3.6278 r I_ORCA_TOP/I_PCI_CORE/pad_en_reg/Q (sdcrq1) 0.4038 & 4.0315 r U7/ZN (inv0d1) 0.0660 & 4.0976 f U62/ZN (inv0d1) 0.0424 & 4.1400 r U63/Z (or02d7) 0.2692 & 4.4092 r U63ASTipoInst495/Z (bufbdk) 0.3057 & 4.7149 r U63ASTipoInst494/Z (bufbda) 3.7983 & 8.5132 r pad_iopad_1/PAD (pc3b03) 6.1185 H 14.6317 r pad[1] (inout) 0.0484 14.6801 r data arrival time 14.6801 clock PCI_CLK (rise edge) 15.0000 15.0000 clock network delay (propagated) 0.0000 15.0000 clock reconvergence pessimism 0.0000 15.0000 output external delay -4.0000 11.0000 data required time 11.0000 ------------------------------------------------------------------------------ data required time 11.0000 data arrival time -14.6801 ------------------------------------------------------------------------------ slack (VIOLATED) -3.6801 pt_shell> report_timing -significant_digits 5 **************************************** Report : timing -path_type full -delay_type max -max_paths 1 -sort_by slack Design : ORCA Version: O-2018.06-SP1 Date : Mon Jul 28 18:49:52 2025 **************************************** Startpoint: I_ORCA_TOP/I_PCI_CORE/pad_en_reg (rising edge-triggered flip-flop clocked by PCI_CLK) Endpoint: pad[1] (output port clocked by PCI_CLK) Path Group: PCI_CLK Path Type: max Min Clock Paths Derating Factor : 0.90000 Point Incr Path ------------------------------------------------------------------------------ clock PCI_CLK (rise edge) 0.00000 0.00000 clock network delay (propagated) 3.62777 3.62777 I_ORCA_TOP/I_PCI_CORE/pad_en_reg/CP (sdcrq1) 0.00000 3.62777 r I_ORCA_TOP/I_PCI_CORE/pad_en_reg/Q (sdcrq1) 0.40376 & 4.03154 r U7/ZN (inv0d1) 0.06603 & 4.09757 f U62/ZN (inv0d1) 0.04243 & 4.13999 r U63/Z (or02d7) 0.26920 & 4.40919 r U63ASTipoInst495/Z (bufbdk) 0.30573 & 4.71492 r U63ASTipoInst494/Z (bufbda) 3.79833 & 8.51324 r pad_iopad_1/PAD (pc3b03) 6.11847 H 14.63171 r pad[1] (inout) 0.04841 14.68012 r data arrival time 14.68012 clock PCI_CLK (rise edge) 15.00000 15.00000 clock network delay (propagated) 0.00000 15.00000 clock reconvergence pessimism 0.00000 15.00000 output external delay -4.00000 11.00000 data required time 11.00000 ------------------------------------------------------------------------------ data required time 11.00000 data arrival time -14.68012 ------------------------------------------------------------------------------ slack (VIOLATED) -3.68012

Read more

【探寻C++之旅】C++ 智能指针完全指南:从原理到实战,彻底告别内存泄漏

【探寻C++之旅】C++ 智能指针完全指南:从原理到实战,彻底告别内存泄漏

前言 作为 C++ 开发者,你是否曾因以下场景头疼不已?函数中new了数组,却因异常抛出导致后续delete没执行,排查半天定位到内存泄漏;多模块共享一块内存,不知道该由谁负责释放,最后要么重复释放崩溃,要么漏释放泄漏;用了auto_ptr后,拷贝对象导致原对象 “悬空”,访问时直接崩溃却找不到原因。 如果你有过这些经历,那智能指针一定是你必须掌握的现代 C++ 工具。它基于 RAII 思想,自动管理动态资源,让你无需手动delete,从根源上减少内存泄漏风险。今天,我们就从 “为什么需要智能指针” 到 “不同智能指针的实战场景”,带你系统掌握这一核心特性。 请君浏览 * 前言 * 一、智能指针的诞生:解决手动管理内存的 “千古难题” * 1.1 一个典型的内存泄露场景 * 1.2 智能指针的核心:RAII 思想 * 二、C++ 标准库智能指针:

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
【C++】模板的两大特性

【C++】模板的两大特性

文章目录 * 前言 * 1. 关于 typename 的使用场景 * 2. 模板的分离编译问题 * 2.1 简述程序编译链接的过程 * 2.1.1 预处理 * 2.1.2 编译 * 2.1.3汇编 * 2.1.4 链接 * 2.2 模板分离编译为什么会链接报错 * 2.2.1 什么是分离编译 * 2.2.2 模板分离编译存在的问题 * 3. 解决办法 前言 本文探讨了C++模板编程中的两个关键问题。第一部分介绍了typename在模板中的特殊使用场景,指出当模板参数访问内嵌类型时必须使用typename关键字来消除编译器歧义。第二部分分析了模板分离编译导致链接错误的原因,通过对比普通函数和模板函数的编译链接过程,解释了模板定义必须放在头文件中才能被实例化的原理。文章结合代码示例和编译链接过程图解,帮助读者理解模板编译机制和常见错误的解决方法。 1.

By Ne0inhk
深入解剖STL map/multimap:接口使用与核心特性详解

深入解剖STL map/multimap:接口使用与核心特性详解

❤️@燃于AC之乐 来自重庆 计算机专业的一枚大学生 ✨专注 C/C++ Linux 数据结构 算法竞赛 AI 🏞️志同道合的人会看见同一片风景! 👇点击进入作者专栏: 《算法画解》 ✅ 《linux系统编程》✅ 《C++》 ✅ 🌟《算法画解》算法相关题目点击即可进入实操🌟 感兴趣的可以先收藏起来,请多多支持,还有大家有相关问题都可以给我留言咨询,希望希望共同交流心得,一起进步,你我陪伴,学习路上不孤单! 文章目录 * 前言(map系列容器概述) * 一、map类介绍 * 1.1 map的类模板声明 * 二、pair类型介绍 * 2.1 pair的结构定义 * 2.2 pair的使用要点 * 三、map的构造与迭代器 * 3.1 构造接口 * 3.2 迭代器接口 * 四、map的增删查操作

By Ne0inhk