首页>参考读物>电子电工>电子工程

FPGA快速系统原型设计权威指南
作者 : (美)R.C. Cofer Benjamin F. Harding 著
译者 : 吴厚航 姚琪 杨碧波 译
出版日期 : 2014-03-06
ISBN : 978-7-111-44851-8
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 266
开本 : 16
原书名 : Rapid System Prototyping with FPGAs
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

《Rapid System Prototyping with FPGAs》第一作者和第二作者分别具有19年和15年的嵌入式系统工程开发和管理经验。其内容覆盖FPGA工程开发的整个流程,针对流程中各个阶段需要注意的事项和需要考虑的问题,作者给出了丰富详尽的列表,这些列表可以给FPGA工程开发者以指导和提示,有助于工程师作出关键的设计决策;针对列表中的内容,作者给出了严谨求实而不偏颇的论述,在指出某项技术的优点的同时,也指出了该技术的缺点,有助于读者从正反两个方面权衡其优劣,从而找到该项技术的最佳应用领域。

图书特色

FPGA开发从“精通”到“专业”必读的一本书。
两位作者累计在FPGA开发方面拥有30多年的专业开发经验。
“设计检查清单”和“注意事项列表”是贯穿全书的一大特色。

Rapid System Prototyping with FPGAs
Accelerating the design process
FPGA快速系统原型设计权威指南
[美] R. C. Cofer  Benjamin F. Harding 著 吴厚航 姚琪 杨碧波 译
封底:
本书会全面指导读者在使用灵活、特性丰富的FPGA进行原型设计的时候,如何节约时间和金钱。
工程师一直在寻找各种新方法,以缩减产品的成本和上市时间。由于FPGA极其灵活的设计周期,现在越来越多的工程师转向了基于FPGA的系统原型设计。为了充分利用FPGA所带来的诸多优势,工程师需要掌握涉及系统、硬件和软件多种领域的技能。事实上,很少有技术像FPGA设计一样,需要具备丰富的经验基础才能充分利用其技术优势。FPGA设计人员将会面临一条陡峭的学习曲线、多个复杂的设计输入、多种工具选项和无数设计决策。
本书将为工程师在复杂的“FPGA世界”中提供导航。基于作者多年成功的设计实践经验,为广大工程师提供了使用FPGA进行快速原型设计的实用指南。除了理论概述之外,本书基于每天的实际工程开发,旨在讲述工程师为了充分利用FPGA的技术优势所需要知道的一切。本书以实例为向导重点呈现关键技能,帮助读者在关键点上做出明智的决策,如引脚的分配、时钟的考虑等。作者详细地解释了如何优化开发流程,同时还指出了在整个设计过程中应该避免的常见错误和设计缺陷。通过阅读本书,一个仅具备FPGA基础知识的工程师将会向前迈进FPGA实现阶段。
本书的内容遵循FPGA工程开发流程,带领读者经历从基本的FPGA架构特性的考虑,经过板级设计的考虑,最后到原型的测试和验证的所有阶段。每一章都会涵盖一个设计专题或设计阶段,为高级专题研究提供资料,利用设计清单和概念摘要总结关键性的概念。关键性的设计决策和权衡会同常见的疏忽与应用设计解决方案一起讨论。本书的前半部分涵盖所有FPGA快速开发的通用专题,而后半部分则涉及很难找到指导教材的高级专题,包括高速I/O、IP核、使用FPGA软核和硬核处理器以及使用FPGA进行DSP的开发等。最后一个章节以一个实际案例讨论一个完整的设计周期,同时回顾本书提及的所有设计方法和概念。
对于所有设计师、项目经理、硬件和软件工程师以及有兴趣学习FPGA,希望掌握如何使用FPGA成功并高效地开发产品的学生,本书是必备的教材。

作者简介:
R. C. Cofer和Benjamin F. Harding是安富利电子公司的现场应用工程师。两人共有超过30多年的嵌入式软件和硬件设计工程经验,领域涵盖实时系统设计、可编程逻辑、数字信号处理和系统工程。

