数字后端——布局

        由于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进行评估。由于时钟树还没有综合,功耗值会偏小,在预估时应当注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值