数字后端——布局

2023-11-18

        由于I / O单元和模块的布放已经在布图规划时完成,因此布局的剩余任务主要是对标准单元的布局。布局方案在布图规划时就已经做了决定,要么选择展平式布局,要么就是层次化布局。

一、布局目标

        布局的目标也即布局内容实施之后所要达到的预期值,可以归纳为以下3部分。

  1. 各模块的位置相对确定,每个标准单元都被放置在相应的位置,并具有自己的状态(attribute)。整个设计的拥塞程度相对均匀合理,基本满足布通的要求。
  2. 满足设计规则的要求,即除了时钟网络,其他的高扇出网络,如复位信号等都插入了相应的驱动单元,从而满足最大电容、最大扇出和最大信号转换时间等设计约束。时钟网络上的设计规则需要在时钟树综合阶段完成。
  3. 芯片的时序和供电较为良好。芯片的时序主要体现在建立(setup)时间的违例上,在布局完成后,可以根据标准单元位置的具体摆放,从而调用较为精确的延迟模型对设计进行延迟预估,此时芯片的工作主频基本上已经确定,不同的EDA工具布线之后的时序与布局之后的时序预估的差别各异,有时布线之后的延迟会比布局之后高出5%~10%。芯片保持(hold)时间的违例一般在时钟树综合之后完成。此时对芯片的电源进行分析与最终的分析也较为接近。

二、布局方式

1、展平式布局

        在芯片的布图规划阶段完成了芯片的整体规划,在布局阶段则是其细节的实施。布局是自动化的,如果采用展平式布局方案,它的主要内容有以下两个部分组成:

  1. 模块的摆放与布局。模块(block)的摆放一直是布局的重要组成部分。一直以来,集成电路后端设计者在完成布图规划阶段,需要半自动地将模块放置在芯片核内合理的区域之内,当发现结果不理想时,还可以重新调整它们的位置。随着更多基于模块设计(BBD)在SoC中的使用,大量模块位置设计则由布局工具自动完成。
  2. 标准单元的摆放和优化。当硬核模块的位置设定好后,需要将模块内的标准单元摆放到相应位置,这就是布局的主要工作。当标准单元的位置确定后,布线后互连线的寄生分布参数的数值具有实际意义,此时对芯片的时序进行分析,从而进行优化。

        大量标准单元的放置采用自动布局方法实现,用户也可以通过脚本或手动等辅助方法,将寄存器按照一定的阵列摆放,例如,对Datapath模块的摆放。时钟树中所用buffer属于标准单元,它们位置的摆放也可以通过手动实现。

2、层次化布局

        在层次化设计方案中,布局有三个过程:①先分配子模块,这是与展平式布局最大的不同之处;②作子模块级的布局,它的方法与展平式一样;③所有子模块完成后在顶层组装,其布局方法也与展平式一样。

1)子模块约束类型的制定

        层次化设计中子模块的约束类型一般有三种:向导约束(guide)区域约束(region)和限制约束(fence),其中

  • 向导约束为模块指定向导范围,属于该模块的标准单元,可以放置在该向导范围内,也可以放置在向导范围之外,不属于该模块的标准单元也可以放置在该向导范围内。
  • 区域约束中,属于该模块的标准单元只能放在指定的区域内,该区域还可以放置 其他的模块元。
  • 限制型约束中,属于该模块的标准单元只能放在该区域内,且不允许放置其他模块中的标准单元。限制型约束是强约束类型,多用于层次化设计中,而在展平式设计中,多采用较为宽松的约束。

        上述3种定义为Cadence公司的SoC Encounter中的名称,不同的EDA工具对于这三种的约束定义有所区别。例如,在Astro中,所有的模块都可以用PlanGroup来定义,其约束的程度可以通过定义其权重,从而确定各个区域的约束类型。

