静态时序分析:线负载模型的选择机制
相关阅读
静态时序分析
https://blog.csdn.net/weixin_45791458/category_12567571.html
线负载模型及其选择
线负载模型仅在Design Compiler线负载模式(非拓扑模式)下时使用,它估算了导线长度和扇出对网线的电阻、电容和面积的影响,Design Compiler使用这些物理值来计算导线延迟和电路速度。
半导体供应商根据其工艺的统计信息开发线负载模型。这些模型包括单位长度的面积、电容和电阻系数,并且还包含一个扇出与长度的表,用于估算网线的长度(扇出数量决定了一个标称长度)。
在没有反标导线延迟的情况下,Design Compiler使用线负载模型来估算网线的长度和延迟。Design Compiler根据以下优先顺序来确定使用哪个线负载模型:
1、由用户显式指定的模型
使用set_wire_load_model命令即可使用任意一个已加载到内存的逻辑库中的线负载模型(这里需要注意,正如链接(link)库的详细解析一文所说,link_library变量或local_link_library属性(两者统称为link_path)指定的逻辑库会在必要时自动加载)。
2、基于设计面积自动选择的模型
在auto_wire_load_selection变量没有被设置为false的前提下:
在主库,即link_path中的第一个逻辑库(local_link_library属性优先级更高)中存在一个线负载模型选择组(wire_load_selection),Design Compiler根据该选择组中的“单元面积-线负载模型”关系自动选择线负载模型;如果主库中存在不止一个线负载模型选择组,则逻辑库中一定同时定义了库属性default_wire_load_selection,Design Compiler根据该默认选择组中的“单元面积-线负载模型”关系自动选择线负载模型。
使用set_wire_load_selection_group命令即可使用任意一个已加载到内存且在link_path中指定的逻辑库中线负载模型选择组。
3、逻辑库中的默认指定的模型
如果主库中定义了库属性default_wire_load,Design Compiler选择该默认线负载模型。
如果以上三种情况都不满足,Design Compiler将不使用线负载模型。在没有线负载模型的情况下,Design Compiler无法获取目标工艺的完整信息,无法计算互连延迟,因此,时序信息将显得过于乐观。
举例说明
假设逻辑库typical.lib(同时作为主库)中有以下定义:
wire_load("tsmc090_wl10") {resistance : 8.5e-8;capacitance : 1.5e-4;area : 0.7;slope : 66.667;fanout_length (1,66.667);}wire_load("tsmc090_wl20") {resistance : 8.5e-8;capacitance : 1.5e-4;area : 0.7;slope : 133.334;fanout_length (1,133.334);}wire_load("tsmc090_wl30") {resistance : 8.5e-8;capacitance : 1.5e-4;area : 0.7;slope : 200.001;fanout_length (1,200.001);}default_wire_load :tsmc090_wl30;wire_load_selection(pes) {wire_load_from_area(0,100,tsmc090_wl10);wire_load_from_area(101,200,tsmc090_wl20);wire_load_from_area(201,300,tsmc090_wl30);
}wire_load_selection(opt) {wire_load_from_area(0,100,tsmc090_wl30);wire_load_from_area(101,200,tsmc090_wl20);wire_load_from_area(201,300,tsmc090_wl10);
}default_wire_load_selection :opt;
1、由用户显式指定的模型(常用)
使用set_wire_load_model命令可以使用任意一个已加载到内存的逻辑库中的线负载模型,图1是report_design命令的结果。
set_wire_load_model -name tsmc090_wl10 -library typical

图1 手动选择线负载模型
如果不指定-library选项,则Design Compiler会在link_path指定的逻辑库中从左至右进行搜索指定的线负载模型;如果在-library选项中指定了多个逻辑库,则Design Compiler会在这些指定的逻辑库中从左至右进行搜索指定的线负载模型。
2、基于设计面积自动选择的模型
假设auto_wire_load_selection变量没有被设置为false。
某个设计的总单元面积为18,则Design Compiler根据主库的默认选择组opt自动选择线负载模型tsmc090_wl30,图2是report_design命令的结果。

图2 基于面积自动选择线负载模型(默认)
也可以使用set_wire_load_selection_group命令使用任意一个已加载到内存且在target_library或link_library中指定的逻辑库中的线负载模型选择组,图3是report_design的结果。
set_wire_load_selection_group pes -library typical

