我觉得好的硬件设计应该从下面几个方向来考虑:
1)需求定义:我们设计的产品都是给用户去使用的,产品好不好不是设计人员说了算,而是用户使用后去评判。那么我们在设计硬件之前,就需要考虑好用户的核心诉求是什么,硬件功能有哪些,应用环境,使用寿命等。
2)需求分解及方案设计:从这些用户诉求中提炼出硬件设计的基本需求,根据这些基本需求选择合适的方案。一个好的方案,包含很多方面,需求的完整度及可实现性、方案的成本(人力及物料)、方案的DFX考虑(可制造性DFM、可测试性DFT等)等。
3)硬件实现上:
a. 器件选型,好的设计不是说一定要用最好的器件,合适的器件即可,性价比是重要的。另外器件的可靠性也要考虑,HBM/CDM等级,工业级/商业级,供电&功耗,尺寸&高度等。
b. 电路设计,功能不能遗漏,同时电路设计也要简化,关键电路最好能有冗余备份,考虑到后期维护,也要设计相关的维测电路,如指示灯,电压监控等
c. PCB设计。好的硬件也要考虑PCB设计,如高速信号设计、时钟隔离、复位中断信号设计、电源参考等。信号完整性测试,SI/PI。另外,单板PCB布局也很关键的,涉及结构、散热、EMC等方面。
d. 可靠性设计。给用户用的硬件,不能一用就坏,ESD、EMC设计都要兼顾,防护电路的设计,对于存储器件是否考虑ECC,器件及电路温度降额、电压&电流降额、功耗降额等等。
4)测试加工。样机的验证,信号质量、信号时序、功能测试、性能测试等等,快速验证样机的功能性能。另外如何在生产上快速拦截故障品,需要FT测试、老化测试,温循测试等等测试项的合理选择,避免器件的早期失效。
5)后期维护。硬件不是卖给用户就结束了,良好的硬件设计,还需要关注后期在用户端的表现,故障信息的收集,故障问题的快速闭环,针对发现的问题不断改进设计。
上面这些只是一个好的硬件设计中需要关注的部分问题,真正如何做好的硬件,需要我们不断吸取经验教训,从硬件设计的全流程中着手。