前:
吴厚航 [网名:特权同学],有5年的FPGA设计和板级硬件开发经历,擅长记录、分析及总结经验与技巧,也非常乐于分享。活跃于各大电子技术网站的FPGA社区或版块,个人技术博客深受广大网友的喜爱。
姚 琪,BEEcube FPGA系统工程师,有近5年的Xilinx FPGA开发和Linux驱动开发经验,曾参与过AES加密算法的FPGA实现、嵌入式操作系统移植、OpenFlow Switch开发等项目。对硬件和软件开源非常感兴趣,现专注于FPGA在SDN和SDR领域中的应用。
杨碧波 [网名:riple],联想研究院FPGA工程师。在电信和存储领域有多年的产品开发经验。专注于高性能FPGA设计的结构和时序优化。在工作中注重把软件工程的方法应用于FPGA产品开发和项目管理。对于嵌入式产品的软件和硬件联合开发有浓厚的兴趣。


上架指导

电子与电气工程

封底文字

本书会全面指导读者在使用灵活、特性丰富的FPGA进行原型设计的时候,如何节约时间和金钱。

工程师一直在寻找各种新方法,以缩减产品的成本和上市时间。由于FPGA极其灵活的设计周期,现在越来越多的工程师转向了基于FPGA的系统原型设计。为了充分利用FPGA所带来的诸多优势,工程师需要掌握涉及系统、硬件和软件多种领域的技能。事实上,很少有技术像FPGA设计一样,需要具备丰富的经验基础才能充分利用其技术优势。FPGA设计人员将会面临一条陡峭的学习曲线、复杂的设计输入、多种工具选项和无数的设计决策。

本书将为工程师们在复杂的“FPGA世界”中提供导航。基于作者多年成功的设计实践经验,为广大的工程师们提供了使用FPGA进行快速原型设计的实用指南。除了理论概述之外,本书基于每天的实际工程开发,旨在指导工程师为了充分利用FPGA的技术优势所需要知道的一切。以实例为向导的方式重点呈现关键技能,帮助读者在关键点上做出明智的决策,如引脚的分配、时钟的考虑等。作者详细地解释了如何优化开发流程,同时还指出了在整个设计过程中应该避免的常见错误和设计缺陷。通过阅读本书,一个仅具备FPGA基础知识的工程师将会向前迈进FPGA实现阶段。

本书的内容遵循FPGA工程开发流程,带领读者经历从基本的FPGA架构特性的考虑,经过板级设计的考虑,最后到原型的测试和验证的所有阶段。每一章都会涵盖一个设计专题或设计阶段,为高级专题研究提供资料,利用设计清单和概念摘要总结关键性的概念。关键性的设计决策和权衡会同常见的疏忽与应用设计解决方案一起讨论。本书的前半部分涵盖所有FPGA快速开发的通用专题,而后半部分则涉及很难找到指导教材的高级专题,包括高速I/O、IP核、使用FPGA软核和硬核处理器以及使用FPGA进行DSP的开发等。最后一个章节以一个的实际案例讨论一个完整的设计周期,同时回顾本书提及的所有设计方法和概念。

对于所有的设计师、项目经理、硬件和软件工程师以及学生有兴趣学习FPGA,希望掌握如何使用FPGA成功并高效地开发产品,本书是必备的教材。

作者简介

(美)R.C. Cofer Benjamin F. Harding 著:作者简介:
R.C. Cofer和Ben Harding是安富利电子公司的现场应用工程师。两人共有超过30多年的嵌入式软件和硬件设计工程经验,领域涵盖实时系统设计、可编程逻辑、数字信号处理和系统工程。

译者简介

吴厚航 姚琪 杨碧波 译:暂无简介

译者序

