硬件设计流程主要分为以下几个步骤:需求分析、概要设计、详细设计、调试、测试、转产。接下来详细介绍各个步骤。
需求分析是硬件设计的第一步,也是最关键的一步。在需求分析阶段,只有充分地理解了客户的需求,才能有针对性地开展器件选型、方案规划等工作。硬件开发相关需求种类有以下几种:
(1)整体性能要求:如数据包转发能力、处理延时、最高处理带宽、CPU 处理能力成针对这些要求,可初步进行CPU、存储器、交换芯片等器件的选型。
(2)功能要求:如 QoS、各类以太网相关协议的实现等。针对功能要求,可对多个厂家提供的交换芯片等器件做进一步细分,选能满足所有功能要求的器件。
(3)成本要求:成本分析是需求分析中重要的一步,在满足客户需求的前提下,尽可能地降低成本,是硬件工程师的重要职责。在成本的分析中,应计算各套方案下单板的总成本,在某些场合,还需计算单个用户接口的成本。
(4)用户接口要求:如接口的种类、数目,指示灯及其规范、复位键、电源按钮等。同时,该类需求还包括与用户操作相关的要求,如对单板状态的在线监控等。这类要求多着眼于细节,不大会影响关键器件的选型,但若忽略了其中的某一项,即可能导致整个产品的失败。
(5)功耗要求:功耗要求是单板上电源功率分配的依据,涉及电源架构的设计、电源电路器件的选型。
硬件概要设计的主要任务为:
1设计系统框图
2关键链路连接图、时钟分配框图等
3、制定电源设计总体方案
4、对信号完整性及 EMC的可行性、结构与散热的可行性、测试可行性等环节,做初步的分析。
在这一阶段,需要电子设计工程师、电源工程师、信号完整性工程师、结构与热设计工程师、EMC 工程师、测试工程师等协同工作。对于需求分析选定的最佳方案进行进一步的细化。
基于上述确定的单板总体框架,各职能部门工程师完成各自负责的工作。
电子设计工程师:电子设计工程师负责各个总线接口信号的定义,CPU存储空间分配,时钟、复位电路器件选型及其拓扑结构,中断链路拓扑结构,电源电路的详细框图(需注明各路电源的产生方式、电压值、电流值等),关键电源的滤波方式,逻辑器件功能及其寄存器说明书,面板上用户接口的定义及接口信号连接关系,指示灯器件的选型及其连接关系,最后绘制原理图并产生物料清单。在详细设计阶段的后期,应开始测试计划的制订。
PCB设计工程师:根据电子设计工程师提供的原理图及对应的网表,结合信号完整性工程师提供的走线规则和层叠结构,完成 PCB 的设计,并生成可供工厂生产使用的文件。
信号完整性工程师:根据电子设计工程师提供的详细设计文档,同时根据板内高速信号的信号质量及时序要求,设计PCB层叠结构,基于前仿真的结果定义信号的走线规则,在PCB走线完成后,对高速信号进行后仿真以初步验证信号完整性,对关键电源做电源完整性仿真,向电子设计工程师提供关于电源滤波的参考意见,最后协同电子设计工程师,共同完成测试计划的制订
逻辑设计工程师:根据电子设计工程师提供的逻辑器件说明书,编写逻辑器件的代码及测试代码,并进行相关的仿真。
电源设计工程师:根据电子设计工程师提供的各关键器件的电源电压及电流值,汇总得到各类电源的总功耗需求,根据该结果,进行电源器件的选型及电源架构的设计。同时,对较复杂的电源电路,电源设计工程师还应给出推荐的电源电路和滤波方案。在调试和测试阶段,电源设计工程师负责协助电子设计工程师完成电源电路的调试与测试。在电源电路不是特别复杂的情况下,往往由电子设计工程师兼任电源设计工作。
结构工程师:根据电子设计工程师提供的用户面板信息以及PCB设计工程师提供的PCB尺寸、定位、安装等信息,设计 PCB 的机械图,制定PCB的限布区(禁止布放器件的区域)和限高区(禁止布放超高器件的区域),在PCB上设定安装孔的位置,同时还负责面板的设计。这些设计图和数据将成为 PCB 设计的重要输入信息。
热设计工程师:根据电子设计工程师提供的各器件总功耗,器件布放位置及器件的高度,进行热方面的仿真,结合仿真结果完成热设计,如散热片的选型、风道的规划、温度传感器的布放位置等。同时,热设计工程师应将单板的温度散布区域图提供给电子设计工程师,以作为PCB布局的参考。
EMC及防护设计工程师:根据电子设计工程师提供的用户接口信息、高速信号的速率和分布区域,以及PCB设计工程师提供的 PCB 层叠结构,定义高速信号走线规则,用户接口防护方案等。需要说明的是,信号完整性工程师和 EMC 设计工程师都会对高速信号的走线规则做出定义,两类走线规则可能会有冲突,此时应由电子设计工程师负责与这两位工程师协商,确定最终的规则。
测试工程师:测试工程师包括边界扫描设计工程师、ICT 工程师(ICT指在线测试,将在第8章介绍)、硬件测试工程师。前两类有专门的职能部门,一般不由其他工程师兼任,而硬件测试工程师往往可以由电子设计工程师兼任。边界扫描设计工程师和 ICT 工程师根据电子设计工程师提供的原理图、器件资料,前者负责完成边界扫描链路的设计和程序的编写,后者负责完成ICT夹具的设计和程序的编写。
产品工程师:产品工程师是设计部门与生产部门沟通的纽带。根据电子设计工程师提供的物料清单,产品工程师检查各器件的厂家生产状况、生产部门备料情况,做出更换、推荐器件的建议,并将结果反馈给电子设计工程师。PCB设计完成后,产品工程师负责检查PCB设计是否符合可生产性、可加工性的规定,对违反规定的设计,提出修改建议,并反馈给PCB设计工程师。
软件工程师:在这一阶段,软件工程师应开始软件的详细设计,但同时,还应与电子设计工程师协同工作,确定CPU 速率、复位逻辑、中断拓扑、各器件之间的互连接口、用户监控等信息,以使软件设计与硬件设计相匹配。
单板从工厂生产加工完成后,回到研发部门,由电子设计工程师、逻辑设计工程师电源设计工程师、软件工程师协同进行调试。首先对第一次回到研发部门的单板,需要验证其是否存在电源短路现象。然后对单板上可编程器件程序加载。接着对电源电路、逻辑设计、时钟和复位电路等调试。最后测试流量,并伴有人为模拟的一些可触发流量以验证功能模块。
测试的主要内容:(1)测试设备列表(2)测试环境的搭建图(3)电源测试(4)各接口信号的信号完整性与时序(5)各通用接口的功能测试(6)复位链路的测试(7)晶振、时钟驱动器、锁相环等与时钟相关的测试(8)指示灯、单板在位信号、槽位号等杂项的测试(9)流量测试(10)强度测试
在调试和测试完成后,硬件设计的最后一个阶段是将与生产相关的资料转给工厂,以便工厂开始大规模批量生产。在这一阶段,ICT 工程师的测试夹具和代码也应完成并提供给工厂。此时,电子设计工程师的职责是将单板知识和测试技能传授给工厂的测试人员。