图书介绍
FPGA设计指南:器件、工具和流程pdf电子书版本下载
- (美)CLIVE“MAX”MAXFIELD著;杜生海 邢闻译 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115168627
- 出版时间:2007
- 标注页数:339页
- 文件大小:46MB
- 文件页数:353页
- 主题词:可编程序逻辑器件-系统设计
PDF下载
下载说明
FPGA设计指南:器件、工具和流程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概论 1
1.1 什么是FPGA 1
1.2 FPGA为什么令人感兴趣 1
1.3 FPGA的用途 2
1.4 本书内容 3
1.5 本书不包括什么 4
1.6 读者对象 4
第2章 基本概念 5
2.1 FPGA的核心 5
2.2 简单的可编程功能 5
2.3 熔丝连接技术 5
2.4 反熔丝技术 7
2.5 掩模编程器件 8
2.6 PROM 9
2.7 基于EPROM的技术 10
2.8 基于EEPROM的技术 12
2.9 基于闪存的技术 12
2.10 基于SRAM的技术 12
2.11 小结 13
第3章 FPGA的起源 15
3.1 相关的技术 15
3.2 晶体管 15
3.3 集成电路 16
3.4 SRAM/DRAM和微处理器 16
3.5 SPLD和CPLD 17
3.5.1 PROM 18
3.5.2 PLA 20
3.5.3 PAL和GAL 22
3.5.4 其他可编程选择 22
3.5.5 CPLD 23
3.5.6 ABEL、CUPL、PALASM、JEDEC等 24
3.6 专用集成电路(门阵列等) 25
3.6.1 全定制 26
3.6.2 Micromatrix和Micromosaic 26
3.6.3 门阵列 27
3.6.4 标准单元器件 28
3.6.5 结构化ASIC 29
3.7 FPGA 30
3.7.1 FPGA平台 32
3.7.2 FPGA-ASIC混合 33
3.7.3 FPGA厂商如何设计芯片 34
第4章 FPGA结构的比较 35
4.1 一点提醒 35
4.2 一些背景信息 35
4.3 反熔丝与SRAM与其他 36
4.3.1 基于SRAM的器件 36
4.3.2 以SRAM为基础器件的安全问题和解决方案 37
4.3.3 基于反熔丝的器件 37
4.3.4 基于EPROM的器件 39
4.3.5 基于E2PROM/FLASH的器件 39
4.3.6 FLASH-SRAM混合器件 39
4.3.7 小结 40
4.4 细粒、中等微粒和粗粒结构 40
4.5 MUX与基于LUT的逻辑块 41
4.5.1 基于MUX的结构 41
4.5.2 基于LUT的结构 42
4.5.3 基于MUX还是基于LUT 43
4.5.4 3、4、5或6输入LUT 44
4.5.5 LUT与分布RAM与SR 44
4.6 CLB、LAB与slices 45
4.6.1 Xlilinx逻辑单元 45
4.6.2 A1tera逻辑部件 46
4.6.3 slicing和dicing 46
4.6.4 CLB和LAB 47
4.6.5 分布RAM和移位寄存器 47
4.7 快速进位链 48
4.8 内嵌RAM 48
4.9 内嵌乘法器、加法器、MAC等 49
4.10 内嵌处理器核(硬的和软的) 50
4.10.1 硬微处理器核 50
4.10.2 软微处理器核 52
4.11 时钟树和时间管理器 52
4.11.1 时钟树 52
4.11.2 时钟管理器 53
4.12 通用I/O 55
4.12.1 可配置I/O标准 56
4.12.2 可配置I/O阻抗 56
4.12.3 核与I/O电压 57
4.13 吉比特传输 57
4.14 硬IP、软IP和固IP 58
4.15 系统门与实际的门 59
4.16 FPGA年 60
第5章 FPGA编程(配置) 62
5.1 引言 62
5.2 配置文件 62
5.3 配置单元 62
5.4 基于反熔丝的FPGA 63
5.5 基于SRAM的FPGA 64
5.5.1 迅速的过程欺骗了眼睛 65
5.5.2 对嵌入式(块)RAM、分布RAM编程 65
5.5.3 多编程链 66
5.5.4 器件的快速重新初始化 66
5.6 使用配置端口 66
5.6.1 FPGA作为主设备串行下载 67
5.6.2 FPGA作为主设备并行下载 68
5.6.3 FPGA作为从设备并行下载 69
5.6.4 FPGA作为从设备串行下载 70
5.7 使用JTAG端口 70
5.8 使用嵌入式处理器 71
第6章 谁在参与游戏 73
6.1 引言 73
6.2 FPGA和FPAA提供商 73
6.3 FPNA提供商 73
6.4 全线EDA提供商 74
6.5 专业FPGA和独立EDA提供商 74
6.6 使用专门工具的FPGA设计顾问 75
6.7 开源、免费和低成本的设计工具 75
第7章 FPGA与ASIC设计风格 77
7.1 引言 77
7.2 编码风格 77
7.3 流水线和逻辑层次 77
7.3.1 什么是流水线 77
7.3.2 电子系统中的流水线 78
7.3.3 逻辑层次 79
7.4 异步设计实践 80
7.4.1 异步结构 80
7.4.2 组合回路 80
7.4.3 延迟链 81
7.5 时钟考虑 81
7.5.1 时钟域 81
7.5.2 时钟平衡 81
7.5.3 门控时钟与使能时钟 81
7.5.4 PLL和时钟调节电路 82
7.5.5 跨时钟域数据传输的可靠性 82
7.6 寄存器和锁存器考虑 82
7.6.1 锁存器 82
7.6.2 具有“置位”和“复位”输入的触发器 82
7.6.3 全局复位和初始化条件 83
7.7 资源共享(时分复用) 83
7.7.1 使用它或者放弃它 83
7.7.2 其他内容 83
7.8 状态机编码 84
7.9 测试方法学 84
第8章 基于原理图的设计流程 85
8.1 往昔的时光 85
8.2 EDA初期 86
8.2.1 前端工具,如逻辑仿真 86
8.2.2 后端工具如版图设计 89
8.2.3 CAE+CAD=EDA 90
8.3 简单的原理图驱动ASIC设计流程 90
8.4 简单(早期)的原理图驱动FPGA设计流程 91
8.4.1 映射 92
8.4.2 包装 93
8.4.3 布局和布线 94
8.4.4 时序分析和布局布线后仿真 94
8.5 平坦的原理图与分层次的原理图 95
8.5.1 沉闷的扁平原理图 95
8.5.2 分等级(基于模块)的原理图 96
8.6 今天的原理图驱动设计流程 97
第9章 基于HDL的设计流程 98
9.1 基于原理图流程的问题 98
9.2 基于HDL设计流程的出现 98
9.2.1 不同的抽象层次 98
9.2.2 早期基于HDL的ASIC设计流程 99
9.2.3 早期基于HDL的FPGA设计流程 101
9.2.4 知道结构的FPGA流程 102
9.2.5 逻辑综合与基于物理的综合 102
9.3 图形设计输入的生活 103
9.4 绝对过剩的HDL 104
9.4.1 Verilog HDL 104
9.4.2 VHDL和VITAL 106
9.4.3 混合语言设计 108
9.4.4 UDL/I 108
9.4.5 Superlog和SystemVerilog 108
9.4.6 SystemC 109
9.5 值得深思的事 110
9.5.1 担心,非常担心 110
9.5.2 串行与并行多路复用器 110
9.5.3 小心锁存器 111
9.5.4 聪明地使用常量 111
9.5.5 资源共用考虑 112
9.5.6 还有一些不可忽视的内容 113
第10章 FPGA设计中的硅虚拟原型 114
10.1 什么是硅虚拟原型 114
10.2 基于ASIC的SVP方法 114
10.2.1 门级SVP(由快速综合产生) 115
10.2.2 门级SVP(由基于增益的综合产生) 115
10.2.3 团簇SVP 117
10.2.4 基于RTL的SVP 117
10.3 基于FPGA的SVP 119
10.3.1 交互式操作 120
10.3.2 增量式布局布线 121
10.3.3 基于RTL的FPGA SVP 121
第11章 基于C/C++等语言的设计流程 122
11.1 传统的HDL设计流程存在的问题 122
11.2 C对C++与并行执行对顺序执行 124
11.3 基于SystemC的设计流程 125
11.3.1 什么是SystemC以及它从哪里来 125
11.3.2 SystemC 1.0 125
11.3.3 SystemC 2.0 126
11.3.4 抽象级 127
11.3.5 基于SystemC设计流程的可选方案 127
11.3.6 要么喜爱它,要么讨厌它 129
11.4 基于增强型C/C++的设计流程 129
11.4.1 什么是增强型C/C++ 129
11.4.2 可选择的增强型C/C++设计流程 131
11.5 基于纯C/C++的设计流程 132
11.6 综合的不同抽象级别 134
11.7 混合语言设计和验证环境 136
第12章 基于DSP的设计流程 138
12.1 DSP简介 138
12.2 可选择的DSP实现方案 139
12.2.1 随便选一个器件,不过不要让我看到是哪种器件 139
12.2.2 系统级评估和算法验证 139
12.2.3 在DSP内核中运行的软件 140
12.2.4 专用DSP硬件 141
12.2.5 与DSP相关的嵌入式FPGA资源 143
12.3 针对DSP的以FPGA为中心的设计流程 144
12.3.1 专用领域语言 144
12.3.2 系统级设计和仿真环境 145
12.3.3 浮点与定点表示 146
12.3.4 系统/算法级向RTL的转换(手工转换) 146
12.3.5 系统/算法级向RTL的转换(自动生成) 147
12.3.6 系统/算法级向C/C++的转换 148
12.3.7 模块级IP环境 150
12.3.8 别忘了测试平台 150
12.4 DSP与VHDL/Verilog混合设计环境 151
第13章 基于嵌入式处理器的设计流程 153
13.1 引言 153
13.2 硬核与软核 154
13.2.1 硬核 154
13.2.2 微处理器软核 156
13.3 将设计划分为硬件和软件部分 157
13.4 硬件和软件的世界观 159
13.5 利用FPGA作为自身的开发环境 160
13.6 增强设计的可见性 161
13.7 其他一些混合验证方法 161
13.7.1 RTL(VHDL或Verilog) 162
13.7.2 C/C++、SystemC等 162
13.7.3 硬件模拟器中的物理芯片 163
13.7.4 指令集仿真器 163
13.8 一个相当巧妙的设计环境 165
第14章 模块化设计和增量设计 167
14.1 将设计作为一个大的模块进行处理 167
14.2 将设计划分为更小的模块 168
14.2.1 模块化设计 169
14.2.2 增量设计 169
14.2.3 存在的问题 170
14.3 总有其他办法 171
第15章 高速设计与其他PCB设计注意事项 172
15.1 开始之前 172
15.2 我们都很年轻,因此 172
15.3 变革的时代 173
15.4 其他注意事项 175
15.4.1 高速设计 175
15.4.2 信号完整性分析 175
15.4.3 SPICE与IBIS 176
15.4.4 起动功率 176
15.4.5 使用内部末端阻抗 176
15.4.6 串行或并行处理数据 177
第16章 观察FPGA的内部节点 178
16.1 缺乏可见性 178
16.2 使用多路复用技术 179
16.3 专用调试电路 180
16.4 虚拟逻辑分析仪 180
16.5 虚拟线路 181
16.5.1 问题描述 181
16.5.2 虚拟线路解决方案 183
第17章 IP 185
17.1 IP的来源 185
17.2 人工优化的IP 185
17.2.1 未加密的RTL级IP 186
17.2.2 加密的RTL级IP 186
17.2.3 未经布局布线的网表级IP 186
17.2.4 布局布线后的网表级IP 186
17.3 IP核生成器 187
17.4 综合资料 187
第18章 ASIC设计与FPGA设计之间的移植 189
18.1 可供选择的设计方法 189
18.1.1 只做FPGA设计 189
18.1.2 FPGA之间的转换 189
18.1.3 FPGA到ASIC的转换 190
18.1.4 ASIC到FPGA的转换 191
第19章 仿真、综合、验证等设计工具 193
19.1 引言 193
19.2 仿真(基于周期、事件驱动等) 193
19.2.1 什么是事件驱动逻辑仿真器 193
19.2.2 事件驱动逻辑仿真器发展过程简述 195
19.2.3 逻辑值与不同逻辑值系统 196
19.2.4 混合语言仿真 197
19.2.5 其他延迟格式 198
19.2.6 基于周期的仿真器 201
19.2.7 选择世界上最好的逻辑仿真器 202
19.3 综合(逻辑/HDL综合与物理综合) 203
19.3.1 逻辑/HDL综合技术 203
19.3.2 物理综合技术 203
19.3.3 时序重调、复制及二次综合 204
19.3.4 选择世界上最好的综合工具 206
19.4 时序分析(静态与动态) 206
19.4.1 静态时序分析 206
19.4.2 统计静态时序分析 207
19.4.3 动态时序分析 207
19.5 一般验证 208
19.5.1 验证IP 208
19.5.2 验证环境和创建testbench 210
19.5.3 分析仿真结果 211
19.6 形式验证 211
19.6.1 形式验证的不同种类 212
19.6.2 形式验证究竟是什么 212
19.6.3 术语及定义 213
19.6.4 其他可选的断言/属性规范技术 214
19.6.5 静态形式验证和动态形式验证 216
19.6.6 各种语言的总结 217
19.7 混合设计 218
19.7.1 HDL语言到C语言的转换 218
19.7.2 代码覆盖率 219
19.7.3 性能分析 220
第20章 选择合适的器件 221
20.1 丰富的选择 221
20.2 要是有选型工具就好了 221
20.3 工艺 222
20.4 基本资源和封装 223
20.5 通用I/O接口 223
20.6 嵌入式乘法器、RAM等 224
20.7 嵌入式处理器核 224
20.8 吉比特I/O能力 224
20.9 可用的IP 224
20.10 速度等级 225
20.11 轻松的注解 226
第21章 吉比特收发器 227
21.1 引言 227
21.2 差分对 228
21.3 多种多样的标准 229
21.4 8bit/10bit编码等 230
21.5 深入收发器模块内部 231
21.6 组合多个收发器 233
21.7 可配置资源 234
21.7.1 逗号检测 234
21.7.2 差分输出摆幅 234
21.7.3 片内末端电阻 234
21.7.4 预加重 234
21.7.5 均衡化 235
21.8 时钟恢复、抖动和眼图 236
21.8.1 时钟恢复 236
21.8.2 抖动和眼图 237
第22章 可重配置计算 239
22.1 可动态重配置逻辑 239
22.2 可动态重配置互连线 239
22.3 可重配置计算 240
第23章 现场可编程节点阵列 243
23.1 引言 243
23.2 算法评估 244
23.3 picoChip公司的picoArray技术 245
23.3.1 一个理想的picoArray应用:无线基站 246
23.3.2 picoArray设计环境 247
23.4 QuickSilver公司的ACM技术 247
23.4.1 设计混合节点 249
23.4.2 系统控制器节点、输入输出节点及其他节点 249
23.4.3 空间与时间分割 250
23.4.4 在ACM上创建和运行程序 251
23.4.5 还有更多的内容 252
23.5 这就是硅,但与我们知道的并不相同 252
第24章 独立的设计工具 253
24.1 引言 253
24.2 ParaCore Architect 253
24.2.1 产生浮点处理功能模块 254
24.2.2 产生FFT功能模块 254
24.2.3 基于网络的接口 255
24.3 Confluence系统设计语言 256
24.3.1 一个简单的例子 256
24.3.2 还有更多的功能 258
24.3.3 免费评估版本 259
24.4 你是否具有这种工具 259
第25章 创建基于开源的设计流程 260
25.1 如何白手起家创办一家FPGA设计工作室 260
25.2 开发平台:Linux 260
25.3 验证环境 262
25.3.1 Icarus Verilog 263
25.3.2 Dinotrace和GTKWave 263
25.3.3 Covered代码覆盖率工具 263
25.3.4 Verilator 263
25.3.5 Python 264
25.4 形式验证 264
25.4.1 开源模型检查 265
25.4.2 基于开源的自动推断 265
25.4.3 真正的问题是什么 266
25.5 访问公共IP元件 266
25.5.1 OpenCores 266
25.5.2 OVL 267
25.6 综合与实现工具 267
25.7 FPGA开发板 267
25.8 综合材料 267
第26章 FPGA未来的发展 269
26.1 一种担忧 269
26.2 下一代结构和技术 269
26.2.1 十亿晶体管级器件 269
26.2.2 超快速I/O 270
26.2.3 超快速配置 270
26.2.4 更多的硬IP 271
26.2.5 模拟与混合信号器件 271
26.2.6 ASMBL与其他结构 272
26.2.7 不同的结构粒度 272
26.2.8 ASIC结构中的嵌入式FPGA内核 273
26.2.9 ASIC和FPGA结构中嵌入FPNA内核或者相反 273
26.2.10 基于MRAM的器件 273
26.3 设计工具 273
26.4 期待意外的发生 274
附录A 信号完整性简介 275
附录B 深亚微米延迟效应 285
附录C 线性移位寄存器 299
术语表 310
索引 326