最初接触这本书是因为riple(杨碧波)在其博客上的大力推荐,追溯起来,那已经是2009年的事了。随后我(吴厚航)也专门拜读了这本书,读完此书,受益良多,我恨不能立即分享给国内广大的FPGA爱好者和工程师们,遗憾的是,我们只能看到英文版本的原著。随后的数月,先是riple着手对第4章做了翻译,陆续发表在其博客上。与此同时,我也动手对第3章进行了翻译,这个过程虽然耗时耗力,但不仅是在感受分享的快乐,同时还真真切切地从原文的字里行间体味作者的技术功力,从某种程度上提升自己对FPGA技术的认知。
  然而,且不说这种“民间”翻译行为是否涉及侵权,最重要的是我们无法更好地将FPGA业内少有的这本经典之作传播出去。鉴于此,我和riple也达成了共识,希望能够联系一家国内的出版社,让这本书的“中文翻译版”成为可能。我们先联系了国内的一家出版社,可惜不久之后得到的是令人沮丧的答复,当然,这只是本书翻译前的一个小插曲。为此,riple更是在其博客上撰文表达了不解,同时也给出了对此书非常中肯的意见,详细过程由riple记录在“译后记”里。
  很遗憾,自此之后,此书的翻译计划一度搁浅。直到2012年,我和机械工业出版社的张国强无意中再次论及此书,这件事才又现转机。正可谓“说者无心,听者有意”,数月之后,经过张国强的努力,排除各种艰难险阻,终于争取到了本书的翻译“许可证”。2012年年底,本书的翻译计划再次提上议程。不过,摆在我们面前的第一个难题是人选问题,由于工作量巨大,加之本书的深度,除了我和riple之外,还需要寻找一位能人相助。经过张国强的推荐,最终kiki(姚琪)加入了我们的行列。
  对于我们三人,巧合的是,各有所长,在技术上非常互补。虽然我们三人都未曾谋面过,但是从翻译过程中的沟通接触,不难发觉riple是一个专注于FPGA工程开发并且经验丰富的工程师;kiki则兼有FPGA和嵌入式软件开发的经历,言谈举止,非常阳光,充满活力;而我本人则是一个有较多硬件板级设计背景的FPGA工程师,性格里有着硬件工程师的严谨和较真。由此看来,我们三人基本能够形成一个在技术上和性格上都相对互补的团队,这对本书的翻译绝对是件好事。
  我们这个小小翻译团队的故事大体就是这样,我们期待半年多来大家所付出的点滴汗水能够换来广大读者对我们的认可。
  在本书翻译的分工上,本着“取长补短”的原则,三人各自负责自己所擅长的章节。riple负责第4章、第9章、第14章、第15章和附录B的翻译;kiki负责第1章、第7章、第8章、第10章、第12章、第13章以及附录A和附录C的翻译;我负责第2章、第3章、第5章、第6章、第11章、第16章和第17章的翻译。当然,在本书的翻译过程中,我们不断地相互“审校”,相互“修改”,希望尽可能给读者还原一顿“原汁原味的大餐”。
  本书作者在章节划分上,也是条理清晰、脉络分明的。第1~2章介绍基础知识;第3~4章则讲述设计流程和工程管理方面的内容;第5~11章按照设计流程分阶段展开具体的内容;第12~16章则讨论一些高级专题内容;最后在第17章进行了总结。主要内容大致如下所述。
  第1章讨论了基于FPGA的高效快速系统成型的相关概念和所涉及的各种嵌入式设计技能;第2章奠定了可编程逻辑器件的基础,讲述了可编程逻辑器件的分类及其发展演变,重点描述了基于SRAM的FPGA器件的内部架构;第3章给出了一个优化的FPGA开发流程,描述了各个设计阶段的主要任务及其注意事项;第4章着重从系统工程管理的角度来讨论FPGA设计流程的优化;第5章讨论了FPGA器件级的设计决策,如器件选型和引脚分配等;第6章讨论了FPGA板级设计所需要考虑的各种影响因素;第7章讨论了FPGA内部的具体设计实现,如模块层次划分、代码输入、综合实现和布局布线等;第8章讨论了设计仿真相关的内容;第9章讨论了各种不同的设计约束及其优化技巧;第10章讨论了FPGA下载配置相关的内容;第11章讨论了板级测试的方法;第12章重点讨论了功耗和量产相关的议题;第13章对IP的分类、IP核的选择、集成和测试等都进行了讨论;第14章讨论了FPGA内嵌处理器IP核的相关内容;第15章对在FPGA内实现数字信号处理功能进行了讨论;第16章论述了各种高级的互联I/O接口;第17章则是整本书的总结,以一个项目实例的方式将前面所有章节的内容都串联起来;附录A按照技术类别列出了对应正文各个章节的厂商技术资料;附录B按照开发流程给出了各个阶段设计要点的检查清单;附录C列出了常见的缩写和缩略词。
  最后,我谨代表整个翻译团队向为此书中文翻译版顺利出版付出过努力的同仁以及他们的家人们道一声“谢谢”!我们非常希望能够把这本书做得更精细一些,但是由于时间和精力所限,某些疏忽和错误在所难免。我们恳请广大读者和FPGA开发领域的专家在阅读本书的过程中把书中的问题及时反馈给我们,并就书中内容与我们进行交流,具体可以发邮件至wuhouhang@gmail.com, yq000ch@gmail.com和ash_riple@163.com。

