1 目的及意义
本文主要目的有如下几点:
论述硬件原理图设计时一些重要的要点,这些要点是以前设计经验的总结。根据这些原则设计原理图,可以使设计更规范,更正确。
规范原理图Review时一些关键的检查点,根据这些检查点,可以避免一些低级的错误,从最大程度上保证工程师的设计初衷是和所画出来的原理图是完全一致的。
规范PCB Review时一些关键的检查点,可以从最大程度避免工程师在PCB上所犯的低级失误。
以下符号表示的意义:
l 表明必须要遵循的要求
l 表明强烈推荐的要求
l 表明建议的要求
工程师可以
l 确认此个检查项
l 确认检查项不能被满足
2 原理图设计要点
1) 芯片的外围电路设计尽量使用参考设计,以及芯片的硬件设计指南
2) 尽量拷贝别人已经验证过的原理图
3) 时钟以及高速信号要有正确的端接方式,要求不高的可采用源端串联方式
4) 时钟信号尽量采用点对点连接方式
5) 高速并行总线的时钟应该从同一片芯片发出
6) 在PCB空间足够的情况下,每个电源PIN上都保证有一个去耦电容.并且靠近电源PIN
7) 尽量使用oscillators而不是crystals.
8) 对于时钟分发芯片,使用带有PLL功能的Distribution提高时钟性能.
9) 选择适当的电容耐压值,对于一般钽电容应该按2X标准选择
10) 按钮信号应该有去抖功能
11) 接口器件是否有ESD保护功能.
12) 对于载板/子板/背板的接口信号,逐个检查接口信号是否一致.
13) 单板的功耗/散热必须满足实际工作环境
14) 在相同功能的情况下,选用接口尽量简单,元器件管脚数尽量少的元器件
15) 运用仿真工具,确定高速信号正确的端接方式
16) 在无特殊的情况下,尽量选用标准的电源模块,电源的输出能力要达到负载峰值电流的20%以上
17) 对于有几种电源供电的IC,必须注意上电顺序问题
18) 没有特别需要,请使用已验证过的元器件.
19) 高速串行总线的时钟源必须选用所要求的时钟精度/Jitter
20) 对于PCI信号,严格遵循上/下拉原则:
l 以下信号无需上下拉:AD[0:31],CBE[0:3]#,IDSEL,PAR
l 以下信号必需上拉(4.7K):AD[32:63],FRAME#, TRDY#, IRDY#, DEVSEL#, STOP#, SERR#, PERR#, LOCK#, INTA#, INTB#, INTC#, INTD#, REQ64#, ACK64#,CBE[4:7]#,另外还有仲裁器的REG#/GNT#信号
21) 对于CompactPCI单板,背板CPCI接口应遵循如下原则:
l 总线串阻原则
i. 所有总线型的PCI信号都应该串有10欧姆的电阻,这些信号有: AD0-AD31, C/BE0#-C/BE3#, PAR, FRAME#, IRDY#, TRDY#, STOP#, LOCK#, IDSEL, DEVSEL#, PERR#, SERR#, RST#.
ii. 如果以下信号被使用,也需要串接10欧姆的电阻: INTA#, INTB#, INTC#, INTD#, SB0#, SDONE, AD32-AD63, C/BE4#-C/BE7#, REQ64#, ACK64#, PAR64.
iii. 以下是点到点信号不需要串接10欧姆的电阻: CLK, REQ#, GNT#, TDI, TDO, TCK, TMS, TRST#, BD_SEL#, HEALTHY#
l 总线预充电原则,如无括号内注明默认的上拉电阻值都为10K:
iv. 预充电偏差电压为VP(1V左右的预充电电压)的信号为: 所有总线型信号原则上都预充电到VP,其中有:AD0-AD31, C/BE0#-C/BE3#, PAR, FRAME#, IRDY#, TRDY#, STOP#, LOCK#, IDSEL, DEVSEL#, PERR#, SERR#
v. 预充电偏差电压是VIO(因为是长针也算是前级电源)的信号为: PCI_RST#, ENUM#, INTA#, INTB#, INTC#, INTD#, REQ#, GNT#(上拉电阻100K), BD_SEL#(上拉电阻1.2K), M66EN, PCIXCAP
vi. 特例:HEALTHY#不需要预充电电压,但由于其开集电极输出特性,所以上拉到VIO(2K),PCI_CLK可以接到VP,也可以接到VIO,一般还是接到VP
22) I2C/SMBus必须要有上拉电阻
23) 对于不用的具有输入特性的PIN,应接到无效电平。高有效,使用下拉;低有效则上拉。
24) 配置引脚或不可确定的引脚,应该同时接上下拉,在调试时做取舍
25) 对于配置引脚,在上电复位时,确定没有任何驱动源驱动
26) 原理图符号和对应元器件管脚要一一对应,对于管脚数目比较多的元器件,可以分在几个Parts中实现,同种功能的引脚,尽量安排在一起。
27) 单板电源入口必须要有过流保护能力
28) 非常严格的高速系统同步时钟,可以考虑使用相位可调的锁相环芯片。
29) 复杂接口逻辑转换,最好使用CPLD来实现
30) 有LED能显示单板工作情况,如正常上电,工作状态,链路状态等
31) 板子需要有硬件ID,版本号的支持,实现方法可以有硬连线,寄存器/ROM方式等
32) IC的Value推荐使用IC的Part number
33) 高速多路时钟分发芯片的电源引脚不仅需要去耦电容,而且需要有磁珠串联
34) 对于不用贴片的元器件,在原理图中表述清楚。可以在Value/Reference中表示
35) 对关键信号,预留TP测试点,以便以后调试使用.
36) 不用的CPLD引脚最好增加TP,以方便调试.
37) 最好留有若干个TP GND ,调试时以便接探头.
38) 在原理图中加入必要的注释
39) 原理图首页画上电路框架图,及时更新框架图,框架图与实际电路一致
40) 仔细阅读所有芯片的Errata,Errata有可能影响整个设计的成败
41) 注意元器件是否停产
42) 除非在特别情况下,不选用还处在工程样品阶段的IC设计产品
43) 对于通用元器件,尽量选用具有二个供应商以上的器件
44) 尽量保证所选器件能最大限度降低成本
3 原理图检查要点
1) 时钟及高速信号是否有正确的端接方式
2) 时钟信号是否采用点到点的连接方式
3) 高速并行总线的时钟是否从同一片芯片发出
4) 每一个IC电源引脚是否都有一个去耦电容
5) 每一个电容的耐压值是否足够
6) 电感,电阻的额定功率是否达到要求
7) 按纽信号是否有去抖功能
8) 接口器件是否有ESD保护能力
9) 是否仔细确认载板/子板/背板的接口信号,保证一一对应
10) 单板的功耗/散热是否满足实际工作环境
11) 是否运用仿真工具,确定高速信号正确的端接方式
12) 电源尽量选择标准电源模块
13) 单板上电顺序是否可以保证
14) 所采用的各时钟源精度是否达到了IC的要求
15) PCI信号是否被正确的上下拉
16) CPCI信号是否按照标准进行正确的端接
17) I2C/SMBus是否有上拉电阻
18) 所有输入特性的引脚,是否已经被拉到正确的电平(一般是无效电平)
19) 可配置引脚或不可确定引脚,是否同时接了上下拉电阻
20) 可配置引脚在上电复位时,是否被其它驱动源驱动
21) 引脚数目比较多的元器件,是否分开在多个Parts中实现
22) 相同功能的引脚是否安排在一起
23) 单板电源入口是否有过流保护能力
24) 很难确定的高速总线时钟,是否用了相位可调的锁相环芯片
25) 复杂接口逻辑转换,是否用CPLD来实现
26) CPLD/FPGA的资源是否合适
27) 是否有LED显示单板正常工作情况
l 正常上电LED
l 工作状态LED
l 链路状态LED
l ATCA/CPCI/UTSTAR标准LED
28) IC的Value值是否使用IC的Part number
29) 多路时钟分发芯片的电源引脚是否有去耦电容及串联磁珠
30) 对于不用贴片的元器件,是否能在Value或Reference中明确反应
31) 关键信号是否有足够的预测点,如电源,时钟,关键总线等
32) TP GND是否足够
33) 在原理图必要部分是否有必要的注释
34) 原理图首面的框架图是否正确反应了原理图内容
35) 是否有停产的元器件
36) 设计中是否用到了工程样片
37) 所选的元器件是否最大限度地降低了最终产品的成本
38) 是否仔细阅读芯片的Errata确认当前设计,特别对于新器件
39) 对于不用的PIN,都要标上NC标记,便于EDA工具自动检查
40) 原理图符号中是否所有的PIN数目都和Datasheet一一对应
41) 原理图符号中是否所有PIN的输入/输出属性都和Datasheet一一对应
42) 原理图的版本号/Agile Number是否已经正确标出.
43) 设计的Feature是否达到了SRS的要求
44) 在层次式设计中,低层原理图端口和高层设计中的端口是否一一对应
45) 板内单向总线互连是否已经交叉
46) 电源信号是否满足设计要求
l 精度是否满足所有的元器件的要求
l 输出电流能力是否超过负载峰值电流20%
l 对于动态范围比较大的芯片,电源是否有足够的动态响应能力
l 电源的去耦/储能电容是否足够大
4 PCB检查要点
1) 在PCB文件上检查器件的封装机械尺寸是否正确
2) 元器件封装库的引脚顺序是否和Datasheet中Package描述完全一致
3) 有极性的分立元器件,仔细检查原理图和PCB库引脚是否一一对应
4) 在PCB文件上检查SMT器件焊盘大小是否合适
5) 通孔的器件,焊盘过孔直径是否合适
6) 压接的器件,压接孔是否完成按厂家提供的数据设计
7) 机械工程师检查机械尺寸,关键器件布局是否正确.
8) 检查元器件布局是否合理
9) 检查板厚度是否正确.
10) 单板是否符合工厂DFM要求
11) 单板是否符合DFT要求
12) 确认PCB是否需要工艺边
13) 电源布线是否满足设计要求.
l 电源信号最窄处,是否能满足电流要求
l 电源信号换层处,是否有足够过孔保证电流要求
l 电源层分割是否合理
14) 长距离的异组并行信号是否满足3W原则
15) 串行端接的电阻,电阻是否靠近源端
16) 单线阻抗及差分阻抗是否符合要求
17) 电源引脚的去耦电容离引脚尽量近.
18) GND的测试点尽量分布到各处和关键信号近,以便调试时用
19) 是否隔离模拟信号和数字信号以及模拟地和数字地.
20) 单板的散热是否能达到要求
21) 单板的散热片能否可靠的固定,并对周围的元器件没有影响
22) 高速并行数字总线,是否能满足时序的要求,是否按参考设计布线
23) 高速串行总线,是否满足长度匹配要求
24) 相邻层是是否有长距离并行走线
25) 以太网是否符合元器件放置及布线的要求
26) 高压(48V以上)的电源信号,是否留有足够的隔离(Creepage)距离
27) 单板的机框地和逻辑地需要隔离
28) 公司LOGO/Agile Number/版本号是否正确
29) 跳线,拔码开关等可设置的地方,要有明确的文字丝印加以说明
30) 不要写自己的名字在PCB板上
31) 布线完成率是否达到100%
32) 确认每一个DRC