综合时如何计算net delay?

server/2024/9/24 16:22:57/

    在PR阶段,互连线的延迟可以通过抽取net的rc值计算得到。而在综合阶段,因为没有实际的布局布线,便无法去抽取net上的rc值。那么,线负载模型(wire load model)便派上用场了。

    所谓线负载模型,就是根据fanout的数量去估算net的长度,然后根据长度便能估算出net的电阻电容和面积。

图片

    那么,根据上述计算方法,假设一个buffer后面drive了5个cell,那么fanout就是5,根据查找表便可以计算得到net长度为3.5,电阻为3.5*2=7,电容为3.5*1=3.5,面积为0.02*3.5=0.07。有了上面的计算值,也便得到了net的RC。

    但是,有了net RC依然没法去计算delay。因为,drive cell和被drive cell之间的连接结构会影响着delay大小。一般,互连线的连接结构有以下三种模型,为了方便理解,图中红色的线代表的net其含有RC,黑色的线的R&C为0。

    1、  最佳情况树(best-case tree):即drive cell和drived cell距离很近,他们之间没有线电阻,其结构如下图1所示。

图片

    2、  平衡树(balanced tree):即drive cell和drived cell之间的net被等分,每个drived cell之前都包含有等分net的RC,如图2所示。

    3、  最差情况树(worst-case tree):在这种情况下,drived cell之前包含有整个net的RC,其结构图如图3所示。

图片

    因此,选择不同的互连线模型,便会得到不同的delay值。

    另外,线负载模型也可以指定不同hierarchy下采用不同的wire load model,主要分三种:top、enclosed、segmented,通过set_wire_load_mode来进行设置。

    top:该模式下,所有hierarchy下的net都应采用top module下的wire load model,具体如图4所示。

图片

命令如下:set_wire_load_mode top

   set_wire_load_model A –name wlm_cons –library lib_stdcell

   set_wire_load_model B –name wlm_light –library lib_stdcel

   set_wire_load_model C –name wlm_aggr –library lib_stdcel

   set_wire_load_model D –name wlm_typ –library lib_stdcel

    enclosed:如果此模块完整包含了某个net,那么该net就采用该模块的wire load model,如图5所示。

    命令如下:set_wire_load_mode enclosed

   set_wire_load_model A –name wlm_cons –library lib_stdcell

   set_wire_load_model B –name wlm_light –library lib_stdcel

   set_wire_load_model C –name wlm_aggr –library lib_stdcel

   set_wire_load_model D –name wlm_typ –library lib_stdcel

    segmented: net采用其所在模块的wire load mode,如图6所示。

命令如下:set_wire_load_mode segmented

   set_wire_load_model A –name wlm_cons –library lib_stdcell

   set_wire_load_model B –name wlm_light –library lib_stdcel

   set_wire_load_model C –name wlm_aggr –library lib_stdcel

  set_wire_load_model D –name wlm_typ –library lib_stdcel

#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。如有需求,可打开星球芯冰乐,获取更多知识干货分享与答疑服务。


http://www.ppmy.cn/server/121421.html

相关文章

YoloV8改进策略:BackBone改进|PoolFormer赋能YoloV8,视觉检测性能显著提升的创新尝试

摘要 在深度学习的广阔领域中,目标检测作为计算机视觉的基石任务之一,始终吸引着研究者的广泛关注。近期,我们大胆尝试将前沿的PoolFormer主干网络引入经典的目标检测框架YoloV8中,这一创新性融合不仅为YoloV8注入了新的活力,更在检测精度与效率上实现了双重飞跃,成为目…

如何将Excel表格嵌入Web网页在线预览、编辑并保存到自己服务器上?

猿大师办公助手作为一款专业级的网页编辑Office方案,不仅可以把微软Office、金山WPS和永中Office的Word文档内嵌到浏览器网页中实现在线预览、编辑保存等操作,还可以把微软Office、金山WPS和永中Office的Excel表格实现网页中在线预览、编辑并保存到服务器…

基于深度学习的文本情感原因提取研究综述——论文阅读

前言 既然要学习情感分析,那么肯定还要了解情感原因对抽取的发展历程,所以我又搜了一篇研究综述,虽然是2023年发表的,但是里面提及到的历程仅停留到2022年。这篇综述发布在TASLP期刊,是音频、声学、语言信号处理的顶级…

使用Docker快速搭建Airflow+MySQL详细教程

为了使用 Docker 安装 Apache Airflow 2.9.3 并配置 MySQL 数据库,确保数据持久化,我们可以使用 Docker Compose。以下是详细步骤: 步骤 1:创建项目目录 在你的工作目录中创建一个新目录来存放所有相关的配置文件和脚本。 mkdi…

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火,可有人提问,这么火的语言它的底层又是什么语言编写的呢? python是C语言编写的,它有很多包也是用C语言写的。 所以说,C语言还是很…

Linux系统接口--五种IO模型

1、简介 Linux IO 模型根据实现的功能可以划分为为阻塞 IO、 非阻塞 IO、 信号驱动 IO, IO 多路复用和异 步 IO。 根据等待 IO 的执行结果进行划分, 前四个 IO 模型又被称为同步 IO,如下图: 2、详细介绍 2.1 阻塞IO 在阻塞IO模…

Unity 设计模式 之 行为型模式 -【访问者模式】【模板模式】【策略模式】

Unity 设计模式 之 行为型模式 -【访问者模式】【模板模式】【策略模式】 目录 Unity 设计模式 之 行为型模式 -【访问者模式】【模板模式】【策略模式】 一、简单介绍 二、访问者模式(Visitor Pattern) 1、什么时候使用访问者模式 2、使用访问者模…

Flink的反压机制:底层原理、产生原因、排查思路与解决方案

反压(Backpressure)是流处理框架(如 Apache Flink)中非常重要的概念。反压的产生和有效处理,直接影响整个流处理作业的稳定性和性能。本文将从 Flink 的底层原理、反压产生的原因、如何排查反压问题,以及如…