第5章总体设计-5.4 硬件可行性分析
硬件可行性分析包括硬件方案评估、器件选型和性能评估、预布局、结构设计、热设计等。
5.4.1 硬件方案评估
1. 框式产品硬件可行性分析
(1)机框设计可行性。
架构设计过程中,定义设备机框的工作量非常大,而且需要考虑产品的迭代升级和持续竞争力,需要设计者具备全流程视野和战略能力,以及技术深度和广度,还要有对技术演进的预判能力。因为工作量大,所以架构设计的工作是繁重的;因为对工作能力要求高,所以架构设计的工作是高级的。
(2)单板设计可行性。
对于框式设备单板,我们需要定义单板的面板接口和背板接口。
一般来说背板接口是统一的,除了核心交换板之外,其他板的接口定义、结构设计、散热条件应该是统一的,这样单板之间才具备位置互换、混插、替换等特性。这里不仅仅是ATCA架构,其他各种架构应该都有这样的特性。应该有不少朋友用过NI的虚拟仪器,它的PXI机框就
具备这种特性。面板接口一般是根据业务需求和功能需求去定义的。
(3)核心功能器件选型。
我们根据业务需求定义我们的核心器件。所以首先需要评估其业务能力,最主要的器件是CPU、DSP、FPGA、内存、FLASH、接口芯片等。
在选型CPU的时候,首先我们需要区分其应用场景,是常规嵌入式应用,还是服务器应用。如果是服务器应用,一般是X86或是服务器级别的多核ARM,如果是嵌入式,一般是ARM、MIPS、早期的PowerPC、现在流行的RISC-V等内核,也包括选择X86。
如果是服务器应用,还需要考虑处理器的规格。处理器选型时一般参考X86的评价标准。SPEC是标准性能评价机构“Standard Performance Evaluation Corporation”的简称。其下面有SPEC CPU、SPEC POWER等很多测试标准工具,版本太老,这里不再进行说明。SPEC CPU是SPEC开发的用于评测CPU性能的基准程序测试组,是一套CPU子系统测试工具。处理器、内存和编译器都会影响最终的测试结果,而I/O(磁盘)、网络、操作系统和图形子系统对SPECCPU2000的影响非常小。目前,SPEC CPU是业界首选的CPU评测工具。SPEC CPU包括CINT和CFP两套基准测试程序。
SPECCInt即SPEC CPU Integrate的简写,SPECCFP即SPEC Cpu Float Point的简写。前者用于测量和对比CPU的整数性能,后者用于测
量和对比浮点性能。CINT包含十几个测试项目,CFP也包含十几个测试项目。
我曾经测试Intel的新产品的SPEC,发现有很多规格并没有那么理想,如果达到官方宣称的数据,需要打开很多超频功能,也需要软件进行配合。SPEC测试相关缩略语见表5.5。
SPEC测试需要注意的还有以下几点:
①要注意测试软件的版本,不同的版本可能其算法结构都不同。如果对比不同的处理器,需要选择相同的测试版本才有意义。
②SPEC测试时,CPU基本是100%运行的,所以基本不能进行其他复杂的数据操作或编译操作。
③测试过程时间较长,中间是不允许中断的,除非kill掉和SPEC相关的所有进程,results中的debug文件也只会保留kill进程之前的最后一个测试完成的场景结果。
如果发现最终的SPEC值过低,可以从以下几点中查找结果:
①编译器是否正确,是否符合进行测试的处理器。
②指令集是否为此CPU的最佳指令集。
③内存的配置是否符合要求。
④处理器的实际工作频率是否达到它应有的频率。
⑤温度等外在的环境因素是否导致处理器降频使用。
如果单板不是用作服务器应用,一般的嵌入式应用,通常用MIPS(Million Instructions Per Second)作为指标进行评估。这里说的MIPS不是处理器架构,而是指其原本的含义。MIPS指单字长定点指令平均执行速度,即每秒处理百万条机器语言指令,这是衡量CPU速度的一个
指标。例如一个Intel80386计算机每秒可以处理300万到500万个机器语言指令,即我们可以说Intel80386是3到5 MIPS的CPU。处理器架构
相同的情况下,MIPS能够比较出处理器之间的性能关系,不同的处理器之间因为指令的功能、数量、效率并不相同,MIPS值仅做对比参
考。不同版本的测试软件也会测试出不同的结论,所以对比两款处理器时应该选择相同版本的测试软件。
想准确测试CPU的MIPS或者MFLOPS,一般是设计体系结构时候用CPU模拟器或者verilog前仿真得到。想用C语言比较准确地测试MIPS或
者MFLOPS,可以用一个程序读取系统时间,然后执行第二个程序,第二个程序执行完成后再记录执行的时间,然后反汇编第二个程序,统
计第二个程序中执行的指令条数,通常第二个程序中执行的指令数是确定的(分支和循环的次数是可确定的)。MIPS和MFLOPS在RISC
CPU的评价中比较有价值。
处理器的主频提高与业务能力不是线性的,同样其测试结果也不代表其业务能力。有些处理器的实际性能用简单的评价标准并不能说明其业务能力,需要直接测试其业务能力。直接在demo板上移植业务软件评估其业务能力是最可信赖的一种方式。例如选择多核DSP替代原有的单核DSP电路板时,直接测试多核DSP的G.711转码性能,与原先的单核DSP进行对比,可以测出具体的业务能力。然后根据其业务需求,评估需要在一块单板上安排多少数量。当然还需要评估成本、功耗、散热等维度的挑战。
(4)数据流。
有了核心器件的规格之后,我们需要根据单板的业务模型,绘制出各种业务需求下的数据流向,来明确接口是不是瓶颈,以及在每个终端器件或核心器件的存储空间的需求。以FPGA实现以太网口功能的单板为例,如图5.10所示。
FPGA主要对以太网协议进行解析,根据数据包的内容进行数据分发,将信令分给处理器做处理,将语音或视频的编解码分给DSP进行处理。流量如图5.11中的虚线箭头,此时我们需要考虑语音如何传输、信令如何传输。
同时,需要考虑数据分发时,FPGA需要多少逻辑资源。还需要考虑编解码数据和信令数据的比例关系,根据业务模型选择性能匹配的CPU芯片和DSP芯片。同时根据业务量和数据特性,评估FPGA外挂的DDR的数据带宽需求,以及存储数据深度的需求,进一步评估DDR的速率和容量。同时由于DDR的数据接口的特性,还需要评估其传输效率,还有吞吐数据非连续性时开销与连续地址数据开销的差异。当然这一系列的计算和评估需要经验积累,同时也需要各个维度的技能。
2. 盒式产品硬件可行性分析
盒式设备在“单板可行性”“核心器件选型”“数据流分析”等方面与框式设备是相同的。
除此之外,盒式设备需要关注如下几个技术要点。
第一,盒式设备一般采用底板加扣板的形式来丰富其接口和配置,合理地设计扣板搭配以及扣板和底板的面板接口是至关重要的。当然也需要对业务模型、客户需求充分理解。如何用更少的硬件覆盖更多的客户场景是重要的设计技巧。如图5.12所示,为思科的Cisco3900集成多业务路由器。
集成多业务路由器均提供嵌入式硬件加密加速、支持语音和视频的数字信号处理器(DSP)插槽、可选防火墙、入侵预防、呼叫处理、语音信箱以及应用程序服务。此外,这些平台还支持业界最广泛的有线和无线连接选项,如T1/E1、T3/E3、xDSL、铜缆和光纤GE。
此款设备具有显著增强的模块化功能。思科集成多业务路由器产品系列中的其他路由器可轻松支持Cisco 3900系列上使用的模块,以提供最大的投资保护。利用网络上的通用接口卡可以显著降低库存需求、降低大型网络的推广难度、降低各种规模分支机构的配置复杂性。支持的板卡非常丰富,不同板卡的接口也不相同。通过各种搭配,可以实现不同的业务需求,如图5.13所示。
第二,盒式设备一般没有风扇,如何实现自然散热很重要。很多盒式设备的散热一般是自然散热,其热仿真需要充分考虑在没有风道的情况下壳体的最高热容忍度,特别是一些大功率设备。盒式产品的规格参数如表5.6所示
有时在没有热仿真的情况下,我们需要知道单位体积下自然散热的能力上限,可以通过与现有设备类比得到结论。有条件当然需要进行细致的热仿真,以确保散热能力。有的盒式设备通过芯片贴壳进行散热,特别是一些金属外壳的设备。
3. 终端产品硬件可行性分析
终端设备种类五花八门,手机、摄像头、无人机、机器人、对讲机、智能穿戴都是典型的终端设备。而每一种类型的终端设备都有自己的特点,比如手机的散热除了考虑对内部器件可靠性的影响外,还要充分考虑客户舒适度和散热系统的低成本;穿戴式设备需要考虑人体对无线辐射的接受度,必须满足特定的法规要求。因此,终端产品的可行性分析必须要结合特定产品的应用特点,不能以偏概全。由于终端设备的种类太丰富,且种类之间的差异比较大,本书难以系统地概述,不进一步展开说明。
5.4.2 器件选型和性能评估
硬件可行性评估中器件选型是关键一步,前面提到器件选型除了核心器件以外,还有一些关键器件也是我们在选型工作中需要重点关注的。研发一个新项目的时候,不可避免地会使用自己没有使用过的核心器件,甚至是整个公司都没有使用过的。我们需要对新器件进行应用分析,输出应用分析报告,并召集大家进行评审,再确定是否引入该器件。
由于器件选型是硬件总体设计中的关键一步,选择新器件时风险也比较大,因此在一些大公司里需要通过Sourcing流程保障引入合适的器件,通过器件选型规范帮助工程师正确地使用器件。下面就讨论一下Sourcing流程和器件选型规范。
1.通过Sourcing流程引入正确的器件
大公司里有Sourcing流程来支撑核心器件的采购,什么是Sourcing?Sourcing和Purchasing都可翻译成“采购”,中文的意思好像没有多大差别,Sourcing的词根是Source,即根源。所以简单地理解,Sourcing就是找到“根源”,即找到合适的供应商。在新产品开发中,Product Sourcing就是为新产品找合适的供应商。而Purchasing是采购执行,Purchasing更侧重于订单处理(PO Transaction),即询价、下订单、跟踪订单、催单、收货、付款等。相对而言,Sourcing属于“一次性行为”,一旦选定合适的供应商并促成合作走上正轨,Sourcing的任务就基本完成。但如果Sourcing选定的供应商表现不佳,比如规格不满足要求、价格无法协商一致、交货能力提不上来,那么Sourcing工作必须再度涉入,寻找新的供应商。从上面的分工能看出,Sourcing聚焦于“采购选择”,而Purchasing侧重于“采购执行”。
在工作中,大公司里Sourcing的过程是工程师、采购、合规工程师等协同完成的,而在中小公司里,没有Sourcing这个流程化的动作,选择新器件时,对新厂家、新器件款型的考察、认证没有大公司那么细致、深入、全面。在大公司里,如果能参与Sourcing的话,是幸运的,也是不幸的。幸运在于,你可以不断地尝试新东西,而不只是走前辈已经开发过的老路;不幸在于,你要跟各个方面不停地角力,在各种角度的争论中寻找平衡点。如图5.14所示,可以看到在大公司里有多少人会涉及Sourcing流程。
我曾在原公司里承担Sourcing工作,负责过AMD的Athlon64 3400、Intel的Core i7第二代、LE620 (Arrandale)和配套的VID电源,以及Freescale的P4080、P3041,还有NXP、TI、Intersil等的一些电源芯片、接口芯片的器件Sourcing流程。因为做Sourcing,一路过来我对产品的规格定义、技术方案理解更多了,在和Sourcing team里其他专业同事的协作过程中,不断学习跳出技术思维,从供应商合作策略、成本议价等视角选择器件。
我总结Sourcing的运作模型有4个,见表5.7。
(1)基本型器件Sourcing。
“基本型”涉及的器件包括通用电容、电阻、电感、连接器、线缆、磁珠、三极管、二极管等,厂家之间的差异不明显,选择哪几家基本由采购部门决定。如果有革命性的跨代替代产品,会由行管提交规划和申请,比如MOSFET行管每年会做规划。曾经我们在选型更低Rds(on)的MOSFET的时候,公司已经有了英飞凌的型号,但是价格比较昂贵。NXP公司有规格几乎相同的类似产品,价格也比英飞凌有优势。但是其封装与英飞凌的型号略有差别,由于封装并不是完全相同,所以一开始采购部门不同意引入NXP的这个型号,因为会增加一个器件编码。但是我们通过足够样本数量的验证,并且由器件部门、生产部门共同参与,论证出虽然封装外形不一样,但是在规格、生产、工艺、PCB封装库等环节都一模一样,可以将NXP和英飞凌的器件归属到同一个编码下。后来也成功引入,并且大规模使用。这个器件引入的工作可以说非常成功,在同一个编码引入了不同封装的芯片,但是可以实现无差别使用,为公司节约了大量的成本。
作为研发工程师,在这种类型器件选型上的作用微乎其微,在完全可以替代的场景下,质量同样稳定的前提下,一定是以价格作为主要的考虑因素。但是如果在工程师使用过程中,发现器件和系统配合时出现一些致命问题,可以将该器件禁用。
(2)通用型器件Sourcing。
“通用型”涉及的器件就是电源控制器、FPGA、DDR、Flash芯片等,公司的器件规划管理部门和采购非常有话语权。器件由多家供货,器件在各产品中应用方式相似、规格一致,器件管理规划部门会做好规格收集和档位区分,按照行业发展路标进行芯片导入规划。另外,有些器件规格正好能满足新场景的要求,成本又特别低,但是不在路标之中,研发就可以发起Sourcing。
我做研发工程师时曾经导入一款Altera的FPGA,不在产品的路标里,原因就是我们需要的规格是FPGA支持DDR3,成本非常敏感,需要多个SGMII接口。当时正值Arria系列刚刚推出,对于市场定位很精准,成本优势明显,所以Sourcing走得非常顺利,负责器件规划的同事也把这款FPGA刷新到规划列表里。所以通用型器件的Sourcing是以公司的规划为主体,质量和成本是重要考量点,研发因新技术需求可以纳入新规划。
(3)专用型器件Sourcing。
“专用型”涉及的器件主要是一些处理器、控制器、协议类芯片等。此类芯片Sourcing要求研发给出详细的技术分析。对于引入的厂家和器件要满足以下3个要求。
①器件市场定位要准确,符合市场和技术发展方向,在关键规格上有竞争力。
②基础质量一定要过关,成本不能过高。
③供应商的技术支持力度要好,响应节奏要快,供应要能满足要求。
此类器件,公司统一的行业管理的影响力较弱,主要原因是专用器件在各个产品的专用属性太强,行管对特定产品的中长期规划和技术诉求不了解,导致其把控能力较弱。对于这类器件的引入,产品本身的规格竞争力十分重要,产品内部有专人去跟踪厂家路标,并针对不同供应商做竞争分析。提醒一下,这类器件以嵌入式系统的CPU为主,因此在器件选型的时候务必考虑OS的继承性、软件的归一化等技术要素。
(4)垄断型器件Sourcing。
这类芯片厂家都属于行业垄断玩家,比如高通、博通、英特尔等。这些芯片大鳄的产品规格种类全,产品性能领先,供应周期短,有很强的不可替代性,你很难选择其他厂家,因为差距实在太大了。以前打电话给某个芯片大厂咨询选型问题,对方很傲慢地问:“你是哪个产品线的?哦哦哦,那我们不支持,你们的量太小。”为了对抗这些垄断级的供应商,公司会制定方案级备份策略。例如,一个产品系列同时用两个厂家的芯片进行设计开发,如果大厂在价格、供应上卡脖子,Plan B就转正。还可以去培养现在技术能力较弱的供应商,那时候我们会留一两款产品专门帮助ARM进军高端服务器领域,器件规划管理部门和采购部门也认为“这样世界才有意思啊,要不然X86处于垄断地位,没法进行商务谈判”。总之,这种供应商主导的器件类型,研发、行管、采购必须联合起来寻找方案级替代,培育Plan B供应商。
分析不同类型器件Sourcing的策略,我们可以归纳出Sourcing的作用和价值。
①Sourcing本质是通过团队协作和制约,找到最合适的供应商,获取最合适的配件产品。Sourcing不仅仅是单纯的采购行为,更是一个技术决策和战略选择行为,决定自己产品的技术方向,选择和谁同路。
②Sourcing流程和项目启动和关闭是同步的,从项目开始就要充分考虑器件的商务策略、生命周期、可靠性等因素,在验证过程中要关注质量,在量产前要关注供应能力提拉,Sourcing流程贯穿项目始终。
③对于不同类型的器件我们的关注重点是不一样的,通用器件更多关注基础质量、成本、供应能力等;对于专业器件要关注技术竞争力、软件兼容性、性价比、厂家支持能力等;对于“不得不用”的核心器件,要准备Plan B,避免被卡脖子。
2.通过器件选型规范正确地使用器件
为了避免选型过程中犯过的错误再犯,我们结合理论分析、实践数据、成功经验、失败教训等整理出器件选型规范,为工程师正确地选择器件保驾护航。例如《器件选型的降额规范》这类规范,它是基于大量试验数据、实际案例总结出来的,能实实在在帮助我们选好器件。
例如,使用铝电解电容时,规范里建议选用铝电解电容时需要考虑稳态的工作电压低于额定耐压90%;钽电容,稳态的降额要求在50%;而陶瓷电容,稳态的降额要求在85%。这些数据考虑了一些器件的模式、最恶劣环境(高温、低温、最大功耗)、稳态功率和瞬态功率差异等因素。
我总结一下规范中都会强调的一些需要考虑的要素。
(1)器件可供应性。
大量发货产品选择器件最重要的就是要能持续稳定供应。因此要慎选生命周期处于衰落期的器件,禁选停产的器件。我刚做单板设计时,在设计一个电路时就是拷贝别人的电路,结果加工的时候发现由于器件停产了,从原厂那里采购不到了,只能在电子市场买翻新的器件。对于关键的、用量大的器件,至少有两个供应商的型号可以互相替代,有的还要考虑电路级、方案级的替代。这点很重要,如果是一个供应商独家供货的产品,就需要集体评估风险,决策是否可用。
(2)器件可生产性。
器件的选择要方便生产,减少生产工序和加工复杂度。比如尽量选择表贴器件,只做一次回流焊就完成焊接,不需要进行波峰焊。部分插件器件不可避免地选用的话,需要考虑能否采用通孔回流焊的工艺完成焊接等,这些选型要求都能帮助减少加工工序和生产成本。
(3)器件可靠性。
硬件可靠性最考验工程师的能力,涉及的方面也很多,从散热、防静电、安全、失效率等方面来讨论一下器件可靠性要求。器件可靠性要求见表5.8。
(4)器件环保要求。
很多公司的产品除了国内发货外,还要海外发货。发往欧洲的产品,环保要求比较严格。例如,产品设计要满足欧盟法规要求的“无铅化”。
(5)器件归一化。
公司已经选用了这个器件,并且在大量出货,有时虽然这个器件放在新产品上可能不是最适合的,但我们仍然会选择这个器件。因为既可以通过归一让采购谈价时有更大的量去议价,还可以让使用更加放心,因为这个器件已经经过了大批量的验证。以上列举了这么多要素,但如果成本足够有竞争力,在以上各要素里没有致命问题的情况下,你就牢牢盯紧成本这个要素。
推荐大家通过规范帮助我们更准确高效地使用器件,但是工程师也不能盲目信任规范,在讨论技术问题时最担心听到大家说“规范就是这样写的”,你参考的规范不一定正确。原因是,首先规范不一定适合你实际的设计场景,你需要低成本设计,但是规范强调的是高质量,就不一定适用。其次,有些技术领域发展太快了,你参考老的规范,可能很多设计都是冗余的。所以,规范确实能提高设计的准确率,但是硬件工程师的深度思考不能被规范约束,硬件工程师要能跳出“参考电路”、跳出“规范”,从原理上思考器件选型、硬件问题、设计方案。
5.4.3 预布局、结构设计、热设计
1.预布局
在总体阶段的时候,我们应该就器件选型、预布局、热设计、结构设计的可行性进行评估,输出的核心器件选型结论、预布局结论应该是满足总体的热设计和结构设计要求的。
根据初步方案,输出预布局原理图,要求原理图至少包含主要器件、电源、热敏感器件和接插件。硬件工程师要规划好单板、器件功能和信号流向。
PCB预布局是热设计的重要入口条件。开展热设计仿真,硬件工程师需要给热设计工程师提供单板布局和器件热耗(功耗)表、各器件散热参数。数字器件要注意提供尽量准确的功耗数据,特别是DDR/FPGA等器件要根据使用场景进行计算。
预布局除了完成关键器件的摆放,评估PCB的可行性外,还需要确定电路板的层数和层叠结构。按照这些总线的要求,下一步要设计层叠结构以及计算各类总线要求的阻抗和传输线的物理尺寸。图5.15是项目设计的层叠结构。
从层叠结构上可以看到,本设计需要使用6层板,6层板可以有Top层、L3或者L4和BOT层3个信号层;也可以有Top层、L3、L4和BOT层4个信号层。具体需要使用几层,根据实际情况来确定,本设计就使用了4个信号层。PCB板的厚度为1.57 mm,使用的材料是IT-180A,其中使用了4张PP和3张Core。
根据层叠结构计算传输线的阻抗,由于有4个布线层,层叠又是对称结构设计的,所以只要计算TOP和L3层的阻抗即可,其他两层都是一样的。本设计中的高速总线类型比较多,既有单端的布线,也有差分布线,既有单端40 ohm的DDR4布线,也有单端DDR4的50 ohm布线,既有差分80 ohm的布线,也有差分90 ohm和100 ohm的布线。结合TOP层和L3层一起,所有的阻抗要求以及布线结构如图5.16所示:
从计算结果可以看到,看似非常简单的一个高速产品设计,其阻抗就有十几组设计。在实际的应用中,要仔细区分。
2.结构设计
结构设计需要包含以下内容。
(1)PCB外形轮廓尺寸。
包括结构所需的倒角、凸凹槽、内部开窗等信息。
(2)PCB板厚度。
常用的厚度有1 mm、1.6 mm、2 mm、2.4mm规格。单独列出来是因为厚度是直接参与到结构设计的叠加累计尺寸当中,需要重视。
(3)外部接口器件的位置和外形(LED的位置;网口、串口;光口;电源开关;电源插座;复位按键;背板连接器;导套、导销;USB)。
外形一般在3D设计的时候,就会把接口零件模型组装到PCB,一起投影到DXF文档,同时提供定位参考点。
(4)PCB安装孔的位置、孔径及其禁布区要求。
选用什么型号的螺丝,提供相应孔径的尺寸,提供螺帽禁布区尺寸,并提供文字说明。所选焊接器件的料号、位置和放置面。其他需要焊接到PCB上的与结构相关器件的规格型号、位置信息、禁布信息、放置到PCB哪一面等信息,例如焊接螺母、螺柱,较大尺寸的电源砖,较大尺寸的芯片,需要散热的芯片等。
(5)PCB的TOP和BOTTOM面对器件高度的限制要求。
由于PCBA需要与结构件装配,所以需要提供允许摆放电子元件的高度要求,需考虑间隙裕量。
(6)光纤半径和路径要求。
光纤有弯曲半径要求,所以盘纤的方式、盘纤的路径和路径的宽度都要提前规划好,这些信息与PCB相互影响。
(7)直接安装到PCB表面的零件。
有些金属结构件直接安装到PCB表面,表面一般禁布线,并且金属外围轮廓需增大,留足裕量,避免因零件制造装配公差引起短路。有些塑胶零件安装到PCB表面,表面一般禁布元件,禁布区外围留足裕量。
(8)插板式PCB标示出插槽限高或禁布区域及行程要求。
有一种插板式PCB,两侧边直接与导轨插槽滑动装配,注意两边禁布区要求,以及注意模拟行程当中其他结构件发生撞击干涉的空间,明确限高或禁布要求。有一种PCB装配方式带滑动行程,注意模拟装配行程当中与结构件发生撞击干涉的长度和面积,明确限高或禁布要求。
(9)焊接器件引脚长度要求。
(10)连接器的PIN序列信息。
(11)散热器安装位置、高度、禁布区要求。
(12)特殊器件的安装要求,例如摄像头、陀螺仪传感器、ToF等器件可能需要有安装位置的特定要求。
图5.17是一块电路板在总体设计过程中考虑结构干涉、电路板安装、天线安装的示意图。
3.热设计
即使是大公司,专门搞热仿真/热设计的从业人员也比较少,只有热设计工程师才可以使用仿真软件。所以热设计工程师一度是稀缺资源,硬件工程师也只能依赖热设计工程师进行仿真。而很多公司热仿真的工作是结构工程师完成的,也有些技术高超的硬件工程师自己建模仿真。这个取决于个人的技术宽度、公司的分工要求、产品复杂度、必要性等。不管是什么工程师来做这个工作,如果反复地仿真又没有好的结论,都是资源浪费,自然就会有热设计工程师拒绝反复仿真各种情况的案例。
我们在硬件设计过程中,由于芯片的性能越来越高,接口的速率越来越高,各种芯片的热耗也随之增大,所以热设计的挑战也越来越大。特别是产品竞争进入白热化之后,在有限的机框里面达到散热极限是很容易出现的。
热仿真的特点如下:
(1)器件功耗大,散热风险大。
(2)热设计仿真结果经常超过结温,或者不满足降额。
(3)有些给出的器件功耗值缺乏理论依据,不准确,导致过设计或散热风险。
(4)热仿真的过程需要多次反复,一次仿真的周期大约3天,效率低下。
有时候硬件工程师按照项目经验经多次调整,才能满足热设计的要求,而且不断地改热设计的输入条件,导致效率很低。预布局、结构设计、热设计的关系和流程如图5.18所示。
分析上面的流程,得出热仿真效率低的原因,如图5.19所示。
对于风险器件,我们需要做到两点:
(1)准确地给出器件实际功耗。
(2)考虑走线的前提下最优化的散热布局。
关于器件功耗评估,对于没有散热风险的器件,我们评估功耗的时候可以很粗略地给一个标称最大值。但是当这样简单操作给出一个最大值之后不能通过热仿真的时候,需要我们去调整这个值,评估出最准确的值。
例如,DDR3控制器支持高刷新率,则其结温可达到95℃,如果不支持高刷新率,则最高结温定为85℃。必要时,硬件实现提高刷新频率功能,则DDR3温度规格放宽为95℃。其他器件如果有硬件指标跟温度相关,一样要根据实际需求和实际场景去评估其温度上限要求。对于散热风险较小的仿真模型,可以建立简单的电源模型,按照经验值输入。对于设计风险较大的单板,需要建立电源详细模型,硬件人员需要提前评估功耗,提供给热设计人员。特别是MOSFET,有时候为了简化模型,直接布放一个热源,进行仿真。但是由于功耗大,所以我们要根据MOSFET的实际使用情况,利用功耗计算公式,计算出其实际的功耗,然后再确定其功耗参数。同时,需要通过覆铜、亮铜等措施改善其散热,而不是简单地降规格妥协,或者换更贵更好的器件,这样要么影响产品竞争力,要么提升了成本。
CPU的功耗要根据其是否降频工作、超频工作的实际工作负载情况进行评估,不能拿最大功耗一刀切。X86处理如果支持Turbo Burst模式,需要考虑多种情况的散热分析。由于Nehalem架构处理支持TurboBurst模式,所以虽然处理的总功耗一定,但是处理各个点的功耗会随着不同的Turbo模式,导致各个Core的最大功耗会超过其额定功耗。需要分别考虑各种情况的散热,不然超频的时候,单点功耗会比较高。我们曾经有个案例,使用多核PowerPC,其功耗比较高,热仿真一直评估有风险。但是我们根据实际业务场景,重新合理地评估了其真实环境下的实际工作功耗,降低功耗之后仿真通过。后来实测,也不会出现过温的现象。对于处理器这类器件,需要的时候应该投入人力,用demo板对实际工作环境进行实测,提前做热测试,保障功耗评估准确。同样的,DDR也需要根据其实际工作速率评估其功耗,特别是FPGA的外挂DDR,有时没有想象中那么大功耗。
FPGA的功耗,一般厂家会提供评估工具。这时,一定要根据实际FPGA的资源占有情况进行评估,不要按照100%进行评估。评估值实在偏高,也可以用demo板实测功耗。
分享几条关于热设计的PCB布局、结构设计、生产工艺的经验。
(1)共用散热器,需要考虑器件公差及导热硅胶的厚度。
当时有个案例,我们有一个电路板上面的CPU和另外一个器件共用了散热器,自己公司的热设计工程师的仿真结论是温度比较高,而使用相同的仿真模型,器件厂家散热仿真模型的温度比较低,经过与器件厂家讨论,分析原因是器件厂家建立的仿真模型,CPU与散热器的导热胶厚度为0.13 mm,而我们目前仿真模型中使用的仿真模型是0.3mm。这样导致器件厂家仿真模型中CPU的温度是95℃,而我们的仿真结果是大于116℃。自己公司的热设计工程师选择0.3 mm是参考两个器件公差得出的经验值,选取了概率比较高的一个参考值。实际生产过程中,导热硅胶的厚度很难控制得那么精准,需要制造特殊的涂胶工装来保证其厚度。不然确实会出现大功率器件温度过高,出现过热保护的情况。建议最好不要多个器件共用散热器。由于器件高度公差的因素,可能导热硅胶厚度影响散热效果,如果多个器件共用散热器,需要充分考虑器件高度公差带来的影响。
(2)有些场景下,电路板的正面和反面都有DDR,为了方便走线,有些工程师把TOP面和BOTTOM面的DDR在空间上位置完全重叠。
但是这样重叠设计,DDR的热量也会通过PCB板相互传递,不利于散热,可以考虑错开一点进行设计。在指标就差一点点的时候,这种设计能够起到良好的优化作用。
(3)散热器件后方如果有扣板等平板型物体,不一定会阻碍器件散热,有可能形成风道,加大局部风速。
有时风道会改善散热。热仿真图如图5.20所示。
(4)散热有叠加效应。
如果存在很大散热风险,优先考虑将结温要求最苛刻、功耗大的器件放在进风口,例如DDR。
(5)过孔、亮铜会改善散热。
(6)加散热铜箔和采用大面积电源地铜箔。
连接方式与结温的关系如图5.21所示。
根据图5.21可以看到,连接铜皮的面积越大,结温越低。铺铜面
积与结温的关系如图5.22所示。
根据图5.22,可以看出,铺铜面积越大,结温越低。
5.4.4 SI前仿真
SI(Signal Integrity,信号完整性)仿真是对信号网络进行仿真并发现信号完整性问题。前仿真,顾名思义,就是布局或布线前的仿真,是以优化信号质量、避免信号完整性和电源完整性问题为目的,在众多的影响因素中,找到可行的乃至最优化的解决方案的分析和仿真过程。简单地说,前仿真要做到两件事:其一是找到解决方案;其二是将解决方案转化成规则指导和约束设计。
一般而言,我们可以通过前仿真确认器件的IO特性参数乃至型号的选择,传输线的阻抗乃至电路板的叠层,匹配元件的位置和元件值,传输线的拓扑结构和分段长度等。
以DDR4为例,其中有数据线DQ、数据选通信号DQS、时钟信号(Clock)、地址信号(Address)、控制和命令信号等。在JEDEC总线规范里面对它们都有明确的要求,比如对数据信号在接收端的眼图模板要求,如图5.23所示:
根据总线规范的要求,在设计之前就要对其进行仿真分析。分析其电气和时序要求,提取与信号完整性相关的要求。简而言之,就是从元器件手册和相关规范中找到与信号完整性相关的要求,例如建立时间、保持时间、变化沿斜率范围、最大过冲电压、最小下冲电压等,从而通过仿真分析找到符合这些要求或参数的解决方案。
DDR4是典型的并行总线,在选择仿真软件时要注意其特点和要求。可供选择的软件包括ADS、HSpice、Hyperlynx等。以ADS为例,其不仅能单独针对某一个特定的信号网络进行仿真分析,还可以针对整个DDR4总线进行仿真,其电路仿真的拓扑结构如图5.24所示。
仿真完之后,就可以获得其眼图结果,如图5.25所示。
从仿真结果可以非常容易地判断设计是满足要求的,当然也能表明整个链路设计符合规范和系统的要求。对于DDR4数据信号,可以通过眼图结果判断其设计的合理性。对于数据信号和其他信号,也可以通过一致性的报告分析来判断其是否满足总线和设计系统的要求。图5.26为一份DDR4仿真一致性报告的部分内容。
不管是眼图模板的对比判断,还是使用总线一致性的要求判断,目的都是用来规范设计及提升高速电子产品的一致性成功率。对于USB这类高速串行总线(SerDes总线),其评估手段与DDR这类的并行总线并不完全一样。因为它们的设计难点和要求并不完全相同。如图5.27为USB3.0的全链路的仿真拓扑结构。
在链路中包含了发送和接收端的芯片、连接器模型以及PCB的模型。完成仿真之后,其仿真结果如图5.28所示。
可以看到,对于DDR4和USB3.0,不管是仿真拓扑结构,还是仿真结果,都有其异同点。图5.29是针对Ser Des总线和DDR总线的一个对
比。
5.4.5 硬件成本管理
1.硬件项目成本的构成
在经济学和金融学中,边际成本指的是每一单位新增生产的产品带来的总成本的增量。这个概念表明每一单位的产品的成本与总产品量有关。例如,仅生产一辆汽车的成本是极其巨大的,而生产第101辆汽车的成本就低得多,生产第10000辆汽车的成本就更低了(这是因为规模经济带来的效益)。生产一辆新的车时要尽量用最少的材料生产出最多的车,这样才能提高边际收益。边际成本简写为MC或MPC。这是软件产品对比硬件产品最开心的地方,当我们海量发货的时候,说:“现在终于熬出头了,发货真爽。”但是负责软件产品的朋友慢悠悠地说一句:“发license(许可证)才爽。”
我们说硬件成本,不仅仅是硬件单板和整机的成本,硬件项目的成本有很多方面构成,包括研发成本、产品边际成本、服务成本、基础成本等,如图5.30所示。
下面对部分成本进行说明。
(1)人力成本。
人是最宝贵的,也是最贵的成本。在硬件产品研发全流程中的人力投入粗略评估,如图5.31所示。
整个研发流程中,各个环节所需要的人力投入都是需要进行评估的。如果对某一个环节在前期投入不足,一定会造成后续环节的加大投入。而且早期不解决问题,越到后期想解决所付出的代价就会越大。
例如,如果早期在器件选型的时候,对于器件生命周期的评估不准确,或者缺少评估,当产品量产后,发现关键器件的生产厂家已经部分或全部停产,这时需要备货或更改方案,带来的人力成本是非常高昂的。
在整个研发过程中,每个环节的人力投入,或者每个环节的人力成本预算都不可以省略,或者进行削减时需要进行严格的评估。
(2)仪器仪表成本。
万用表、示波器、稳压源这些常规的仪器仪表必须要配备。电路设计、射频、等所需要的仪器仪表的费用,那就不可估量了。图5.32是一些常用仪器的报价。
频谱分析仪、网络分析仪、信号发生器配齐,发现一套二线城市的房子没有了。曾经有一个同事用6G带宽的示波器测试电源,被领导怼了:“你怎么拿着宝马测试电源?”还有个同事整天拿着一个低噪声的频谱分析仪出差,也是胆战心惊,总说自己拎着房子在出差。
(3)工具等易耗品成本。
除了仪器仪表外,还有一些易耗品,搞硬件各种工具少不了。螺丝刀:大的、小的、十字的、一字的;钳子:斜口钳、剥线钳、尖嘴钳;烙铁类:烙铁头、烙铁芯、吸锡器、热风焊台、焊锡丝、吸锡扁带、助焊剂、松香、洗板水;镊子:弯头镊子、直头镊子等。
工具管理得不好,或者大家不爱惜的话,很容易丢失或损坏。而且有些工具是消耗品,例如镊子,很容易变形,变得不能夹起0402封
装的电容电阻。
(4)改板成本。
PCB制板,往往不是一次成功,可能会有一些错误或不稳定的因素,需要通过重新加工新版本的PCB进行方案优化。如果在调测阶段改板,主要浪费的是制板费、SMT、物料费用等。如果在项目交付接近尾声的时候改板,则所有相关的环节都需要重新做一遍,造成的浪费和损失将会更大。
(5)直通率影响成本。
直通率是对产品从第一道工序开始一次性合格到最后一道工序的参数,能够了解产品生产过程中在所有工序下产品直达到成品的能力,是反映企业质量控制能力的一个参数。如果产品直通率不高,所带来的成本有可能是产品报废率的成本,或者是维修的人力成本,都是极大的浪费。直通率不但要关注SMT,还需要关注其他生产环节、结构件装配、生产测试等。
(6)税费。
税费主要包含增值税和企业所得税,根据企业的形式,有不同的税率,这一块的成本是需要核算进去的。
(7)BOM清单中容易忽略的费用。
除了元器件的采购外,还有结构件开模费、线缆费用、连接器费用、包装、电源、外置天线等,这些BOM清单里面的成本往往容易被忽略。
(8)生产加工。
包括PCB加工、SMT、整机装配、整机调测、包装。有一些产品在生产环节还需要特殊工艺,例如需要做三防、打胶,有一些甚至需要做水密测试。
(9)维修、维护费用。
硬件产品售出之后,不是一卖了之。器件都有一定失效率,器件甚至包括一些结构件,不可能完全不损坏。现场的故障需要有人能解决,质保期的产品还需要维保。
(10)现场安装、升级。
如果是远程搞不定的问题,可能还需要人去现场安装、升级、调测。其中产生的差旅费、返修件、替换件等,都需要成本支出。
(11)呆死料。
呆死料形成原因:设计改型后,原先的材料有新的替代料;采购过程中没有进行配套采购,多余的料就形成了呆死料;库房盘点不及时,对库存台账没有进行分析;材料没有保质期管理,长时间后,可用料变成无用料。
2.硬件成本是设计出来的
我们重点讨论一下硬件单板和整机的成本控制,硬件产品的成本控制是设计出来的,因为硬件产品设计一旦定型,就很难通过硬件修改来大幅度降成本,并且所有的修改也都是有成本代价的,还有可能会导致延期。
在项目的各个阶段都要进行成本设计和成本控制工作。
(1)硬件立项的时候定成本目标。
硬件产品的立项阶段,要设定产品的成本目标。由市场要求确定定价策略,并根据规格定义明确竞争策略,做定价参考,然后根据一些经验数据核算出成本要求。立项阶段做产品规划时,要考虑聚焦核心目标,降低一些无意义的技术复杂性。
(2)硬件总体设计阶段分解成本目标,从架构设计和方案设计开始降成本。
这个阶段会把成本目标分解到各个子领域,总体成本差距和子领域的成本短板都会显现出来,针对预估成本和成本目标的差距,启动总体设计阶段降成本分析,讨论降成本的各种备选方案,大家要一起为产品成本竞争力出谋划策。
在制订设计方案的时候,硬件项目经理和硬件工程师需要召集项目相关人员一起讨论,仔细去分析架构的合理性,特别是针对那些导致整体架构变复杂的节点,要逐一探讨分析,权衡各方因素,判断设计是否合理,计算成本代价是否能够接受。总体设计完成时,成本达成情况也基本清晰了,可以判断这个产品是否有成本竞争力了。
这个阶段还有一项工作对成本达成影响很大,就是确立了主芯片方案后,需要完成关键芯片的谈价工作,大部分硬件产品中主芯片占整体成本比重很大,主芯片的价格谈得好,产品整体收益很大。
(3)硬件详细设计阶段把控设计细节,做到硬件成本最优。
硬件原理图和PCB设计要强调的是一次把事情做对,减少改板次数,追求“一板成功”是降低硬件项目成本的重要手段。硬件详细设计是硬件细节掌控能力的比拼,这个阶段工作都是手艺活,包括:
①单板硬件设计的简洁化和归一化,应用“免、减、归”的精益设计思想去除冗余。
②硬件PCB设计降成本,如PCB降层,海量发货单板由4层板降到2层板,框式复杂单板由12层板降到10层板,这些都能带来可观的成本收益。
③电源、整机等外购件的降成本。
④通过设计改进,优化工艺路线,降低制造成本。
⑤采购谈价降成本。
为啥说这些都是手艺活,因为降成本这些措施中PCB layout、外壳ID设计、硬件模具开模、各种五金塑胶制品的加工工艺,产品设计不能导致批量生产变复杂等,这些都需要硬件工程师有全面的硬件工程实现能力。
(4)硬件测试阶段做好可靠性和成本平衡。
硬件测试阶段我们要针对设计方案中的降成本策略进行专项验证,我以前在做成本敏感的产品时会把这个作为测试验证阶段的重点工作,在产品发布前全部完成验证,并入修改点。
硬件测试阶段测出可靠性和一致性问题,比如电源模块选型不满足满供时的降额要求,防护规格没法满足8 kV的加严要求等,测试人员希望通过用更大的电源、更多的防护器件解决这些问题,这时候需要硬件工程师动脑筋,找低成本的解决方案,避免或降低成本的增加。
(5)发货后持续降成本。
产品上市开始发货之后,降成本工作还要持续去做,这些工作都会贯穿于硬件产品生命周期始终。这些持续的点滴工作,每省下来一分钱成本就是在每个发货产品上增加了一分钱的利润,随着发货量增加会有持续收益。可以做的工作包括如下几条。
①硬件设计优化,包括持续简洁化消除冗余设计、提高直通率、进行低成本器件替代。
②解决方案降成本,根据发货后客户使用情况减少辅料、优化典型场景互连方式等。
③结构件等降成本,发货量增加后持续谈价降成本。
④制造成本优化,包括工艺改进、减少生产工序、提高生产自动化率等。
⑤物料采购优化,做好市场需求预测和原材料采购之间的平衡,减少呆死料,减少库存。
3.平衡可靠性和成本
(1)客户要求的是产品整体可靠。
可靠性是一系列方法的整合,可靠性整合是指无缝地、紧密地把不同可靠性方法融合在一起,从而以最小成本得到最佳可靠性。也就是说,可靠性方案是几种方法协调使用的整体,而不是一堆无序的可靠性任务。
产品由各种部件和组件构成。产品的可靠性在设计生产过程中,涉及学科主要有机械学、电子学、软件学、光学、化学,所有这些学科共同作用于产品,应该重视这些学科之间的关系和总体的效果。设计的思考过程也应该更全面,而不仅仅是从某个部件的角度思考,或者仅仅从某个学科的维度去思考和解决问题。产品的可靠性,不单指电路设计的可靠性,还包括硬件、软件、结构、运输、包装。产品级别的可靠性,是机械可靠性、电气可靠性、软件可靠性的集合。在有些公司里面,软件可靠性和硬件可靠性是分别制定的,并没有进行整合。因此当故障发生时,同事间往往只是相互怀疑,而不是相互协调。各个不同的开发部门往往都是从自己部门的专业出发去思考可靠性设计,甚至更糟糕的是一些大公司有些部门从自己部门的利益和KPI去考虑设计。有些设计人员设计的时候,做可靠性堆砌,不计成本地提升单部件的可靠性,导致过设计、过冗余、过度降额。
但是,客户要的是完整的产品,客户要求产品的各个部件在一起能正常、可靠地运转。可靠性表现是由最终用户进行衡量的,产品开发人员应该从产品和部件进行综合考虑,开发出可靠的产品。同时,产品的设计需要在可靠性和成本的平衡上进行引导,而不是追求单部件、单模块的高可靠性,造成过冗余和过设计。
(2)可靠性和成本的关系。
可靠性设计可以减少保修成本、使用成本,提高客户满意度,同时可靠性设计也会造成开发成本、物料成本、生产成本上升。在硬件生命周期的各个阶段,我们提高可靠性,到底要实现到什么程度呢?我认为在保证达到业界标准、交付标准、客户需求等的前提下,应该是运用可靠性设计实现生命周期的总成本(Life-Cycle Costing,LCC)降到最低。
生命周期成本是指项目投资方要获得项目产品或资产的终身所有权所需的总体花费,包括以下方面。
研究和开发成本:包括产品设计开发过程中,设计、演示、论证各阶段所需的花费,可能还包括可行性分析、效益分析、原型开发和获取相关材料等方面的费用。
实施/生产成本:包括开发或制作产品模型的相关成本,可能还包括产开发或测试过程牵涉的人力、物力的花费,以及培训、获得许可证等方面的间接费用,或其他方面的成本。
构造成本:主要是指为产品开发新的相关设备或架设必要的物质基础等方面的成本。例如,开发新的相关设备、架设网络基础设施(如电缆、电话装置)等。
运行和支持成本:主要是指为了使产品能够运行而维持相应的支持系统所需要的成本,可能包括人员、备件或零件、维修、系统升级或管理等方面的成本。
淘汰或处理成本:这些是当淘汰或停止使用产品时所需的相关花费,可能包括转换成本,归档成本,或者设备的回收利用等处理成本。可靠性和成本的关系如图5.33所示。
在产品定义中,制定合理的可靠性目标很重要,过高或过低的可靠性目标都对产品有伤害。我们增加可靠性成本会导致产品的总成本增加,当可靠性提升到一定水平就很难再进一步提高了,这时投资回报率会变差,并且产品的可靠性目标定得过高,客户会感知到成本增加,客户或许也不需要这么高的可靠性,他们可能就会选择更便宜的产品,或者相同价格中更时尚、更实用的产品。诺基亚手机摔不烂、砸不坏,但是卖不掉,客户不买单,这就是令人警醒的可靠性过高的例子。当然,可靠性目标过低也不好,可能造成返还件数量大增、维保成本上升,最重要的是会导致产品口碑变差,这是多少成本都换不来的。
提升硬件产品的可靠性也不是仅仅盯着硬件,我们在产品设计中有很多DFX设计,通过软件手段提升硬件可靠性,虽然不能直接降低硬件产品的成本,但软件能力提升可以减少安装和上线的时间、缩短故障维修时间、支持远程诊断降低维护人员工作量,还能提升客户满意度,建立好的口碑。所以通过提升软件能力提高可靠性,也可以节约成本。
原文地址:https://blog.csdn.net/qq_43701785/article/details/143819361
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!