经常听到工作了一两年的硬件工程师抱怨,工作没意思,每天就是连连线画画图,都是重复劳动。硬件工程师就只是连连线画画图这么简单么?硬件工程师在一个项目里面都能做些什么?
首先,在项目开始阶段,硬件工程师可以进行项目需求分析,明确项目的硬件需求。这部分工作需要和各方面的工程师沟通,确定比如需要实现的功能,输入信号,输出信号,接口要求,FPGA逻辑资源,时钟数量,系统要求等等。
明确了项目需求之后,就可以针对不同的需求进行期间选型。要在成千上万的芯片或者电路中找到最合适的方案,也是体现一个硬件工程师水平的地方。评估类产品成本压力不大,要求的是系统稳定性,灵活性,可测试性。样机类产品则需要考虑可靠性,可生产性,芯片的可替代性,采购的方便性,性价比等等。
确定了器件选型之后,就可以开始原理图的设计。这部分工作可以和器件选型的工作交替进行。选定一部分功能的芯片后就开始一个功能模块的原理图设计。这样模块化的设计为以后原理图的重复使用提供方便。积累起来就是自己的一笔财富。
原理图完成后,如果项目要求较高,并且为高速信号板,可以在开始进行PCB设计之前进行一些前期的仿真计算,可以明确一些重要的参数。如PCB板的层叠结构,信号线的线宽,差分信号的线宽线距,重要信号能容忍的过孔数量,最大走线长度,重要器件摆放位置等等。在layout前期先把这些重要参数确定下来可以减少后期返工的可能。
完成仿真计算之后,根据仿真结果设定好画图工具的约束条件,下面才是最重要的layout工作。重点信号优先布线,注意供电网络的性能,注意阻抗匹配,信号端接。布板完成后进行后仿真,确认信号完整性没有问题。
之后还要联系生产焊接和元器件采购。
PCB焊接完成后的调试以及后续对其他工程师的支持也是硬件工程师日常工作中很重要的一部分。掌握基本的测试方法,测试工具的使用,熟悉本公司产品的软件架构,协助软件工程师完成功能验证等等。如果是样机设计,后续可能还会和生产商沟通,对产品的可生产性进行完善,使产品尽快推向市场。
在画图的时候,硬件工程师能决定元器件的布局,这会影响到器件之间的干扰;能决定PCB板的层叠结构,这会影响到信号线的回流路径;能决定电源层地层的分割,这会影响到信号完整性;能决定每层走线的线宽线距,这会影响到信号线的特征阻抗;能决定去耦电容的选择,这会影响到电源纹波大小;能决定去耦电容的摆放位置,这会影响到PCB板的平面谐振特性……工程师的每一个决定都会对最后的PCB板性能产生影响。要设计出一块稳定可靠的板子,并不是看起来的那么简单。