曾经说过,在开始动手画原理图之前,需要做需求分析,专题分析等等工作。但是在真正开工之前,有反复的方案设计的迭代过程。也有一些不是研发出身的老板跟我抱怨,硬件工程师让结构先设计、结构工程师说硬件工程师应该先给大致的需求,不知道应该谁先动。
工欲善其事,必先利其器是说:工匠想要使他的工作做好,一定要先让工具锋利。比喻要做好一件事,准备工作非常重要。语出《论语·卫灵公》:子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。” 这个准备工作,当然不只是指工具,还有动手之前的策划、思考、评估、方案设计、架构设计等。
硬件工程师动手画原理图之前,需要画的一个东东就是,用“猥琐”(Visio)画出电路板方案框图。
当然,每个工程师都有自己的喜好。有的人喜欢用Visio、有的人喜欢用PPT,这都无所谓。关键是这个电路板的框图不是简单的拍脑袋就出来的。
它的诞生,就是一个电路板方案设计的过程。如果这个阶段拍脑袋、回板就会拍大腿,最后只能拍拍屁股走人了。
那么我们如何能够完成一个电路板的方案设计过程呢?除了凭借我们的经验,还有什么是我们需要做的呢?
【步骤一、建立归档文件夹,明确归档计划】
建议自建SVN的云服务器,讲需要归档的文件夹,按照本企业或者本项目的需求进行设立需要的文件夹。这些自然就是我们在产品研发完成一个完整的产品,需要产生和考虑的所有维度、需要归档的所有内容的纲领。
github或者内网文件夹共享其实都可以,但是github速度不快有点影响设计效率,内网文件夹不便于版本管理,当服务器出现故障会影响整个团队的开发,也不便于移动办公。
【步骤二、建立问题跟踪机制】
之前的系列,我们专门说过问题跟踪,我们针对当前项目,需要建立例会的制度,根据人员情况和人员的素质不同,需要有针对性的进行例会。可能是每天晨会、也可以是每周例会,灵活把握跟踪频度。
但是我们需要针对项目建立该项目的问题跟踪表格,便于整个项目过程中所有出现的问题,跟踪闭环,避免问题跟踪出现遗漏。
当然我们还可以计算更复杂的表格,以前我们做个一个表格可以计算每个任务的完成提前、拖延的天数,可以作为KPI进行考核。(这个做法不提倡)
【步骤三、需求跟踪】
在华为、这个部分会由SE(系统工程师、system engineer不是stupid engineer)进行分解分配。硬件工程师根据分解分配结果对照检查,并创建单板需求跟踪表。跟踪表完成后需召集SE、整机结构、产品工程工艺(PCB Layout工程师、工艺工程师)、生产、测试、软件等周边人员评审归档。
当然,我们从来都是期望需求能归档之后不再修改。但是我们在设计过程中会发现会不可避免的进行修改。但是我们在TR3之后是应该禁止修改的,如果在TR3之后增改需求,所有的需求变更需要通过CR(需求变更电子流)进行跟踪。
从硬件稳定的角度来说,越在项目的后期,需求的变更带来的影响越大,带来的设计变动,对质量的影响越大。但是随着敏捷的思想,以及客户需求可能在硬件长周期过程中的变化,很多场景我们不等不去变更需求。
序号
各阶段简介
1
Charter
责任主体:Marketing团队和SE
主要工作:Charter需要回答这些问题:版本的Top N需求和主要竞争需求,主要目标客户,完整的包需求,版本的里程碑时间点,应用的时间窗口以及在版本火车中所处的位置
2
Charter-TR1
责任主体:SE团队,同时Marketing配合完成需求的细化、澄清和修订。
主要工作:输出设计需求(包括每个需求的输入、输出参数,并输出低保真界面原型)
3
CDCP
责任主体:
主要工作:近年来大部分项目都裁剪,具体作用不明
4
TR1-TR2
责任主体:SE团队
主要工作:输出是设计规格(接口设计、高保真界面原型)
5
PDCP
责任主体:开发代表
主要工作:代码规模、关键时间点和人力需求。质量目标、SOW(工作任务书)
6
TR2-TR3
责任主体:开发组
主要工作:需求规格说明书(SRS);系统测试用例(STC)、概要设计(HLD)、集成测试用例(ITC)
需求的分析和理解往往不可能一步到位,研发人员的理解也有可能不能非常准确理解现场场景。所以需求跟踪完成之后,需要进行两轮的需求的串讲、反串讲。(串讲,是指需求发布者与开发者讲解,反串讲是指开发者理解需求之后,对需求发布者进行讲解)。
需求反串讲,是设计者向SE、项目经理等角色逐条讲解硬件需求,形成统一的认识。对于已有实现方案的需求,讲解要包含方案。串讲和反串讲一定要让SE/软件/测试领域全程参与,提出的问题要在详细设计开始前全部解决闭环。
【步骤四、关键器件分析】
我们研发一个新项目的时候,不可避免的会使用我们没有使用过的器件,甚至是整个公司都没有使用过的器件。
我们根据设计需求选定了基本方案之后,需要对新器件、关键器件进行应用分析,输出应用分析报告,并召集相关人员、管理者、有经验的工程师进行评审和分析。
方案分析过程中需要参考和更新器件的Bug List和设计注意事项。同时收集案例,并给出应对解决措施,提前预防已知问题。
关键器件不仅仅局限于新引入的器件,还包括复杂的器件、开发人员及项目组经验积累都不足的器件。
这个关键器件的分析,我们需要对器件的datasheet进行分析、寻找并Demo板、查阅厂家的errata,寻找已经产品化或者已经完成过的设计,部分电路的改动,需要动手做电路实验、或者做电路仿真,进行验证。
【步骤五、预布局及结构设计】
我们根据需求,明确了必要的功能、性能、然后明确了关键器件,也就是电路板上面大功率器件、新器件、复杂器件都已经敲定了。那么我们可以做一个预布局,明确电路板尺寸,形状的大致想法。
我们为了实现一个准确的预布局,需要输出一个预布局原理图,要求原理图至少包含主要器件、电源、热敏感器件和接插件。
预布局需要把电路板的信号流向、器件功能、主要器件的电源管脚分布、整个电路板的电源的基本分布和流向。
然后把相关的诉求,提供给ID工程师,给一个基本的ID设想,然后由结构工程师进行结构设计的细化。
如果是成熟的机框,则这个过程相对简单一些,例如ATCA、VPX这种标准机框。一些个人消费电子产品这个过程反复的可能性非常大。
为了避免这个过程,硬件工程师在完成初步的预布局,之后应该把自己的设计诉求,全部记录在《结构要素图设计说明书》中,提供给结构和ID工程师。
【步骤六、散热评估】
硬件工程师需要提供单板布局和器件热耗(功耗)表、各器件散热参数。数字器件要注意提供尽量准确的功耗数据,特别是DDR/FPGA等器件要根据使用场景进行计算。提供的器件的功耗需要准确,避免过设计,也避免散热风险。
【步骤七、新器件导入评估】
在华为,一个新器件的导入是非常复杂的,我们不在华为,选择新器件,也需要谨慎选取,并做相关评估。
这个其实应该是一个sourcing的过程:我们不但需求考虑新器件功能是否满足我们的需求,同时需要考虑:可靠性、可采购性、成本、焊接工艺、功耗、散热等维度。
【步骤八、背板管脚分配、板间FMEA分析】
我们需要根据背板标准,分配电路板的管脚。如果是新设计背板,需要考虑背板连接器的成本、速率、数量。
在产品设计阶段,FMEA针对所有板间信号/关键器件展开分析,可确保无故障遗漏。用以分析所有故障影响,同时做到优化故障管理能力。在这个过程中存在着两个标准,那就是对于严重故障,要求尽最大可能避免;对于需要处理的故障,要求能够监测并定位到现场置换单元(FRU,Field Replacement Unit)。
【步骤九、归一化分析】
归一化作为DFx的一项内容,需要硬件特别关注。每个产品需整理自身的BOM归一化器件清单,常用器件选型只能在归一化清单中选择。归一化清单为本企业或者本部门使用过的器件或者采购过的器件。
尽量减少器件种类,有效减少器件种类、不但降低管理成本、同时也降低加工和采购成本。
【步骤十、可重用性分析】
所有单板都要进行可重用性分析,包含三方面内容:
1、本单板可重用的已有电路;
2、本单板希望能够重用的电路;
3、本单板完成开发后,可提供其它项目重用的电路。
【步骤十一、早期BOM审查】
1、方案确定后就把已确定的关键器件,通过采购进行关键器件的意见反馈。
2、所有非常规器件、非主流器件、器件必须逐一和采购进行确认,详细评估风险,有风险的器件要选择替代方案。
3、有关键器件在设计过程中变更时,还需要与采购人员进行确认。
经过上述十一个步骤
1、我们选定了关键器件、并进行了预布局、明确了结构的设计,排除了可行性、采购、可靠性、散热方面的风险。
2、通过需求跟踪,确保所有需求能够在设计中落实,最终设计的产品符合客户的需求。
3、通过归一化、可重用性分析,提升了整体的设计效率,并且隐性的提升了设计质量。
4、通过《问题跟踪表》、建立《归档文件夹》,确保了交付的项目管理。
完成这些准备工作之后,我们的电路原理框图、电路原理图的设计才是让人安心和可靠的。