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

Design Compiler:转换时间过渡调整

相关阅读

Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html


        在静态时序分析:传播延迟与转换时间一文中,已经介绍了转换时间阈值和转换时间减免系数的概念,如果一个设计中两个单元的转换时间阈值和转换时间减免系数不一致会发生什么?本文将以Design Compiler对此进行说明。

        假设存在以下两个逻辑库,它们的转换时间阈值和转换时间减免系数如下所示。

// 库fast_lackslew_lower_threshold_pct_fall : 30.0;slew_upper_threshold_pct_fall : 70.0;slew_lower_threshold_pct_rise : 30.0;slew_upper_threshold_pct_rise : 70.0;input_threshold_pct_fall      : 50.0;input_threshold_pct_rise      : 50.0;output_threshold_pct_fall     : 50.0;output_threshold_pct_rise     : 50.0;slew_derate_from_library      : 0.5;
// 库fast_slewslew_lower_threshold_pct_fall : 10.0;slew_upper_threshold_pct_fall : 90.0;slew_lower_threshold_pct_rise : 10.0;slew_upper_threshold_pct_rise : 90.0;input_threshold_pct_fall      : 50.0;input_threshold_pct_rise      : 50.0;output_threshold_pct_fall     : 50.0;output_threshold_pct_rise     : 50.0;slew_derate_from_library      : 0.5;