图3 基于面积自动选择线负载模型(指定)
需要注意的是,与set_wire_load_model命令不同的是,如果一个逻辑库使用read_db或read_file -format db命令手动加载到内存中但并未在target_library或link_library中指定,则无法指定其中的线负载模型选择组。
如果不指定-library选项,则Design Compiler会在target_library指定的第一个逻辑库(优先级更高)或link_library中指定的第一个逻辑库中搜索指定的线负载模型选择组;如果在-library选项中指定了多个逻辑库(需要在target_library或link_library中指定),则Design Compiler会在这些指定的逻辑库中从左至右进行搜索指定的线负载模型选择组。
3、逻辑库中的默认指定的模型
假设auto_wire_load_selection变量被设置为false。
Design Compiler根据主库自动选择默认线负载模型tsmc090_wl30,图4是report_design命令的结果。

图4 线负载模型(默认)
最后谈一下report_wire_load命令可以报告已设置的线负载模型或者link_path指定逻辑库中的所有线负载模型;remove_wire_load_model命令可以用于移除已设置的线负载模型;set_wire_load_model除了设置当前设计的线负载模型外,还可以设置其它模型、层次单元以及端口的线负载模型,再次不详细说明。
相关文章:
静态时序分析:线负载模型的选择机制
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 线负载模型及其选择 线负载模型仅在Design Compiler线负载模式(非拓扑模式)下时使用,它估算了导线长度和扇出对网线的电阻、电容和面积的影响ÿ…...
git 中 工作目录 和 暂存区 的区别理解
比喻解释 可以把工作目录和暂存区想象成两个篮子: 工作目录是你把所有东西(文件和更改)扔进去的地方。你正在修改的东西都放在这里。暂存区则是你整理好的东西放进第二个篮子,准备提交给老板(提交到仓库)…...
C++ 变量:深入理解与应用
C 变量:深入理解与应用 一、引言 C作为一种强大且广泛应用的编程语言,变量是其程序设计的基础构建块之一。变量允许我们在程序中存储、操作和访问数据,对于实现各种复杂的功能至关重要。正确地理解和使用变量,能够编写出高效、可…...
http报头解析
http报文 http报文主要有两类是常见的,第一类是请求报文,第二类是响应报文,每个报头除了第一行,都是采用键值对进行传输数据,请求报文的第一行主要包括http方法(GET,PUT, POST&#…...
数据库的概念和操作
目录 1、数据库的概念和操作 1.1 物理数据库 1. SQL SERVER 2014的三种文件类型 2. 数据库文件组 1.2 逻辑数据库 2、数据库的操作 2.1 T-SQL的语法格式 2.2 创建数据库 2.3 修改数据库 2.4 删除数据库 3、数据库的附加和分离 1、数据库的概念和操作 1.1 物理数据库…...
《XML Schema 字符串数据类型》
《XML Schema 字符串数据类型》 1. 引言 XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。在 XML Schema 中,字符串数据类型是一种基本的数据类型,用于表示文本数据。本文将详细介绍 XML Schema 中的字符串数据类型,包括其定义…...
idea 开发Gradle 项目
在Mac上安装完Gradle后,可以在IntelliJ IDEA中配置并使用Gradle进行项目构建和管理。以下是详细的配置和使用指南: 1. 验证Gradle是否已安装 在终端运行以下命令,确保Gradle安装成功: gradle -v如果输出Gradle版本信息ÿ…...
Keepalived + LVS 搭建高可用负载均衡及支持 Websocket 长连接
一、项目概述 本教程旨在助力您搭建一个基于 Keepalived 和 LVS(Linux Virtual Server)的高可用负载均衡环境,同时使其完美适配 Websocket 长连接场景,确保您的 Web 应用能够高效、稳定地运行,从容应对高并发访问&…...
产品经理2025年展望
产品经理作为连接技术、设计与市场需求的桥梁,在快速变化的商业环境中扮演着至关重要的角色。展望2025年,随着技术的不断进步和消费者需求的日益多样化,产品经理的工作将面临更多挑战与机遇。 一、人工智能与自动化深化应用: 到…...
【信息系统项目管理师】第14章:项目沟通管理过程详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 一、规划沟通管理1、输入2、工具与技术3、输出二、管理沟通1、输入2、工具与技术3、输出三、监督沟通1、输入2、工具与技术3、输出一、规划沟通管理 定义:规划沟通管理是基于每个干系人或干系人群体的信息需求…...
串口DMA接收数据基本思路
串口DMA接收基本思路 串口DMA接收数据基本思路一、串口处理使用背景及常用处理方法二、串口DMA接收相关思路三、串口DMA发送相关思路 串口DMA接收数据基本思路 一、串口处理使用背景及常用处理方法 单片机经常有串口处理大量数据的场景,常用的串口处理数据方式有如…...
数据结构复习 (二叉查找树,高度平衡树AVL)
1.二叉查找树: 为了更好的实现动态的查找(可以插入/删除),并且不超过logn的时间下达成目的 定义: 二叉查找树(亦称二叉搜索树、二叉排序树)是一棵二叉树,其各结点关键词互异,且中根序列按其关键词递增排列。 等价描述: 二叉查找…...
FreeSWITCH 简单图形化界面39 - Windows安装FreeSWITCH For IPPBX(WSL环境)
FreeSWITCH 简单图形化界面39 - Windows安装FreeSWITCH For IPPBX(WSL环境) 0、界面预览1、部署WSL1.1 安装WSL1.2 安装Windows Terminal1.3 安装WSL配置工具 2、安装Ubuntu24.043、安装FreeSWITCH4、登录Web4.1 80端口占用了 5、测试6、卸载 0、界面预览…...
uniapp - 小程序实现摄像头拍照 + 水印绘制 + 反转摄像头 + 拍之前显示时间+地点 + 图片上传到阿里云服务器
前言 uniapp,碰到新需求,反转摄像头,需要在打卡的时候对上传图片加上水印,拍照前就显示当前时间日期地点,拍摄后在呈现刚才拍摄的图加上水印,最好还需要将图片上传到阿里云。 声明 水印部分代码是借鉴的…...
Qt天气预报系统设计界面布局第四部分左边
Qt天气预报系统设计 1、第四部分左边的第一部分1.1添加控件1.2修改控件名字 2、第四部分左边的第二部分2.1添加控件2.2修改控件名字 3、第四部分左边的第三部分3.1添加控件3.2修改控件名字 4、对整个widget04l调整 1、第四部分左边的第一部分 1.1添加控件 拖入一个widget&…...
VS无法找到低版本的.net,vs2022创建不了.net6的项目
很多人会遇到安装完vs最新版(目前是2022)之后,创建不了旧版本的.net项目了,比如我在学习.net core 6,我的2022无法创建,只能创建.netcore8的项目,以及又安装了2019,同样无法创建,接下来介绍怎么…...
C++软件设计模式之解释器模式
解释器模式的目的和意图 解释器模式(Interpreter Pattern)是一种行为设计模式,主要用于定义一种语言的文法,并通过该文法解释语言中的句子(表达式)。解释器模式的核心思想是将一个特定的语言表示为其文法规…...
小程序发版后,用户使用时,强制更新为最新版本
为什么要强制更新为最新版本? 在小程序的开发和运营过程中,强制用户更新到最新版本是一项重要的策略,能够有效提升用户体验并保障系统的稳定性与安全性。以下是一些主要原因: 1. 功能兼容 新功能或服务通常需要最新版本的支持&…...
如何使用AI工具cursor(内置ChatGPT 4o+claude-3.5)
⚠️温馨提示: 禁止商业用途,请支持正版,充值使用,尊重知识产权! 免责声明: 1、本教程仅用于学习和研究使用,不得用于商业或非法行为。 2、请遵守Cursor的服务条款以及相关法律法规。 3、本…...
说说缓存使用的具体场景都有哪些?缓存和数据库一致性问题该如何解决?缓存使用常见问题有哪些?
面试官:说说缓存使用的具体场景都有哪些?缓存和数据库一致性问题该如何解决?缓存使用常见问题有哪些? 缓存的具体使用场景有这些: 数据频繁读取: 当某些数据频繁被读取而不常变化时,可以将这些…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
