后端面试--每日一题(013)
If giving total standard cell gate count, all memory macro list including memory type, bit width and depth, all other macro with real size, and IO type and total number. How do you estimate the die size?
如果告诉你标准单元的门数,所有内存的类型和逻辑大小,其他IP的实际大小,以及IO cell的种类和数量,你如何估算整个芯片的面积?
难度:3
case by case吧,io neck or core neck ,
我们一般是很快摆摆各个hard module位置,fast place , 看一下neck, 估计一个合适的uti ,re-try几次,基本上面积就定下来了,不过将来再变的可能挺大的,一般要2~3次变size
没有网表
补充一下,我们这边前端team也会预估他们设计的面积,然后给我们,说是他们期望的面积,他们是统计一下total cell area * 1.2,表示考虑到了电源空间和std util,不过基本上我我们实际都比这大不小于20%,感觉不着调,对后端很苛刻啊
我想问的是,后端如何根据已知的条件具体计算die size
那就与我补充的一样了,门数知道,面积可以确定了,考虑到你的std uitl,hard ip也只知道大小了,sum一下,加上你认可的(经验参数) p/g/special route 面积,大体确定了。如果是io neck的话,io min-space排起来就是你的最小面积了,但此时无法保证package可以过。
IO neck时,有些问题就变得简单了
让我们主要讨论core neck的情形,如何能够更加准确地估算出芯片面积?
弱弱的问下,能不能写个scripts把所有的面积加起来啊
弱弱地问一下:io neck和core neck 是什么呢
学习中,,,
io的大小是瓶颈 或者 core的大小是瓶颈.前者: io 太多. core里面比较空.
后者: core太大. io之间还需要加filler
门数知道,面积可以确定了
IO neck 和 core neck 一般称作 IO limited 和 core limited,
IO limited :这个芯片的面积是因为IO个数限制(太多),而不得不做得那么大。core部分其实用不了那么大。这时面积计算就简化为每边IO个数的计算了。
Core limited:芯片面积是有core部分的决定的,IO没有那么多
在Core limited情况下,die size的估算如下:
芯片面积 = core面积+ power ring面积 +PAD ring面积
core面积 = RAM面积 + 其他macro面积 + 标准单元面积
RAM面积 = RAM 自身的面积 + RAM power ring面积 + keepout面积+ mbist面积
RAM自身的面积可以通过memory compiler或者查datasheet得到,
有些RAM 可以不要power ring。如果要的话,按照power mesh的宽度 x RAM的长宽 x 2 = 面积
keepout + mbist 的面积一般是RAM自身面积的10%
其他macro的面积,比如PLL,ADC,DAC等,直接把面积加起来,再留3~5%的keepout面积就好了
标准单元的面积=(预估的gate count x 每个gate的面积)/ utilization
utilization与使用的金属层数和设计的用途有关,简单地计算方法是
5层metal:50%
6层metal:60%
7层metal:70%
8层metal:80%
以上不包括power专用的金属层
如果设计是多媒体芯片,一般可以增加3~5% utilizaion,如果是网络芯片,则要减少3~5%
@@想不出來
请教个问题,如果每边的io数量相等,是否还需要每个io之间留点缝隙插iofiller?
我对iofiller的理解就是用于连接io里面的电源环,是否这种情况就可以省略iofiller?
IO filler是选项,有空就加,没空就不加
但是有些power cut,power on control IO是必须的。厂家的使用说明里有详细解释
多谢指教,思维有点局限了
Iofiller 要不要加,有时由package决定的,如果你的package怎么也做不过去,只能移动pad位置了,有时可能要拉宽很多,虽然,不考虑package你可以紧密排列io,但是有时封装决定了你的io间隙不能太小,你也没办法,为你专门开发一个满足的frame是很奢侈的,除非一定值得。
恩,封装也是一个要考虑的因素,等成功流片,这些经验才会慢慢积累起来
曾经有个65的芯片1P5M,做完了util 接近80%,当然做得很辛苦.
如果I/O limited, 象TSMC有stagger I/O,形状比较瘦长,每边可以多放一些. 还有就是放双排的I/O, 不过这种摆法不清楚wire-bonding是否会有问题,不过如果是flip-chip就没什么问题了.
utilization 的估算太误导了。因为 hard macro 的PG 大多和金属层次相关的。金属层次多,可以
over macro。
根据 std 所占面积,大致估算需要层次,然后看IP的用到的金属层次,能否over block。
最后面积加起来,留10%给浪费空间。
我们的芯片很多core area 做到pad ring中。
请楼上仔细读一下,我说的utilization是对标准单元那部分的面积,根本就没有提到hard macro的utilization
这个没有一个相对标准答案的吗?
菜鸟提问,多媒体芯片是啥,就是单纯的音乐播放芯片吗?还是视频+音频的芯片?但是视频、音频一般是分开的吧?
这类芯片utilizaion可以上浮,就是说布线比较宽松,那这类芯片的后端设计难点在哪里,相对网络芯片来说?
多媒体芯片的clock domain很多,时序约束比较复杂
1p5m,你们做到了80%的uti,不容易啊。兄弟。这芯片规模多大,主频多高,还有就是你们用的Power strap大概是怎么样的规划?
请问什么是mbist的面积?
mem机台测试,一般需在mem外包TAP和一些控制逻辑
学习了
长知识