硬件设计的总体策略

发表时间: 2021-03-15 20:24

1、硬件框图

首先,总体设计是需要交付一张硬件框图的。有的人有强迫症,需要用visio画出很多细节。有的人,觉得大概把主要的核心器件放一下,示意一下就可以了。自然总体框图的美观程度不代表硬件的绝对水平。

当然除了表示出芯片,还需要表示出芯片之间的接口。考虑接口的时候,就需要考虑接口的速率。很久以前看到有同事,想在I2C上走视频信号,应该是没有仔细考虑视频信号的带宽,和I2C总线能够承载的最大速率。


工欲善其事,必先利其器是说:工匠想要使他的工作做好,一定要先让工具锋利。比喻要做好一件事,准备工作非常重要。语出《论语·卫灵公》:子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。” 这个准备工作,当然不只是指工具,还有动手之前的策划、思考、评估、方案设计、架构设计等。


硬件工程师动手画原理图之前,需要画的一个东东就是,用“猥琐”(Visio)画出电路板方案框图。


2、业务模型

硬件知识背景的开发人员,比较容易先关注芯片选型和接口的选择。其实一个总体设计,应该先从电路板(或者说 产品的角度)怎么使用的角度开始思考。特别是电信设备的电路板,我们需要考虑对外接口,需要考虑数据在整个硬件系统里面的流向,同时需要考虑在电路板内部,数据的流向和走向。

所以,业务模型决定的,数据通信的带宽,也决定了FPGA、DSP等芯片外挂的DDR的带宽和容量。同时业务模型,也决定了处理器的能力需求。

如果是非服务器模型,我们一般用浮点计算和整点计算的算力对芯片的规格进行约束,如果是服务器模型,我们需要使用Intel定义的一些算力评估方法对处理器能力进行评估。

所以业务决定硬件,而不是先选定硬件再看能够承载什么样的业务。脱离业务模型的评估硬件需求,都是耍流氓。


4、关键器件分析

我们研发一个新项目的时候,不可避免地会使用我们没有使用过的器件,甚至是整个公司都没有使用过的器件。

我们根据设计需求选定了基本方案之后,需要对新器件、关键器件进行应用分析,输出应用分析报告,并召集相关人员、管理者、有经验的工程师进行评审和分析。

方案分析过程中需要参考和更新器件的Bug List和设计注意事项。同时收集案例,并给出应对解决措施,提前预防已知问题。

关键器件不仅仅局限于新引入的器件,还包括复杂的器件、开发人员及项目组经验积累都不足的器件。

这个关键器件的分析,我们需要对器件的datasheet进行分析、寻找并Demo板、查阅厂家的errata,寻找已经产品化或者已经完成过的设计,部分电路的改动,需要动手做电路实验、或者做电路仿真,进行验证。


5、预布局、结构设计、热设计(焦灼与迭代)

我们根据需求,明确了必要的功能、性能、然后明确了关键器件,也就是电路板上面大功率器件、新器件、复杂器件都已经敲定了。那么我们可以做一个预布局,明确电路板尺寸,形状的大致想法。

我们为了实现一个准确的预布局,需要输出一个预布局原理图,要求原理图至少包含主要器件、电源、热敏感器件和接插件。

预布局需要把电路板的信号流向、器件功能、主要器件的电源管脚分布、整个电路板的电源的基本分布和流向。

然后把相关的诉求,提供给ID工程师,给一个基本的ID设想,然后由结构工程师进行结构设计的细化。

如果是成熟的机框,则这个过程相对简单一些,例如ATCA、VPX这种标准机框。一些个人消费电子产品这个过程反复的可能性非常大。

为了避免这个过程,硬件工程师在完成初步的预布局,之后应该把自己的设计诉求,全部记录在《结构要素图设计说明书》中,提供给结构和ID工程师。

硬件工程师需要提供单板布局和器件热耗(功耗)表、各器件散热参数。数字器件要注意提供尽量准确的功耗数据,特别是DDR/FPGA等器件要根据使用场景进行计算。提供的器件的功耗需要准确,避免过设计,也避免散热风险。


当存在工程挑战的时候,硬件需要在预布局、结构设计、热设计之间进行焦灼和迭代。最终达到一个最佳的平衡的效果,有时候不得已还需要跟需求进行平衡。


6、硬件与软件

应用决定软件、软件决定硬件。所以硬件选型,特别是CPU的选型,需要充分考虑软件需求。小公司,需要考虑软件工程师的开发能力和已经具备的技术储备。大公司,需要考虑公司的软件路标、OS的选型规划、软件开发工作量、软件的归一化、商用OS的供应商现状等等。