芯片设计中常提到的是什么?

flow可以简单的理解为“流程”,但在不同的芯片设计公司,不同的设计阶段,流程又千变万化,不尽相同。

对于工程师来讲,入职一家公司以后,要尽快从同事那搞到“flownotes”,也就是平时的记录的flow笔记或者说明,以便快速上手。

芯片设计中的“跑flow”意味着按照这一系列既定的流程进行设计工作,每个阶段都有相应的设计工具和方法学支持,以保证设计的高效和准确性。Flow工程师则负责,建设、维护和优化这一流程,确保设计团队能够高效地完成芯片设计项目。

好像看了以上,外行人还是没有很懂,那我举个例子好了,我们把设计一款芯片比作做一道菜:青椒土豆丝,那么问题就来了:

土豆丝的粗细要做到什么程度?

先下油、再热锅,还是先热锅,下油?

葱姜蒜爆锅爆多久?

先下青椒,还是先下土豆丝?

什么时候放盐?什么时候放鸡精?

炒至什么时候出锅?

......

每一个环节有细微的差别,都会导致做出来的青椒土豆丝口味不同,同样,不同流程做下来的芯片,PPA和本身的质量上也会有差别。

而flow的存在,在一定程度上实现了设计的标准化、高效性和准确性,以上所有的步骤,都要通过用脚本搭建的flow约束住。如果哪一天发现flow工具在某一cornercase下支持的不够好,就要flow工程师去更新flow,一般flow都是通过makefile、perl、TCL这些语言搭建起来的。

芯片工程师的一大特点就是【懒】,一个好的flow应该会自己跑,芯片设计中常提到的是什么?所以很多时候,芯片设计工程师或者flow工程师都在想着尽可能的让其“自动化”,最好是有了芯片的spec,一键生成GDSII,直接交给FAB制造。

如此的话,那设计工程师和flow工程师是不是就失业了?其实不会,原因如下:

首先,没有100%完美的flow,一键出wafer只是完美的设想。

是flow,就难免会有bug,尤其是新开发的一套flow,修bug是工作的主要内容之一。

因为flow自动化节省下来的时间,要么玩手机,要么去解决更有挑战的问题。

我一直秉持一个观点,对资深或者优秀的芯片工程师的定义,就是是否具备从零搭建芯片设计flow的能力,这才是基础,是核心。

可能在大公司做flow,不要求全面了解芯片设计,只要脚本能力强就行。但要为一家公司从零搭建flow,没有对应得前端设计/验证/DFT/后端的背景是做不好的。

芯片行业的名词太多了,很多翻译成中文又不准确,心疼这一行的HR和猎头们,摸摸头~

免责声明:本网站部分内容由用户自行上传,若侵犯了您的权益,请联系我们处理,谢谢!联系QQ:2760375052

分享:

扫一扫在手机阅读、分享本文