
本书以Cadence公司目前最稳定的SPB 16.6版本中的OrCAD和Allegro为基础,详细介绍了使用SPB 16.6实现原理图与高速PCB设计的方法和技巧。本书结合设计实例,配合大量图片,以通俗易懂的方式介绍PCB设计流程和常用电路模块的PCB设计方法。 本书注重实践和应用技巧的分享。全书共分17章,主要内容以PCB设计流程为线索,以某项目实例为基础,介绍从原理图设计、设计环境定义、封装库建立、数据导入,到PCB的布局、布线、叠层阻抗设计、约束管理器使用、多人协同设计,以及后期处理和生产文件的输出等一系列流程。另外,还介绍了Allegro软件高级功能应用、多颗DDR3的设计实例、射频电路的设计实例等,这些实例上手快,工程实用性强,有助于读者快速入门。 书中实例的部分源文件和视频已在随书附赠的光盘中,读者可参考学习。
面对电子、信息技术的飞速发展和层出不穷的市场需求,电子产品正面临着设计复杂度日益提高的挑战,其中包括:更多的功能、更高的性能、更小的外形尺寸、更轻更薄、更低的成本、以及更短的设计周期等因素,众多设计挑战促使计算机辅助设计(Computer Aided Design:CAD)软件不断更新、融合、进步,以帮助产品开发人员降低设计复杂度、缩短研发周期,提高产品的综合竞争力。 本书编者长期在业界知名上市公司从事一线高速电路的设计开发工作,从早期的13.0版本直到当前最新的17.0版本,一直专注于使用Cadence公司的相关软件。在这个充满挑战性的工作过程中,积累了大量的高速设计、软件使用、辅助开发的实战经验,并于2015年应EDA365论坛的邀请,分别在北京、上海、深圳三地成功举办了数十个以Cadence软件为基础,关于高速PCB设计课题的免费公益培训活动,吸引了超过上千人的热情参与,赢得业界的广泛赞誉。 在PCB设计行业,Cadence公司的Allegro软件以严谨的设计流程、先进的软件功能、高效的设计方法,属于高端的设计平台之一,得到国内众多外知名企业的青睐。由于软件功能非常强大,相关参数选项较多,对于刚入门的新人来说,会有一定的学习难度,本书秉着通俗、实用的目的,不盲目追新,以当前最稳定、使用人群最广泛的SPB16.6版本为基础,以实战项目为例,融合编者多年来的工作经验、心得和体会,从原理图设计、数据导入到最终的生产文件的输出,以及高速电路设计的相关知识,均作了较为详细的讲解,引导读者逐步掌握Allegro软件的使用,并进行高速PCB设计。 因Allegro软件功能十分强大,有些参数选项或功能,编者平时实际工作中基本上用不到,故在书中没有做详细介绍。若读者对某些功能感兴趣,可直接与编者沟通交流。为保证学习效果,我们还专门为本书开通了技术交流网站(http://www.eda365.com)和读者QQ群(群号:435945077),以及读者邮箱:study_allegro@qq.com,在阅读本书的过程中,如果读者遇到任何问题,或者对本书内容有任何意见和建议,欢迎通过该网站、QQ群或邮箱进行反馈和交流。另外,在EDA365学堂(http://mooc.eda365.com)中有大量视频课程供读者在线学习。 本书前期经过大量的准备工作,历时近一年,期间查阅了大量设计资料,参考和引用了一些同类教程的相关内容和Cadence公司的相关技术资料,在此向这些资料的编者和Cadence公司致以深深的感谢! 参与本书编写的有何宗明、高宝君、庞丽春、黄继耀、郭东胜、杜正阔等一线设计师,在此对各位编委会成员的辛勤工作表示衷心的感谢!此外,本书还得到众多好友、同事和电子工业出版社张楠女士的大力支持,正是由于他们的鼓励和包容,本书才能得以顺利出版,在此一并向他们表示真诚的谢意! 高速PCB设计领域不断发展,编者也在不断学习的过程中,由于编者技术水平和实践能力有限,书中错漏之处在所难免,也可能会有一些新技术、新方法、新功能未能反映在本书中,敬请各位专家和读者批评指正。 编 者 2015年12月25日于深圳
第1章 概述 1 1.1 PCB概述 1 1.1.1 PCB发展过程 1 1.1.2 PCB的功能 1 1.1.3 PCB设计发展趋势 1 1.2 PCB基本术语 2 1.3 Cadence公司简介 3 1.4 Cadence硬件系统设计流程 3 1.5 Cadence板级设计解决方案 3 1.6 Cadence SPB软件安装 7 1.7 本书章节介绍 9 1.8 本章小结 10 第2章 OrCAD Capture原理图设计 11 2.1 Capture平台简介 11 2.2 Capture平台原理图环境设置 11 2.2.1 Capture创建原理图工程 11 2.2.2 常用设计参数的设置 13 2.3 创建原理图符号库 16 2.3.1 创建单个符号 16 2.3.2 创建复合符号 20 2.3.3 创建分割符号 22 2.3.4 电子表格创建符号 23 2.3.5 符号创建技巧 24 2.4 原理图设计规范 25 2.5 符号库管理 26 2.5.1 添加符号库 26 2.5.2 删除符号库 27 2.6 创建项目 27 2.6.1 放置元器件 27 2.6.2 选择元器件 27 2.6.3 移动元器件 28 2.6.4 旋转元器件 28 2.6.5 复制与粘贴元器件 29 2.6.6 删除元器件 29 2.6.7 同一页面内的电气连接 29 2.6.8 放置无连接标记 31 2.6.9 总线连接 32 2.6.10 放置电源和地符号 32 2.6.11 不同页面电气连接 33 2.6.12 添加图片和Text文字注释 34 2.6.13 器件编号排序 35 2.6.14 DRC验证 36 2.7 搜索命令的使用 36 2.8 浏览工程的使用 37 2.8.1 Browse的使用 37 2.8.2 浏览元器件 37 2.8.3 浏览信号 38 2.9 元器件替换与更新 39 2.9.1 批量替换Replace Cache 39 2.9.2 批量更新Update Cache 40 2.10 元器件属性添加 40 2.10.1 封装属性 40 2.10.2 页码属性 42 2.10.3 Swap属性 43 2.10.4 合并属性 44 2.11 创建网表 45 2.11.1 Allegro第一方网表参数设置 45 2.11.2 输出网表常见错误及解决方案 47 2.12 设计交互 47 2.13 创建器件清单(BOM表) 49 2.14 常用快捷键 49 2.15 本章小结 50 第3章 Allegro PCB设计环境介绍 51 3.1 系统环境介绍 51 3.1.1 变量设置 51 3.1.2 PCBENV目录介绍 51 3.2 Allegro启动简介 52 3.2.1 启动方法 52 3.2.2 欢迎界面 53 3.2.3 功能组件介绍 53 3.3 Allegro工作界面介绍 54 3.3.1 菜单栏 55 3.3.2 工具栏 55 3.3.3 功能面板 56 3.3.4 状态栏 59 3.4 Design Parameter常规设置 60 3.4.1 Display选项卡 61 3.4.2 Design选项卡 65 3.4.3 Route选项卡 66 3.5 User Preference的常规设置 67 3.5.1 Display类 68 3.5.2 Drawing类 70 3.5.3 Drc类 71 3.5.4 Logic类 72 3.5.5 Path类 72 3.5.6 Placement类 74 3.5.7 Route类 74 3.5.8 Ui类 75 3.5.9 常用设置的搜索与收藏 76 3.6 工作区域键鼠操作 77 3.6.1 视窗缩放 77 3.6.2 stroke功能的定义与使用 78 3.7 script的录制与使用 79 3.7.1 录制 79 3.7.2 调用和编辑 80 3.8 快捷键定义 80 3.8.1 查看快捷键 80 3.8.2 定义快捷键 81 3.8.3 快捷键定义技巧 82 3.8.4 实用快捷键示例 82 3.9 常用图层及其颜色可见设置 83 3.9.1 Class/Subclass介绍 83 3.9.2 设置界面介绍 84 3.9.3 设置方法 89 3.10 文件类型介绍 90 3.11 其他主要工具介绍 90 3.11.1 Batch DRC 91 3.11.2 DB Doctor 91 3.11.3 Environment Editor 91 3.11.4 OrCAD Layout Translator 92 3.11.5 Pad Designer 92 3.11.6 Pads Translator 92 3.11.7 P-CAD Translator 93 3.12 本章小结 93 第4章 Allegro PCB封装库管理 94 4.1 封装知识介绍 94 4.2 封装文件类型介绍 94 4.3 焊盘介绍 94 4.4 焊盘命名规则 95 4.5 焊盘尺寸规范 95 4.6 封装命名规范 97 4.7 焊盘的创建 100 4.7.1 焊盘创建功能界面介绍 100 4.7.2 规则贴片焊盘设计 102 4.7.3 异形表贴焊盘的介绍和创建 103 4.7.4 规则通孔焊盘设计 106 4.8 创建PCB封装实例 109 4.8.1 表贴封装的手工创建 109 4.8.2 插件封装的手工创建 110 4.8.3 表贴封装的自动创建 112 4.8.4 机械封装的介绍和新建 117 4.9 封装建立常见错误 118 4.10 本章小结 118 第5章 相关数据导入 119 5.1 导入结构图 119 5.2 生成板框 120 5.2.1 手工绘制 120 5.2.2 由结构图生成 122 5.3 绘制布局布线区域 125 5.4 导入网表 126 5.4.1 设置封装库路径 127 5.4.2 导入网表 128 5.4.3 导入网表常见错误及解决方案 129 5.5 本章小结 129 第6章 布局设计 130 6.1 布局设置 130 6.1.1 显示设置 131 6.1.2 图层设置 131 6.1.3 格点设置 134 6.2 布局基本要求 135 6.3 布局常用命令 135 6.3.1 设置Room区域 135 6.3.2 手工放置后台零件 136 6.3.3 自动放置后台零件 138 6.3.4 Group命令 140 6.3.5 移动命令 141 6.3.6 镜像命令 144 6.3.7 旋转命令 144 6.3.8 复制命令 145 6.3.9 点亮颜色命令 146 6.3.10 打开飞线命令 146 6.3.11 关闭飞线命令 147 6.3.12 固定命令 148 6.3.13 固定解除命令 149 6.3.14 对齐命令 149 6.3.15 替代封装 151 6.3.16 Swap命令 152 6.3.17 Temp Group功能 152 6.3.18 查询命令 153 6.3.19 测量命令 153 6.4 布局实例 154 6.4.1 结构件放置 154 6.4.2 电源地属性设置 159 6.4.3 OrCAD与Allegro交互布局 160 6.4.4 模块布局 161 6.4.5 器件布局的复用 162 6.4.6 禁布/限高区域的布局 165 6.4.7 主要关键芯片布局规划 167 6.4.8 电源通道评估、规划 168 6.4.9 基于EMC、SI/PI、RF、Thermal的几个考虑要点 169 6.5 输出封装库 169 6.6 更新封装 169 6.7 输出元器件坐标文件 170 6.8 输入元器件坐标文件 171 6.9 本章小结 171 第7章 PCB叠层与阻抗设计 172 7.1 PCB设计中的阻抗 172 7.2 PCB叠层 172 7.2.1 概述 172 7.2.2 叠层材料简介 173 7.2.3 层叠加工顺序 174 7.2.4 多层印制板设计 175 7.3 PCB走线的阻抗控制简介 178 7.4 六层板叠层设计实例 178 7.5 八层板叠层设计实例 180 7.6 十层板叠层设计实例 183 7.7 本章小结 185 第8章 约束管理器介绍 186 8.1 Constraint Manager界面介绍 186 8.1.1 启动Constraint Manager 186 8.1.2 工作界面介绍 186 8.2 常用约束规则模式介绍 187 8.3 Xnet设置 193 8.4 约束规则优先级介绍 195 8.5 Bus的介绍和创建 195 8.6 约束规则区域的介绍和创建 196 8.7 物理约束规则设置 197 8.7.1 物理约束规则介绍 197 8.7.2 创建物理约束规则模板 198 8.7.3 分配物理约束规则模板 199 8.7.4 区域物理约束规则的创建与设定 200 8.8 间距约束规则设置 201 8.8.1 创建间距约束规则模板 202 8.8.2 Net Class的介绍和创建 202 8.8.3 分配间距约束规则模板 203 8.8.4 间距约束规则比对 203 8.8.5 区域间距约束规则的创建与设定 204 8.9 Same Net间距约束规则设置 205 8.9.1 Same Net间距约束规则介绍 205 8.9.2 创建Same Net间距约束规则模板 207 8.9.3 分配Same Net间距约束规则模板 207 8.10 盲埋孔规则设置 208 8.10.1 生成盲埋孔 208 8.10.2 设置盲埋孔约束规则 210 8.10.3 盲埋孔层标记与颜色显示设置 211 8.11 封装引脚长度导入 212 8.12 电气约束规则设置 215 8.12.1 绝对传输延迟介绍 215 8.12.2 相对传输延迟介绍 216 8.13 差分对设置 220 8.13.1 自动创建差分对 220 8.13.2 手动创建差分对 221 8.14 约束规则数据复用 224 8.14.1 约束规则导出 224 8.14.2 约束规则导入 225 8.15 本章小结 226 第9章 敷铜处理 227 9.1 电源地平面介绍 227 9.1.1 平面层功能介绍 227 9.1.2 正负片介绍 227 9.2 相关要求 228 9.2.1 载流能力 228 9.2.2 生产工艺 228 9.2.3 电源流向规划 229 9.3 敷铜介绍 231 9.3.1 静态铜箔与动态铜箔 231 9.3.2 动态铜箔参数设置 232 9.3.3 静态铜箔参数设置 235 9.3.4 铜箔命令简介 237 9.3.5 铜箔优先级设置 238 9.3.6 开关电源敷铜实例 239 9.4 负片平面分割 242 9.4.1 平面分割要求 242 9.4.2 电源区域规划 242 9.5 本章小结 244 第10章 布线设计 245 10.1 布线环境设置 245 10.1.1 显示设置 245 10.1.2 图层设置 246 10.1.3 格点设置 249 10.2 布线规划 250 10.2.1 布线思路 250 10.2.2 GRE布线规划 251 10.3 Fanout功能和常规样式 256 10.4 布线常用命令 257 10.4.1 拉线命令 257 10.4.2 移线命令 262 10.4.3 删除命令 264 10.4.4 复制命令 266 10.4.5 布线优化命令 268 10.5 布线复用 269 10.6 等长绕线 273 10.6.1 自动绕线 273 10.6.2 手动绕线 274 10.7 泪滴的添加和删除 278 10.7.1 泪滴的添加 278 10.7.2 泪滴的删除 279 10.8 渐变线设计 279 10.9 大面积敷铜和阵列过孔 281 10.9.1 大面积敷铜 281 10.9.2 阵列过孔 282 10.10 ICT测试点介绍 283 10.10.1 参数设置 284 10.10.2 自动添加测试点 287 10.10.3 手动添加测试点 288 10.10.4 输出报告 289 10.11 本章小结 290 第11章 后处理 291 11.1 零件编号重排 291 11.2 手动更改元器件编号 297 11.3 重命名元器件编号返标原理图 297 11.4 丝印调整 299 11.4.1 丝印调整要求 299 11.4.2 字号设置 299 11.4.3 修改丝印字号 300 11.4.4 添加丝印 301 11.4.5 修改丝印 302 11.4.6 移动丝印 302 11.4.7 丝印指示 303 11.4.8 端点编辑功能 305 11.5 AutoSilk 306 11.6 尺寸标注 307 11.6.1 设置尺寸标注参数 307 11.6.2 尺寸标注命令介绍 308 11.7 标注实例 309 11.7.1 线性尺寸标注(Linear dimension) 309 11.7.2 相对坐标标注(Datum dimension) 310 11.7.3 角度标注(Angular dimension) 311 11.7.4 其他标注 311 11.8 工艺说明 312 11.9 本章小结 312 第12章 设计验证 313 12.1 验证设计状态 313 12.2 丝印文字检查 314 12.3 报表检查 315 12.3.1 多余线段和多余过孔 315 12.3.2 单点网络 315 12.3.3 未完成连接的网络 316 12.3.4 总体设计信息报告 316 12.4 其他 317 12.5 部分常见DRC符号说明 318 12.6 本章小结 319 第13章 相关文件输出 320 13.1 钻孔表格的设置与生成 320 13.1.1 钻孔符号优化 320 13.1.2 符号提取 322 13.2 输出钻带 323 13.2.1 参数设置 323 13.2.2 输出文件 324 13.3 光绘输出 325 13.3.1 参数介绍 325 13.3.2 光绘添加方法 326 13.3.3 输出光绘 331 13.4 输出IPC网表 332 13.5 输出Placement坐标文件 332 13.6 输出PDF文件 333 13.7 输出结构图 333 13.8 光绘文件归类打包 335 13.9 本章小结 336 第14章 多人协同设计 337 14.1 多人协同设计介绍 337 14.2 导入/导出Sub-Drawing 337 14.3 Team Design协同设计 339 14.3.1 创建设计区域Create Partitions 340 14.3.2 Workflow Manager 分区管理 341 14.4 本章小结 345 第15章 软件高级功能介绍 346 15.1 Skill二次开发 346 15.2 设计环境参数复用 348 15.3 传输线参数计算 349 15.4 背钻设计 350 15.5 无盘设计 354 15.6 Timing Vision 355 15.7 自动等长 356 15.8 相位等长 358 15.9 自动相位等长(AiPT) 359 15.10 自动圆弧转换 362 15.11 自动修改差分线线宽线距 362 15.12 查看走线寄生参数 365 15.13 检查无参考层的走线 365 15.14 PCB直接修改网络连接 366 15.15 不同设计文件的对比 368 15.16 生成叠层表格 369 15.17 削盘功能介绍 370 15.18 自动连接 372 15.19 输出ODB++文件 372 15.20 本章小结 373 第16章 高速PCB设计实例——DDR3 374 16.1 DDR3介绍 374 16.2 设计思路和约束规则设置 375 16.2.1 设计思路 377 16.2.2 叠层阻抗方案 378 16.2.3 约束规则设置 379 16.3 布局 380 16.4 布线 382 16.5 等长 384 16.6 本章小结 391 第17章 高速PCB设计实例——射频 392 17.1 概述 392 17.2 系统设计指导 392 17.2.1 射频电路设计要求 392 17.2.2 原理框图 393 17.2.3 电源流向图 394 17.2.4 单板工艺 394 17.2.5 布局规划 394 17.2.6 屏蔽罩的设计 395 17.2.7 叠层阻抗方案 396 17.3 约束规则设置 397 17.4 模块设计指导 399 17.4.1 POE电路的处理 399 17.4.2 电源模块处理 400 17.4.3 射频模块处理 402 17.4.4 CPU模块 406 17.4.5 网口电路的处理 409 17.5 本章小结 410 附录A Skill开发实例 411 附录B 常见DRC释义 431
从事PCB设计行业十多年,有着丰富的设计实践经验,所涉及的产品众多,包括电脑及周边、数据通信、无线射频、教育医疗、消费电子等各类电子产品,精通高速PCB设计相关知识,精通Cadence Allegro软件的使用,并熟悉多种行业软件。曾在北京、上海、广州主讲数十场关于Cadence Allegro软件使用,高速PCB设计技术的公益培训和讲座。__eol__