为什么我们感觉到大部分芯片公司公司都在加班。这个现象的背后原因一方面是现在芯片竞争激烈,抢夺时间就是抢夺市场,芯片创业公司需要快速迭代推出自己的产品占领市场。另外一方面的原因是公司为了降低用人成本,都希望将一个工程师当成两个工程师用。
除了上述原因还有其他原因吗?以小编的经历以及和很多工程师交流的时候发现芯片创业公司内部普遍存一些问题。这些问题导致了众多工程师工作效率低下,使得很多公司不得不靠加班来赶进度。让我们从上到下看看创业公司都有哪些问题,各位引以为戒。对于芯片需要的功能和指标缺乏科学的分析和评估方法。很多指标的制定是参考竞争对手芯片进行设计,然而对这些指标后面的意义不是很了解,这就引起了很多问题。一个是制定的指标很难实现,很多设计在快完成的时候去跑性能仿真发现指标实现不了,然后回头再去改指标改设计,浪费了研发人员大量时间。二是制定的指标过高,已经远远超过市场应用需求,为了实现这些指标花费很多的财力人力。三是制定的功能当时虽然满足市场需求,并且很有竞争力,但是等芯片设计到一半的时候,发现同类产品已经出来,自己家设计的功能不及其他家,从而不得不放弃自己家的设计方案。四是没有考虑应用者的需求,有些场景没考虑全,无法实现,或者是让软件设计人员在某些场景实现的时候非常麻烦,增加了软件研发人员的工作量。在市场上能够完整走一遍流程的研发人员凤毛麟角,而具备该种能力主导一颗芯片设计的管理人员更是少之又少。因此缺乏此类人才的芯片公司中大量存在流程不规范,不专业的问题。比如异步电路可以通过Lint,CDC去检查发现异常,但是非得用动态仿真的方式去检查,从而漏掉很多需要注意的点。亦或是综合后网表需要通过功能一致性检查而没有认真完成,致使后端实现的时候电路功能有异常也没有被发现。总结起来就是对芯片设计流程掌握的不够深入,让芯片不断返工甚至流片失败。这个是工程师吐槽最多的地方。代码更改没有上传到代码库里面,或是错误的设计代码误上传到代码库里面,或是综合的时候拿到不是最新的版本等等这类问题数不胜数。研发人员不得不花大量时间在代码的维护上面。科学的验证方法学可以快速高效的收敛验证,而对验证方法学掌握不够透彻就会导致采取低效的测试手段片面的验证设计。比如在对一些bus mutrix验证的时候,如果不懂得formal验证,只是通过动态仿真验证,需要造大量的测试用例去覆盖各种情况,造成验证人员大量时间的浪费。当人力不足的时候,高效的运用脚本自动化的处理一些事情可以省下不少人力,但是很多创业公司完全靠人力去完成一些本该机器可以实现的一些事情,比如定期跑regression,定期收集coverage等,还需要安排单独的一个人力去做,这对人力资源是种极大的浪费。白天开会,晚上加班,说到底还是工作效率低。特别是主持会议的人员缺乏会议主持经验,让会议主题发散,不能控制会议时间,不能有效的在会议上制定可以执行点,没有做相关的会议纪要,后续没有及时跟踪会议实施的反馈,让会议开成了茶话会。这样不仅仅没有解决项目问题,更是浪费了与会人员的时间。有没有解决方法,当然有,很多大公司经验都可以借鉴。合作方可能是后端服务厂商,也可能是IP厂商,或者是设计服务厂商。在与这些厂商沟通的时候,缺乏沟通技巧,从而导致无法争取对自己有利的资源。比如在与后端沟通的时候,因为缺乏对后端工作了解,对后端的工作量无法做出正确评估,在谈判的时候不占据优势,让后端厂商占据太多时间做布局布线,从而压缩了前端的工作时间,让本就紧张的资源更加紧张。很多研发人员对紧急重要任务,紧急非重要任务,不紧急重要任务,不紧急非重要的任务的处理混乱,这体现在一天工作量都是一些杂活。因为主次不分,工作经常被打断,从而工作效率低,不能按时按量的完成任务。这是创业团队里面我觉得最大的问题。大公司因为人多,部门多,工作的时候容易形成部门墙,研发人员往往把自己的事情做好,对于不是自己的事情想办法推脱。而这些工程师将这种职业习惯带到创业公司里面会降低整个团队的工作效率。因为创业团队分工不会那么明细,很多模块都有改动,如果设计验证人员仅仅抱着自己的一亩三分地,而没有思考过对整个项目负责,在面对新的模块改动的时候,就会以各种借口推脱,这种行为将大大降低团队的作战能力。以上是芯片公司里面经常出现的问题,朋友们,你们的公司都有哪些问题呢?欢迎留言吐槽。