介绍完项目角色,今天我们来介绍一下项目的规划。
芯片设计是一个前端,后端,验证...各部门相互合作的一项任务,整个周期非常长,通常需要几个月甚至一年。那在这个周期之内,各部门是如何开展项目进度的呢?
通常在公司里,会把一个项目按照schedule分成好几个阶段,至于分法,各个团队各有不同。下图是一个简单的设计流程图,大家可以理解一下,在每个阶段,各个角色需要承担什么样的任务。
我把设计简单分为六个阶段,“A,F,P,L,C,M”
A代表Analysis阶段,也有很多芯片并没有Analysis阶段,而是直接进入Floorplan阶段。这个阶段是早期的一个预热阶段,往往我们都还没有一版完善的netlist,可能只有少量的几个综合好的block,这个阶段我们应该以和前端的交互为主,搞清楚设计中大体的数据流是怎么样的,主要的一些挑战在什么地方。
F代表Floorplan阶段,顾名思义,就是这个阶段已经有了一版网表,能够支持我们开始Floorplan阶段的工作了。
对Top Level来说,最重要的是有以下工作:
1.确定一个芯片的Die Size
2.各个Partition的划分
3.大概需要多少个IO
4.一些复杂IP的布局
合理规范的完成这些工作,确保top level没有显著的congestion问题。
对Block Level来说,在该阶段,你可能不仅仅是完成Flooorplan,Placement,往往你需要走到更后面,包括CTS和Route,以及timing closure。我们都会在Floorplan阶段进行很多的尝试,来确保整个block level是足够可靠的。
P代表Preliminary阶段,是一个预备的阶段。这个阶段对我们来说,最重要的是完成top level的一个完整的尝试过程。当然,其他各个角色包括DFT的插入和验证,noise的分析,timing的分析.....都要在这个阶段完成。确保在下一个“L”阶段能够以最少的iteration来完成最后的sign off工作。因此,F和P阶段加在一起,构成了一个完整的尝试过程
L代表Layout阶段,也被称为implementation阶段。这个阶段,我们已经得到了正式Final的网表,整个阶段就撸起袖子,全力以赴,完成我们所有的设计工作,准备tape out了。
C代表Checking阶段。该阶段我们所需要做的主要任务就是将physical database转换为GDSII,完成LVS,DRC的check。其实,随便设计复杂度的越来越高,如果我们不在“L”阶段做一些DRC,LVS的工作,那么是很难在Checking这么短时间内完成这样一个cleaning up的工作。
M代表最后的Manufacture阶段。就是我们通常说的生产阶段了,通常需要3个月左右的时间来完成芯片的加工和生产了。
好了,一个芯片后端设计的大致规划进度介绍完了(鉴于知识水平有限,应该漏掉不少东西。。。) 总之希望大家能有个初级印象,在一个项目中能清晰明白自己所处的阶段。
下期再见~~
公司招聘
简历请戳邮箱:taozhang3260@163.com