吴厚航

图书目录

献词
译者序
作者简介
致谢
第1章 绪论 / 1
1.1 FPGA快速设计实现的潜力 / 2
1.2 快速发展的技术领域 / 3
1.3 全面、完备的设计技能 / 4
1.4 具备硬件知识的软件/固件工程师 / 6
1.5 具备软件知识的硬件工程师 / 6
1.6 FPGA技术潜在的局限性 / 7
1.7 FPGA技术的优势 / 8
1.8 小结 / 10
第2章 FPGA基础 / 11
2.1 概述 / 11
2.1.1 可编程逻辑器件的分类 / 11
2.1.2 SPLD / 14
2.1.3 CPLD / 15
2.1.4 FPGA / 17
2.1.5 FPGA类型 / 20
2.2 基于SRAM的FPGA架构 / 22
2.2.1 FPGA的逻辑块架构 / 23
2.2.2 FPGA的布线矩阵与全局信号 / 25
2.2.3 FPGA的I/O块 / 27
2.2.4 FPGA的时钟资源 / 28
2.2.5 FPGA的存储资源 / 30
2.3 高级FPGA特性 / 30
2.4 小结 / 31
第3章 优化开发流程 / 33
3.1 概述 / 33
3.2 FPGA开发流程 / 34
3.2.1 需求定义阶段 / 38
3.2.2 架构和设计阶段 / 39
3.2.3 实现阶段 / 42
3.2.4 验证阶段 / 44
3.3 小结 / 45
第4章 系统工程 / 46
4.1 概述 / 46
4.2 常见的设计挑战和错误 / 47
4.3 明确的FPGA设计过程规范 / 48
4.4 项目开发和管理 / 50
4.4.1 团队交流 / 51
4.4.2 设计评审 / 52
4.4.3 预算和日程安排 / 54
4.5 培训 / 56
4.6 技术支持 / 58
4.7 设计配置控制 / 58
4.7.1 在上板调试过程中对FPGA设计进行配置控制 / 61
4.7.2 设计归档 / 62
4.8 小结 / 64
第5章 FPGA器件级的设计决策 / 65
5.1 概述 / 65
5.2 FPGA选型分类 / 65
5.2.1 FPGA厂商 / 66
5.2.2 系列选择 / 67
5.2.3 器件型号 / 68
5.2.4 封装 / 70
5.3 设计决策 / 71
5.3.1 数据流向 / 71
5.3.2 确知的I/O引脚分配 / 72
5.4 设计选型清单 / 76
5.5 小结 / 78
第6章 FPGA板级的设计决策 / 80
6.1 概述 / 80
6.2 封装选型 / 81
6.3 BGA封装 / 83
6.3.1 BGA信号的引出 / 83
6.3.2 安装和返修 / 83
6.3.3 BGA I/O引脚的分配 / 86
6.3.4 信号的可访问性 / 87
6.4 I/O引脚与信号的分配 / 87
6.5 原理图符号设计 / 88
6.6 热设计 / 88
6.7 电路板的布局布线 / 89
6.7.1器件的摆放位置和方向 / 90
6.7.2测试和配置插座 / 91
6.8 信号完整性设计 / 91
6.9 供电设计 / 92
6.10 小结 / 94
第7章 设计实现 / 96
7.1 概述 / 96
7.2 架构设计 / 97
7.2.1 同步设计 / 97
7.2.2 扁平化设计与层次化设计 / 98
7.2.3 实现层次化设计 / 100
7.3 设计输入 / 101
7.3.1 HDL语言的双重性质 / 103
7.3.2 HDL编码指南 / 103
7.3.3 工具 / 106
7.4 RTL设计 / 106
7.5 综合 / 109
7.5.1 逻辑综合 / 109
7.5.2 物理综合 / 111
7.5.3 实现可综合的设计 / 111
7.5.4 设计推译与例化 / 112
7.6 布局布线 / 113
7.7 小结 / 114
第8章 设计仿真 / 117
8.1 概述 / 117
8.2 仿真的不同阶段 / 117
8.3 仿真文件的类型 / 119
8.4 仿真深度的把握 / 120
8.5 层次化设计与仿真 / 121
8.6 仿真的常见错误以及提示 / 122
8.7 小结 / 123
第9章 设计约束与优化 / 125
9.1 概述 / 125
9.2 设计约束管理 / 125
9.2.1 避免设计“过约束” / 126
9.2.2 综合约束 / 127
9.2.3 引脚约束 / 128
9.2.4 时序约束 / 131
9.2.5 面积约束和版图规划 / 133
9.2.6 约束实例 / 134
9.2.7 约束检查清单 / 135
9.3 设计优化 / 136
9.4 小结 / 139
第10章 配置 / 140
10.1 概述 / 140
10.2 配置方式 / 140
10.3 下载线 / 141
10.4 JTAG标准 / 142
10.5 设计的安全 / 144
10.6 小结 / 145
第11章 板级测试 / 146
11.1 概述 / 146
11.1.1 FPGA设计验证方法 / 146
11.1.2 FPGA内部关键信号的访问 / 147
11.1.3 边界扫描的支持 / 148
11.2 调试检查清单 / 149
11.3 小结 / 49
第12章 高级议题综述 / 150
12.1 概述 / 150
12.2 功耗问题 / 151
12.3 量产问题 / 151
12.4 小结 / 152
第13章 IP核 / 153
13.1 概述 / 153
13.2 IP类型 / 154
13.3 IP分类 / 156
13.4 IP分析比较 / 157
13.5 自行设计与购买的权衡 / 158
13.5.1 IP核的来源 / 159
13.5.2 IP核的评估 / 159
13.5.3 IP核供应商的评估 / 160
13.5.4 IP核的授权 / 162
13.6 IP核的集成 / 162
13.7 IP核的测试和调试 / 162
13.8 小结 / 163
第14章 嵌入式处理器内核 / 164
14.1 概述 / 164
14.2 基于FPGA 的嵌入式处理器类型 / 165
14.3 基于FPGA的嵌入式处理器的使用考虑 / 167
14.4 系统设计考虑 / 169
14.4.1 协同设计 / 169
14.4.2 处理器架构 / 170
14.4.3 处理器实现选项 / 173
14.4.4 处理器核和外设选择 / 175
14.4.5 硬件实现因素 / 176
14.4.6 软件实现因素 / 177
14.5 基于FPGA的嵌入式处理器概念举例 / 179
14.6 FPGA嵌入式处理器设计清单 / 185
14.7 小结 / 185
第15章 数字信号处理 / 187
15.1 概述 / 187
15.2 基本DSP系统 / 188
15.3 基本DSP术语 / 189
15.4 DSP架构 / 190
15.5 DSP中的并行执行 / 191
15.6 FPGA中的并行执行 / 192
15.7 何时采用FPGA来实现DSP功能 / 194
15.8 在FPGA上实现DSP设计的考虑因素 / 194
15.8.1 时钟方案和信号布线 / 195
15.8.2 流水线设计 / 195
15.8.3 算法实现选择 / 196
15.8.4 DSP IP / 196
15.9 FIR滤波器概念示例 / 197
15.10 小结 / 198
第16章 高级互联 / 200
16.1 概述 / 200
16.2 互联分类 / 200
16.3 高级 I/O接口的挑战 / 203
16.4 高级并行I/O接口示例 / 203
16.5 高级串行I/O接口示例 / 206
16.6 小结 / 207
第17章 系统整合 / 209
17.1 概述 / 209
17.2 需求定义阶段 / 210
17.3 架构设计阶段 / 212
17.4 设计实现阶段 / 215
17.5 设计验证阶段 / 216
17.6 原型交付阶段 / 218
17.7 小结 / 218
附录A FPGA快速系统原型设计技术参考资料 / 219
附录B 开发过程各阶段设计检查清单 / 233
附录C 缩写和缩略词 / 244
译后记 / 254

教学资源推荐
作者: (美)Stanley G.Burns Paul R.Bond
作者: 张英全 刘芸 樊爱华
作者: [美]理查德G.莱昂斯(Richard G.Lyons) D.李·富盖尔(D. Lee Fugal) 著
作者: [美]王加存(Jiacun Wang) 著
参考读物推荐
作者: (英)Robin Heydon 著
作者: [塞浦路斯] 多甘?易卜拉欣(Dogan Ibrahim)著
作者: 高显生 彭英杰 编著
作者: (英)Rob Toulson  Tim Wilmshurst 著