第1章 绪论 2
第2章 FPGA基础知识 3
2.1 引言 3
2.2 FPGA的发展 3
2.3 可编程逻辑器件 3
2.4 现场可编程门阵列 6
2.5 FPGA设计技术 7
2.6 FPGA的设计约束 7
2.7 小结 8
第3章 VHDL基础 9
3.1 引言 9
3.2 实体:模型接口 10
3.2.1 实体定义 10
3.2.2 端口 10
3.2.3 通用属性语句 10
3.2.4 常数 11
3.2.5 实体举例 11
3.3 构造体:模型的行为 11
3.3.1 构造体的基本定义 11
3.3.2 构造体声明 12
3.3.3 构造体语句 12
3.4 进程:VHDL中的基本功能单元 12
3.5 基本的变量类型和操作符 13
3.5.1 常数 13
3.5.2 信号 13
3.5.3 变量 14
3.5.4 布尔操作符 14
3.5.5 算术操作符 14
3.5.6 比较操作符 15
3.5.7 移位函数 15
3.5.8 拼接 15
3.6 判断与循环 15
3.6.1 if-then-else语句 15
3.6.2 case语句 16
3.6.3 for语句 17
3.6.4 While循环 17
3.6.5 exit语句 17
3.6.6 next语句 17
3.7 层次化设计 18
3.7.1 函数 18
3.7.2 包 18
3.7.3 元件 19
3.7.4 过程 20
3.8 调试模型 20
3.9 基本数据类型 20
3.9.1 基本类型 20
3.9.2 数据类型:bit 20
3.9.3 数据类型:boolean 21
3.9.4 数据类型:integer 21
3.9.5 数据类型:字符型 21
3.9.6 数据类型:实数 21
3.9.7 数据类型:时间 22
3.10 小结 22
第4章 设计自动化与FPGA测试 23
4.1 仿真 23
4.1.1 测试平台 23
4.1.2 测试平台的目标 23
4.1.3 简单的测试平台:实例化元件 23
4.1.4 增加测试激励 24
4.2 库 25
4.2.1 引言 25
4.2.2 库的使用 26
4.2.3 标准逻辑库 26
4.2.4 std_logic类型定义 27
4.3 综合 28
4.3.1 综合设计流程 28
4.3.2 综合相关事项 28
4.3.3 RTL设计流程 29
4.4 物理设计流程 29
4.5 布局布线 30
4.6 时序分析 30
4.7 设计缺陷 30
4.8 FPGA设计中的VHDL问题 31
4.8.1 初始化 31
4.8.2 浮点数及其操作 31
4.9 小结 31
第二部分 应用
第5章图像与高速处理 34
5.1 引言 34
5.2 摄像头接口 35
5.2.1 硬件接口 35
5.2.2 数据率 35
5.2.3 拜尔模式 35
5.2.4 存储器需求 35
5.3 开始 37
5.4 确定接口 38
5.5 定义顶层设计 38
5.6 系统模块定义与接口 38
5.6.1 系统分解 38
5.6.2 鼠标和键盘接口 39
5.6.3 存储器接口 39
5.6.4 显示接口:VGA 39
5.7 摄像头连接接口 40
5.8 PC接口 40
5.9 小结 41
第6章 嵌入式处理器 42
6.1 引言 42
6.2 一个简单的嵌入式处理器 42
6.2.1 嵌入式处理器架构 42
6.2.2 基本指令 43
6.2.3 取指执行周期 44
6.2.4 嵌入式处理器的寄存器分配 45
6.2.5 一个基本的指令集 45
6.2.6 结构级还是行为级 46
6.2.7 机器码指令集 47
6.2.8 微处理器的结构单元 47
6.2.9 处理器函数包 48
6.2.10 程序计数器 49
6.2.11 指令寄存器 50
6.2.12 算术和逻辑单元 51
6.2.13 存储器 52
6.2.14 微控制器 54
6.2.15 简单微处理器总结 58
6.3 FPGA中的软核处理器 58
6.4 小结 58
第三部分 设计工具箱
第7章 串行通信 60
7.1 引言 60
7.2 曼彻斯特编解码 60
7.3 不归零编解码 63
7.4 不归零反转编解码 63
7.5 RS-232 65
7.5.1 引言 65
7.5.2 RS-232波特率产生器 65
7.5.3 RS-232接收器 66
7.6 通用串行总线 69
7.7 小结 71
第8章 数字滤波器 72
8.1 引言 72
8.2 S域到Z域的变换 72
8.3 用VHDL实现Z域的函数 74
8.3.1 引言 74
8.3.2 增益模块 74
8.3.3 和与差 75
8.3.4 除法模型 76
8.3.5 单位延迟模型 77
8.4 基本低通滤波器模型 78
8.5 FIR滤波器 81
8.6 IIR滤波器 82
8.7 小结 82
第9章 安全系统 83
9.1 块加密简介 83
9.2 费斯特尔格子的结构 83
9.3 数据加密标准 85
9.3.1 引言 85
9.3.2 DES的VHDL实现 87
9.3.3 DES的验证 91
9.4 高级加密标准 92
9.5 小结 109
第10章 存储器 110
10.1 引言 110
10.2 用VHDL对存储器进行建模 110
10.3 只读存储器 111
10.4 随机存取存储器 112
10.5 SRAM 114
10.6 Flash存储器 115
10.7 小结 117
第11章PS/2鼠标接口 118
11.1 引言 118
11.2 PS/2鼠标基础 118
11.3 PS/2鼠标命令 118
11.4 PS/2鼠标数据包 118
11.5 PS/2操作模式 119
11.6 PS/2滚轮鼠标 119
11.7 基本PS/2鼠标处理模块VHDL代码.119
11.8 修改后的PS/2鼠标处理模块VHDL代码 120
11.9 小结 121
第12章 PS/2键盘接口 122
12.1 引言 122
12.2 PS/2键盘基础 122
12.3 PS/2键盘命令 122
12.4 PS/2键盘数据包 122
12.5 PS/2键盘操作模式 123
12.5.1 基本PS/2键盘处理模块VHDL代码 123
12.5.2 修改后的PS/2键盘处理模块VHDL代码 123
12.6 小结 125
第13章 一个简单的VGA接口 126
13.1 引言 126
13.2 基本像素时序 126
13.3 图像处理 126
13.4 VGA接口的VHDL实现 127
13.5 水平同步 128
13.6 垂直同步 129
13.7 水平和垂直消隐脉冲 130
13.8 计算正确的像素数据 131
13.9 小结 131
第四部分 优化设计
第14章 综合 134
14.1 引言 134
14.2 RTL综合支持的VHDL 134
14.2.1 初始条件 134
14.2.2 并发边沿 135
14.2.3 数字类型 135
14.2.4 wait语句 135
14.2.5 断言 136
14.2.6 循环 136
14.3 一些引起综合失败的情况 136
14.4 综合的内容 136
14.4.1 总体设计结构 136
14.4.2 控制器 137
14.4.3 数据路径 138
14.5 小结 139
第15章 VHDL行为建模 140
15.1 引言 140
15.2 怎样从RTL转向行为级 140
15.3 小结 143
第16章 设计优化 144
16.1 引言 144
16.2 逻辑优化技术 144
16.3 改善性能 145
16.4 关键路径分析 146
16.5 小结 147
第17章 VHDL-AMS 148
17.1 引言 148
17.2 VHDL-AMS简介 148
17.3 模拟引脚:TERMINAL 149
17.4 混合域建模 150
17.5 模拟变量:quantity 150
17.6 VHDL-AMS中的联立方程 151
17.7 一个VHDL-AMS的例子 151
17.7.1 直流电压源 151
17.7.2 电阻 152
17.8 VHDL-AMS中的微分方程 152
17.9 用VHDL-AMS进行混合信号建模.154
17.10 一个基本的开关模型 156
17.11 基本VHDL-AMS比较器模型 157
17.12 多领域建模 159
17.13 小结 160
第18章 设计优化举例:DES 161
18.1 引言 161
18.2 数据加密标准 161
18.3 MOODS 161
18.4 初始设计 161
18.4.1 简介 161
18.4.2 总体结构 162
18.4.3 数据转换 164
18.4.4 密钥转换 166
18.5 初始综合 167
18.6 优化数据路径 168
18.7 最终综合 170
18.8 结果 170
18.9 三重DES 171
18.9.1 引言 171
18.9.2 面积最小:迭代实现 171
18.9.3 延迟最小:流水线方式 173
18.10 方案比较 174
18.11 小结 175
第五部分 基本技术
第19章 计数器 178
19.1 引言 178
19.2 基本二进制计数器 178
19.3 综合简单的二进制计数器 180
19.4 移位寄存器 183
19.5 约翰逊计数器 184
19.6 BCD计数器 185
19.7 小结 186
第20章 锁存器、触发器和寄存器 187
20.1 引言 187
20.2 锁存器 187
20.3 触发器 188
20.4 寄存器 191
20.5 小结 192
第21章 串并转换与并串转换 193
21.1 串并转换 193
21.2 并串转换 194
21.3 小结 195
第22章 ALU功能 196
22.1 引言 196
22.2 逻辑功能 196
22.3 1位加法器 198
22.4 n位结构化加法器 200
22.5 n位可配置加法器 200
22.6 2的补码 201
22.7 小结 203
第23章 译码器与多路复用器 204
23.1 译码器 204
23.2 多路复用器 206
23.3 小结 208
第24章 VHDL中的有限状态机 209
24.1 引言 209
24.2 状态转移图 209
24.3 用VHDL实现有限状态机 210
24.4 小结 211
第25章 VHDL中的定点算法 212
25.1 引言 212
25.2 基本定点类型 213
25.3 定点函数 214
25.3.1 定点数向std_logic_vector的转换 214
25.3.2 定点数向实数的转换 215
25.4 测试定点数函数 216
25.5 小结 218
第26章 二进制乘法 219
26.1 引言 219
26.2 基本二进制乘法 219
26.3 VHDL无符号乘法器 220
26.4 乘法函数的综合 222
26.5 “简单的”乘法 223
26.6 小结 225
第27章 参考书目 226
27.1 引言 226
27.2 VHDL参考书 226
27.3 FPGA参考书 226
27.4 普通数字设计参考书 227
索引 228