图1 一个简单的电路

        对于图1所示的电路,将这两个逻辑库都加入link_library(这可能会导致警告Warning: The trip points for the library named fast_slew differ from those in the library named fast_lack. (TIM-164),并设法使单元u1被link到fast_lack库,而单元u2被link到fast_slew库,如下报告所示。

****************************************
Report : cell
Design : test
Version: W-2024.09-SP2
Date   : Wed Apr 16 15:23:48 2025
****************************************Attributes:b - black box (unknown)h - hierarchicaln - noncombinationalr - removableu - contains unmapped logicCell                      Reference       Library             Area  Attributes
--------------------------------------------------------------------------------
u1                        CLKINVX1        fast_lack       2.116800  
u2                        CLKBUFX1        fast_slew       2.822400  
--------------------------------------------------------------------------------
Total 2 cells                                             4.939200

        此时使用下面的命令报告线网t的转换时间的计算过程。

report_cell_calculation -from [get_pins u1/Y] -to [get_pins u2/A]
****************************************
Report : delay_calculation
Design : test
Version: W-2024.09-SP2
Date   : Wed Apr 16 15:28:04 2025
****************************************From pin:                         u1/Y
To pin:                           u2/A
Main Library Units:  1ns  1pF  1kOhmOperating Conditions: fast   Library: fast_lack
Wire Load Model Mode: toparc type:                         net
Balanced case tree
RC delay: (r_wire/load_count) * (c_pin + c_wire/load_count)
rise:     (0 / 1) * (0.001682 + (0 / 1))
fall:     (0 / 1) * (0.001682 + (0 / 1))total delay rise, fall:           0.0000 , 0.0000Rise Transition Trippoint AdjustmentTrippoint      Driver    Load---------      ------    -----low            0.30      0.10high           0.70      0.90lib_derate     0.50      0.50Adjustment = ( driver_derate * (load_high - load_low) ) /( load_derate   * (driver_high - driver_low) )Adjustment = 2 = ( 0.5 * (0.9 - 0.1) ) /( 0.5 * (0.7 - 0.3) )Multiplying original transition (0.0125849) by 2 gives 0.0251698Fall Transition Trippoint AdjustmentTrippoint      Driver    Load---------      ------    -----low            0.30      0.10high           0.70      0.90lib_derate     0.50      0.50Adjustment = ( driver_derate * (load_high - load_low) ) /( load_derate   * (driver_high - driver_low) )Adjustment = 2 = ( 0.5 * (0.9 - 0.1) ) /( 0.5 * (0.7 - 0.3) )Multiplying original transition (0.0124807) by 2 gives 0.0249614

        可以看出,由于驱动引脚和负载引脚的转换时间阈值不同,Design Compiler使用了转换时间过渡调整(Transition Trippoint Adjustment),它的计算公式如下所示。

Adjustment = ( driver_derate * (load_high - load_low) ) /( load_derate   * (driver_high - driver_low) )

        对于单元而言,它的转换时间阈值和转换时间减免系数由其所在的逻辑库决定,但对于输入/输出端口而言呢?

        输入/输出端口的转换时间阈值和转换时间减免系数由link_library变量或local_link_library属性(两者统称为link_path)中的第一个逻辑库(即主库)决定。

        当主库是fast_lack库时,线网A的转换时间不会发生调整而线网C的转换时间会发生调整,如下所示。

****************************************
Report : delay_calculation
Design : test
Version: W-2024.09-SP2
Date   : Wed Apr 16 15:46:27 2025
****************************************From port:                        A
To pin:                           u1/A
Main Library Units:  1ns  1pF  1kOhmOperating Conditions: fast   Library: fast_lack
Wire Load Model Mode: toparc type:                         net
Balanced case tree
RC delay: (r_wire/load_count) * (c_pin + c_wire/load_count)
rise:     (0 / 1) * (0.001572 + (0 / 1))
fall:     (0 / 1) * (0.001572 + (0 / 1))total delay rise, fall:           0.0000 , 0.0000****************************************
Report : delay_calculation
Design : test
Version: W-2024.09-SP2
Date   : Wed Apr 16 15:46:50 2025
****************************************From pin:                         u2/Y
To port:                          C
Main Library Units:  1ns  1pF  1kOhmOperating Conditions: fast   Library: fast_lack
Wire Load Model Mode: toparc type:                         net
Balanced case tree
RC delay: (r_wire/load_count) * (c_pin + c_wire/load_count)
rise:     (0 / 1) * (0 + (0 / 1))
fall:     (0 / 1) * (0 + (0 / 1))total delay rise, fall:           0.0000 , 0.0000Rise Transition Trippoint AdjustmentTrippoint      Driver    Load---------      ------    -----low            0.10      0.30high           0.90      0.70lib_derate     0.50      0.50Adjustment = ( driver_derate * (load_high - load_low) ) /( load_derate   * (driver_high - driver_low) )Adjustment = 0.5 = ( 0.5 * (0.7 - 0.3) ) /( 0.5 * (0.9 - 0.1) )Multiplying original transition (0.00864911) by 0.5 gives 0.00432455Fall Transition Trippoint AdjustmentTrippoint      Driver    Load---------      ------    -----low            0.10      0.30high           0.90      0.70lib_derate     0.50      0.50Adjustment = ( driver_derate * (load_high - load_low) ) /( load_derate   * (driver_high - driver_low) )Adjustment = 0.5 = ( 0.5 * (0.7 - 0.3) ) /( 0.5 * (0.9 - 0.1) )Multiplying original transition (0.00816404) by 0.5 gives 0.00408202

        同理,当主库是fast_slew库时,线网C的转换时间不会发生调整而线网A的转换时间会发生调整。

相关文章:

  • 加油站小程序实战教程11会员注册
  • LeetCode面试热题150中19-22题学习笔记(用Java语言描述)
  • 链表知识回顾
  • windows 11 安装 redis
  • 基于Spring MVC的客户端真实IP获取方案解析
  • leetcode14.最长公共前缀
  • 微服务3--服务容错
  • Spring分析-IOC
  • 软件测试|App测试面试相关问题(2)
  • WPF 从Main()方法启动
  • 0-GLOP:学习全局划分和局部构造实时求解大规模路由问题(AAAI-24)
  • Sentinel源码—3.ProcessorSlot的执行过程二
  • JavaScript:表单及正则表达式验证
  • 鸿蒙NEXT开发Want工具类(ArkTs)
  • 批量将文件或文件夹复制分发到多个不同的文件夹
  • 【从零实现高并发内存池】Page Cache 从理解设计到全面实现
  • ArkTS组件的三个通用(通用事件、通用属性、通用手势)
  • 【版本控制】idea中使用git
  • 详解与FTP服务器相关操作
  • UDP概念特点+编程流程
  • 企业网站建设哪家好/站长统计app软件大全
  • 哪个网站建设公司/网络推广营销方案100例
  • 网站记录登录账号怎么做/网页链接制作生成
  • 门户网站定制服务器/软文推广软文营销
  • 家政服家政服务网站模板/南昌seo排名
  • 做外贸网站应该关注哪些地方/百度网址大全下载