本文转载自知乎用户 硅农 的回答,谨代表个人周围情况。非典型的IC工程师的一天
我是一名数字前端IP设计工程师,这是我工作的一天。
早上6:50闹钟响,点击稍后提醒,十分钟后再响,再点击稍后提醒,如此三次后7:20起床、洗漱,赶7:50的园区班车去公司上班。8:00到公司楼下,去包子店买俩包子,一个茶叶蛋。进办公楼,扫码,测体温,嘀,温度34.5摄氏度...打卡,进入办公区域。回到办公位,边玩手机,边吃着早饭。8:10,打开电脑,看看昨天有什么邮件要处理。进入内网,看一下昨晚提的回归跑的这么样了,想一下今天要干的事情。陆陆续续的同事们都来了,接杯水,聊两句,打开昨天的日报内容,温习一下。因为很快就到9:00了,要开早站会,需要汇报昨天的工作内容,以及今天要做的工作。上午
根据项目的进度流程,需要做的工作也相对有一些差别。项目需求确认后,学习协议,算法原理,算法文档,算法代码,来编写硬件概要设计方案文档,主要就是评估、预估设计需要的时间,资源面积。整理各类场景。开会讨论,找经验丰富的工程师,review下方案,把把关。编写详细设计方案文档,包含整个设计的所有的数据通路和控制通路的设计,各个模块的划分和信号命名,软件需要访问和配置的寄存器表格,RAM的大小和类型等。控制通路包括状态机,关键时序图,涉及到ram的读写时序图,数据通路包括,整个数据通路的原理图,各个计算模块的计算电路,数据的定点,消耗的乘法器资源,流水线的时序图,需要用到的IP,ram的存储规格,数据通路消耗的寄存器资源评估统计。系统中所有的子模块的关键信号定义和交互信号约束,文档写的越细,写代码就越快,写文档的有些部分尽量想清楚,要不就不想,别再写代码的时候再想一遍,浪费多余的时间。详细设计方案文档编写的差不多了,就再评审一下,评审完开始进行代码编写阶段。快12:00了,提前个几~二十几分钟错峰午饭,省去排长队的时间,时间管理么,回来飞速的躺在公司文化折叠床上小憩一会儿。以梦为马,不负韶华。以梦为马,不负韶华
13:00,闹钟响起,点击稍后提醒,13:10再次响起,关闭,开始下午的工作。数字电路设计发展到这个阶段,前人该踩的坑都已经踩了,单个模块的设计越来越像是体力活,只要整体方案设计的好,详细文档编写的好,写Verilog就可以说是体力活了,照着自己画的时序图,电路图,写代码。很快代码就基本上写出来了。这时候,DV的验证平台可能还没搭建起来,控制通路,可以自己搭建一个简单的小testbench看看波形,仿真起来,看看和自己的设计的时序图是否一致,等DV平台搭建好后,开始对数模式。(注:本人从事的通信IP设计,所以设计到的数据计算的定点模块比较多,需要和算法计算出来的数据进行对比)然后就是漫长的调试(debug),正所谓,久坐不觉茶水凉,起身方知尿意浓。期间可能面临设计的bug改不掉,有的模块需要推倒重来的情况。也可能会碰到Deadline逐渐逼近,算法同事要加需求的情况。跑lint、跑综合检查时序问题,收覆盖率,补充case需求,支持FPGA的验证,碰到问题干不完,就加班干。终于,和算法、DV共同踩了N多坑后,设计终于验证完了,代码终于可以交付。如果项目时间节点比较紧急,代码验证不充分,还需要继续补充case,尽量达到覆盖率100%的样子,这时可能代码先freeze(冻结)了,但是还是需要验,出了问题就只能ECO,这还算比较好的情况,如果是ECO做不了的bug,那就只能软件去规避。直到ECO窗口关闭,想改也再也改不了,前端的主要任务总算告一段落。(注:还有可以去改mask(硅前),甚至tapout回来也可以改(硅后),但这时成本就非常高了,非常贵)。然而下一个项目也如期而来了,如果运气好的话,下一个项目还没下来,就可以享受一段Tapout Holiday,这段时间就可以过着965的生活。17:30,吃个晚饭,乘下午的凉风,溜溜弯,和同事扯扯淡。18:30,回到工位,处理下邮件,打开日报,填好的今天的工作内容,已经完成进度情况,点击save。再处理一些边角料的工作,时间很快就到了19:20,关闭电脑显示屏,下班打卡,赶19:30的班车回家。19:55回到房间,拿起iPad,刷刷微博,刷刷新闻,刷刷B站,美好的时光总是过得飞快,20:30,刷到知乎了,看到了有人邀请了这个问题,想到自己除了是一名工程师还是一名芯媒体编辑,兴致大发,立马走到电脑面前,打电脑,敲击着键盘,写了这篇回答。21:30了,再折腾折腾电脑和玩玩iPad,洗漱下,玩iPad到23:50,该睡觉了。谨代表个人的工作状况和工作环境。关于工作时间问题,这算是比较正常的工作时间,如果碰到有问题没有解决的时候,晚上需要加班解决掉,碰到项目时间紧张,晚上经常坐九点的班车也是正常的,当然特别忙的时候十点、十一点甚至凌晨回家的也有,基本上回到家就是洗漱下直接就睡的状态。周六再来上八小时,也是有的。总之,不管你的工作时间怎么安排,在项目的工作节点上,必须保证把工作干完。非典型IC工程师的一天,谨代表个人周围情况以及阶段性的处境,还有FPGA工程师的一天,IC工程师加班到深夜的一天,IC工程师996的一天,有娃的IC工程师的一天,有对象的IC工程师的一天。各个岗位IC工程师的一天等等,抛砖引玉,欢迎感兴趣的朋友投稿和约稿。