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

数字后端培训项目Floorplan常见问题系列专题续集1

今天继续给大家分享下数字IC后端设计实现floorplan阶段常见问题系列专题。这些问题都是来自于咱们社区IC后端训练营学员提问的问题库。目前这部分问题库已经积累了4年了,后面会陆续分享这方面的问题。
希望对大家的数字后端学习和工作有所帮助。

数字后端项目Floorplan常见问题系列专题

  1. 脚本中macro边加的是addHaloToBlock ,用placeBlockage 也可以吧,两者区别是什么呢?

两者功能是一样的。只不过addHaloToBlock会跟着macro走的,即挪走macro对应的halo会跟着走。

  1. 昨天训练营直播课有个同学提了一个问题 “FloorPlan阶段如何科学地预估每个Marco的走线资源与走线空间”,我想直白些问,怎样预估两个memory 之间的间距,简单举个例子具体说明吧。

这里需要先预估macro中间有哪些线可以用来绕信号线,比如只有纵向的M6可以绕的话,就根据M6的最小pitch,乘上macro的pin数量,得到这些信号线的总线宽,再加上一定的余量预估间距即可。

如果可用的绕线层更多,也是用同样的方法,平均下来再加上一定的余量进行测试。

假设macro的间距是5um,macro绕线全走中间的通道。以左图为例,Macro有30个pin,而M6的pitch是0.1um,那么30个pin全部用M6绕线的话,需要3um的间距,那么5um的间距是足够的。但是如右图所示,如果两个相同的macro相对而放,那么pin的数量就是60个,所需要的间距就是6um,5um明显就不够了。

memory channel大小估算方法

考虑macro身上也能绕线,假设macro的间距是5um,macro的宽也是5um,在不考虑macro的pg绕线情况下。以左图为例,Macro有30个pin,而M6的pitch是0.1um,那么30个pin全部用M6绕线的话,需要3um的间距,那么macro加中间通道总共10um的间距是完全足够的。而如右图所示,如果两个相同的macro相对而放,那么pin的数量就是60个,所需要的间距就是6um,15um的绕线资源也是可以完成绕线的。

在实际考虑Macro的绕线资源时,需要去掉macro本身已经用的金属层,比如一般情况下M1到M4都是macro的内部绕线层,而M4是pg network。那么M4以上的金属层就可以拿来给macro绕线,当然这里需要剔除powerplan用到的资源进行综合计算。

一般情况下两个marco间的space更多是防止base layer drc,或者如果两个marco中间需要摆放标准单元,就需要留大点。

Core area相对于die_area 为什么要设置偏差值,偏差值一般设置成多少
为了避免port跟pg出现short的drc违例,一般我们会在core和die之间预留数倍row高度的空间来给port走线,这里给个参考值3。

  1. 其他形状的foorplan如何设置,如T形,U型的floorplan形状应该如何初始化?

ICC2中其他形状的floorplan可以用gui界面来设置,也可以参考gui界面给出的脚本。这里的2是指各条边的比例,工具会根据利用率和长宽比自动计算每条边的长度。也可以在Side size control选择Length,直接指定每条边的长度。其他的形状可以参考这个进行设置。

在这里插入图片描述

也可以用下面这个命令来initi 多边形的形状。

initialize_floorplan -boundary

  1. create_tap_cel1s -1ib_cell $tapcel1_ref -pattern stagger -distance 30 -skip_fixed_cells这条语句啥意思?

这句话的作用是摆放tap cell,主要作用是将Nwell连接到VDD,p-substrate 接到VSS,避免出现latch up。

Stagger是以棋盘的方式进行摆放,具体摆放见下方的箭头所示。
30是指每个row上两个tap cell的间距,这个需要大家查询design manual进行确定,这里给的值也希望大家思考合不合理。
-skip_fixed_cells是跳过macro cell进行摆放。

在这里插入图片描述
在这里插入图片描述

  1. 自己摆放floorplan怎么知道有没有DRC问题?或者需要check哪些东西?

macro之间的最小间距满不满足要求;
port之间的最小间距满不满足要求;

电源网络有没有出现drc的情况,比如via过孔满不满足要求;

strap的宽度和间距满不满足要求;

电源网络会不会跟port短路等情况;

做完floorplan和powerplan之后,可以插filler写出设计gds,然后进行calibre的drc检查。具体实现脚本见社区IC后端训练营脚本。

  1. upf在floorplan阶段不会使用吗?