2)子模块大小位置的制定

        为各个模块指定约束后,耑要在芯片内部指定模块的大小和位置。模块大小的确定主要看面积利用率的大小,它是指标准单元总面积与模块在芯片内部所分布面积之比。当初始利用率低于70%时,较容易布通,而当利用率高于85%时,则会出现较大的拥塞,从而导致无法完成布线。

三、布局目标预估

        芯片的物理设计需要在不同阶段对芯片需要实现的目标进行评估,从而尽早发现问题,并减少设计的迭代。在布局完成后需要评估的目标主要有:拥塞(congestion)程度的评估、延迟和时序预估供电预估。一般情况下层次化设计在布图规划后,进行目标预估,并分解到各个模块。当然在很多情况下是在虚拟原型设计完成,即布局优化、粗布线完成后对设计目标进行预估。

1、拥塞预估

        在布局完成之后,标准单元的位置相对确定,即可以较准确地对布线的拥塞程度进行预估。EDA工具将整个布线空间划分为多个小的布线格,每个布线格划分为横向通道和纵向通道,在每个布线格内,估算并统计所需要的纵向通道和横向通道数量,当实际需要的通道超过现有的通道的5%时,表明拥塞程度比较大。由EDA工具分析拥塞和显示拥塞程度的菜单,可以得出拥塞的数据和分布,从而决定布局优化的方案。当全局拥塞很小,但是存在局部拥塞较大的情况时,则需要对设计进行优化。当报告全局的拥塞非常小,但是在局部区域存在着较大的拥塞,会造成布线无法布通时,则需要对标准单元布局进行优化。

2、时序预估

        标准单元布局完成后,其位置都相对确定,此时对芯片的延迟计算和时序较接近于芯片最终的时序。在布局完成后, 一般只需要做建立时间(setup time)预估,不需要做保持时间(hold time)预估,因为此时还没有进行时钟树综合,而保持时间的违例通常是在时钟树综合之后进行优化。这时还可以对噪声的影响进行预估,在0. 18pm及以上工艺,一般不需要太多地考虑噪声,而在0. 13um及以下的工艺中,则需要考虑噪声的影响,在标准单元布局阶段即可以考虑噪声。

3、供电预估

        标准单元布局后,将标准单元的供电端口连接到电源网格中(followpins),此时可以引用VCD文件,对芯片的功耗、电压降及EM进行评估。由于时钟树还没有综合,功耗值会偏小,在预估时应当注意。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字后端——布局 的相关文章

  • 九龙战登录只显示一个服务器,九龙战登录失败进不去解决办法

    九龙战是腾讯推出的一款三国题材的动作竞技手游 目前已经开启了不删档测试 但是玩家们在游戏中遇到了登录失败进不去的情况 下面小编就为大家介绍一下九龙战登录失败进不去解决办法 首先玩家们要知道九龙战是一款不删档测试不久的游戏 所以在这期间出现什
  • Android基于BroadcastReceiver和Service、SoundPool开发的防过充助手app

    前段时间换了一个小米4C手机 可是发现它的充电充满没有提醒 上一个手机换了就是因为不爱惜电池 让它过充的次数多了 虽然听别人说小米4c手机充电器是智能充电器 有保护作用 但我自己还是不放心 于是就亲手写了一个防过充小应用 已经在使用 可以达
  • 如何使用LaTeX制作PPT?

    作为LaTeX排版软件 LaTeX主要被用来制作书籍和文章 但由于现代LaTeX系统主要以PDF文件为输出方式 授课 演讲用的计算机幻灯片也日益成为LaTeX的一个重要应用 LaTeX中专门用来制作幻灯片的工具有powerdot文档类 pr
  • 探索.NET:​构建现代软件开发的核心框架

    摘要 在现代软件开发领域 选择一个合适的开发框架对于成功构建可靠 高效的应用程序至关重要 NET 读作 dot net 是一个强大而广泛使用的框架 为开发人员提供了丰富的工具和功能 以简化开发过程并加快交付时间 本文将介绍 NET的基本概念
  • 【手撕RPC服务分几步】

    手撕RPC服务分几步 前言 什么是RPC 从被调用方 provider 来说 从调用方 consumer 来说 扩展思考 dubbo架构图 前言 本文试图通过手撕RPC的理论步骤来帮助我们更好的理解其特性 也更好的理解像Dubbo sofa
  • flutter 填坑之旅(dart学习笔记篇)

    俗话说 工欲善其事必先利其器 想要撸flutter app 而不懂 dart 那就像一个不会英语的人在和英国人交流 懵 安装 dart 就不用说了 比较简单dart 官网 https dart dev 安装完成后就开启学习dart 旅程吧
  • MyEclipse配置Tomcat7

    首先我们打开Myeclipse 进入偏好设置window gt perferences 进入偏好设置 perferences 在偏好设置的搜索栏那里输入tomcat查找tomcat 如下图所示 3 我们可以看到搜索到的有四个tomcat项
  • (笔试前准备)字符串匹配算法总结

    我想说一句 我日 我讨厌KMP KMP虽然经典 但是理解起来极其复杂 好不容易理解好了 便起码来巨麻烦 老子就是今天图书馆在写了几个小时才勉强写了一个有bug的 效率不高的KMP 特别是计算next数组的部分 其实 比KMP算法速度快的算法
  • STM32 HAL库更改中断向量表的偏移地址

    以STM32F767为例 打开system stm32f7xx c文件 定位VECT TAB OFFSET 更改此宏定义的值 即可更改偏移量