本案例不使用upf。在做低功耗设计实现时可能会用到upf。
这里分享一个咱们低功耗四核A7 TOP hierarchical flow实现项目使用的golden upf模版。

低功耗upf语法及结构

  1. don’t_use怎么确定list?除了foundry规定的一些cell,根据经验吗?
    set dontuse_ref “/DEL
    /FILL
    /ANTENNA
    /DCAP
    /TIEH
    /TIEL
    /BOUNDARY
    /TAPCELL
    /BHD
    /CK
    /DCCK
    /D24BWP
    /D20BWP
    /D0BWP
    /G
    /INVD21 "
    这上面基本上就是一个参考设置了,DEL
    是延迟cell,主要用于修hold,但是它面积比较大;
    FILL
    是填充单元,只有在postroute之后才需要插入;
    ANTENNA
    是天线单元,只有在route阶段才需要开启;
    DCAP是去耦单元,用于改善IR drop,同样只有在postroute之后才需要插入;
    TIEH
    和TIEL是在place和优化过程中才需要使用,将逻辑0和1连接到VSS和VDD;
    BOUNDARY
    和TAPCELL只有在floorplan阶段才需要使用,后续都不再使用;
    BHD
    这个属于bus holde,本设计不需要使用。
    CK和DCCK是时钟相关的buffer和inverter,只有在cts阶段才能使用
    D24BWPD20BWPD0BWP属于最强和最弱的cell类型,大驱动的cell容易有em问题,最小驱动的cell驱动能力太弱,能提供的优化能力有限,而且不同corner下容易因process的偏差而出现timing不一致。
    G*属于ECO cell,这个需要根据实际使用情况开启。这种cell是在做function eco时用来替换普通ECO cell用的,flow中一般都禁用。
    上面只是提供一个参考,实际上项目中可能有其他don’tuse cell需求,这个需要根据实际情况进行调整。
    请注意,设计一开始就需要将上面的cell设置dontuse属性,在某个阶段需要用到上面某种cell的时候,需要先将他的dontuse属性去掉,才能正常使用,不用之后重新设置dontuse属性。

  2. def文件是怎么生成的?不应该是floorplan吐出来的吗?怎么是floorplan的输入了?

Def文件可以通过write_def命令写出。Def是记录各种物理信息的文件,可以包括blockage、macro、port、std cell和net的详细摆放信息;
大家需要在收到摆放完macro和port之后,输出一个def文件进行保存,下一次如果说想复现这一个方案,就不需要重新手动摆放,直接读取这个def文件即可。

  1. 读入DEF文件后diearea为0/1,这是否意味着DEF文件里并没有diearea信息,这是在后面的环节中才会得到吗?

在这里插入图片描述

Diearea信息是initial_floorplan提供的,def不提供这个信息。def文件中头文件都会有一个die size的坐标。如果通过defIn读入def,需要注意下两个版本的芯片尺寸大小是否一致的情况。


http://www.kler.cn/a/450514.html

相关文章:

  • Android 之 List 简述
  • Mac系统下 IDEA配置Maven本地仓库
  • 快速部署一套Kubernetes集群
  • MongoDB 常用操作指南(Docker 环境下)
  • AIDD - 探索语言模型在药物分子生成方面的应用
  • 计算机基础复习12.23
  • *【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
  • ssm-day05 springmvc
  • 完全二叉树的权值(蓝桥杯2019年试题G)
  • Jenkins介绍
  • Eureka服务注册源码
  • springboot480基于springboot高校就业招聘系统设计和实现(论文+源码)_kaic
  • 用Python开启人工智能之旅(四)深度学习的框架和使用方法
  • 【es6复习笔记】箭头函数(5)
  • Eureka学习笔记-客户端
  • 5G CPE 主控CPU(上位机) 数据转发性能评估--基于5G模组和NEO3开发板评估
  • Dubbo 3.x源码(28)—Dubbo服务发布导出源码(7)应用级服务接口元数据发布
  • Java 网络编程 ②-TCP Socket
  • Electron -- Electron应用主要核心(二)
  • ABAP开发-权限控制
  • Android 蓝牙开发-传输数据
  • AIDD - 探索语言模型在药物分子生成方面的应用
  • iptables交叉编译(Hisiav300平台)
  • [cisco 模拟器] ftp服务器配置
  • 一个简单封装的的nodejs缓存对象
  • 828考研资料汇总