随机推荐

  • 富维火焰识别算法

    火灾是威胁公共安全 危害人民生命财产的灾害之一 加强消防安全管理是头等大事 对火灾做到早预防 早发现 尽量避免火灾的发生尤为重要 近年来随着网络摄像机的广泛使用以及图像处理技术的不断发展 基于视频的北京富维图像火焰识别算法得到了越来越多的关
  • Android Rom修改制作工具软件集合

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 SIN2IMG 用于固件ftf中system sin的解包 下载地址 SIN2IMG rar 使用方法 将固件ftf文件用rar打开 解压出system sin文件 将
  • Idea 修改默认的Maven配置及修改为阿里源

    每次使用Idea创建或者导入Maven项目的时候 Idea都会使用系统默认的Maven 此时 如果我们想使用自定义安装的Maven 需要在File gt other settings gt Settings for New Projects
  • STM32-custom usb

    如何建立一个自定义的HID工程呢 下面就来讲讲 首先先介绍下工程的架构 工程的总体架构下图所示 按照下图架构建工程 分析下工程布局 首先是APP 这个组里存放着主文件mian c 管理所有中断服务程序stm3210x it c 及其管理外设
  • PageObjects支持库-Poium使用方法

    PO模式 学过自动化的都知道PageObjects模式 将页面对象封装为类 页面元素和操作封装为类的属性和方法 在测试方法中调用页面对象进行测试 关于PO模式可见 http t csdn cn 0DBlP 在PO模式下 我们一般定义个一个基
  • 想写一本书,而这是序言

    口袋书 序言 现在的风口是什么 很多人会答人工智能 Artificial Intelligence AI 人工智能是一项伟大的发明 我们不得不承认 它已经为社会带来了翻天覆地的变化 并 将在未来卷起更大的风暴 不了解人工智能 就难以在这个
  • 前端js将扁平化数据转化为=菜单树

    let menuList id 1 pid 1 name 江西 id 2 pid 1 name 南昌 id 3 pid 1 name 九江 id 4 pid 1 name 广东 id 5 pid 4 n
  • 【考研】数据结构——线索二叉树

    CSDN话题挑战赛第2期 参赛话题 学习笔记 前言 本文内容源于对 数据结构 C语言版 第2版 王道讲解学习所得心得 笔记整理和总结 本文针对线索二叉树 在最后的练习中 以举例子说明该排序方法 配以图文 讲解详细 含408真题 可搭配以下链
  • 学校与工作(献于在校大学生及入职不久的工作者)

    学校与工作 每个人都把自己眼界的局限当成世界的局限 学校是非常不同于职业工作的 有些人在其早期职业生涯中栽跟头 就是因为未能从已经生活了近20年的学校环境过渡到软件行业的美丽新世界 学生的活动具有高度约束性 工作量都是规定好了的 虽然当你是
  • IEEE-754标准浮点数,十六进制与十进制转换方法(附C代码)

    十进制数与IEEE 754 32 位转换实例讲解 https blog csdn net qq 41629142 article details 83692106 https blog csdn net a627088424 article
  • springboot集成kafka实战项目,kafka生产者、消费者、创建topic,指定消费分区

    springboot集成kafka实战项目 kafka生产者 消费者 创建topic 指定消费分区 前言 本项目代码可直接集成到你现有的springboot项目中 功能包括 1 kafka生产者配置 2 kafka消费者配置 指定分区消费
  • eigen与opencv矩阵转换,eigen与matlab函数比照

    近期 项目需要 学习使用eigen矩阵库 链接时eigen的主页 发现相关中文资料比较少 今天写下使用心得 eigen配置 windows vs系列 eigen的配置很简单 下载解压后 在VC 目录下的包含目录中 将eigen的路径包含进去
  • java多线程使用教程

    文章目录 如何使用多线程 继承Thread类 实现Runnable接口 线程的生命周期 线程同步 线程间通信 shutdown 方法的重要性 如何使用多线程 在Java中 创建多线程的方式有两种 一种是继承Thread类 另一种是实现Run
  • docker中mysql初始化及启动失败解决办法

    在docker中有一个mysql服务 其数据文件是挂在在主机外面的文件 在docker中的root有访问该数据文件的权限 但是docker中mysql访问数据文件的时候提示权限不足 于是只有以root用户来启动mysql了 数据初始化 my
  • 从零开始Vue3+Element Plus后台管理系统(十)——自定义水印指令与全局注册

    在实际项目开发中 自定义指令用得还是比较多的 比如 复制粘贴 输入框防抖 输入框禁止特殊字符 权限校验 背景水印 拖拽等等 指令确实是个优雅的存在 Vue3中定义一个普通的自定义指令的详细说明参见官网 https cn vuejs org
  • Ubuntu 安装 anaconda

    文章目录 写在前面 一 官网下载安装包 二 安装 参考链接 写在前面 Ubuntu安装 anaconda 比较简单 去官网下载 anaconda 安装包 然后安装即可 自己的安装环境 Ubuntu18 04 anaconda3 博客撰写日期
  • MySQL-图形化界面工具 (下)

    作者 小刘在C站 个人主页 小刘主页 每天分享云计算网络运维课堂笔记 努力不一定有收获 但一定会有收获加油 一起努力 共赴美好人生 树高千尺 落叶归根人生不易 人间真情 目录 MySQL 修改数据 删除数据 DQL 基本语法 MySQL M
  • MySQL导出和导入SQL脚本

    首先 使用mysqldump命令的前提是 在Cmd中进入mysql安装目录下的bin目录下 才可以使用该命令 我的mysql安装在E 盘 所以 首先进入bin目录下 E Program Files MySQL MySQL Server 5
  • SLAM常用最小二乘最优化方法学习、分析和总结

    SLAM中二维视觉的定位问题被最终归为一个最小二乘问题 那么紧随其后的就是对最小二乘的最优化求解 对其求解析解显然是不太合适的 所以就需要一些数值的最优化方法对最小二乘问题进行求解 在SLAM中 常用的算法有 梯度下降法 牛顿法 以及牛顿法
  • 数字后端——布局

    由于I O单元和模块的布放已经在布图规划时完成 因此布局的剩余任务主要是对标准单元的布局 布局方案在布图规划时就已经做了决定 要么选择展平式布局 要么就是层次化布局 一 布局目标 布局的目标也即布局内容实施之后所要达到的预期值 可以归纳为以