第1章 绪论 1
1.1 集成技术与可编程逻辑器件 1
1.1.1 可编程逻辑器件 1
1.1.2 CPLD和FPGA 2
1.2 电子系统设计与VHDL 3
1.2.1 传统系统的设计方法 3
1.2.2 VHDL与“自项向下”的设计方法 4
1.3 EDA、VHDL及其应用 5
1.3.1 EDA 5
1.3.2 VHDL特点 6
1.3.3 VHDL设计流程及应用 7
第2章 测试系统构成及控制模块主要功能 13
2.1 测试系统的基本组成 13
2.1.1 系统模型 13
2.1.2 系统基本组成 13
2.2 控制模块的实现形式 14
2.2.1 基于可编程逻辑器件的设计与实现 14
2.2.2 基于单片机的设计与实现 17
2.3 控制模块主要控制功能 19
2.3.1 ADC控制 19
2.3.2 存储器的控制 21
2.3.3 接口的控制 24
习题 25
第3章 控制模块设计方法 26
3.1 数字逻辑电路设计方法概述 26
3.1.1 通用逻辑器件设计方法 26
3.1.2 ASIC及可编程逻辑器件设计方法 29
3.2 控制模块的状态设计 33
3.2.1 状态图及其组成 33
3.2.2 控制模块状态图设计 34
3.3 系统功能模块划分与接口 37
3.3.1 模块划分原则 37
3.3.2 功能模块划分 38
3.3.3 常用接口与总线 38
习题 42
第4章 基于VHDL的控制模块设计流程 43
4.1 VHDL设计一般流程 43
4.1.1 VHDL实际流程 43
4.1.2 仿真软件 44
4.2 设计输入与功能仿真 45
4.2.1 指定设计项目名称 45
4.2.2 创建新的设计文件 45
4.2.3 VHDL程序设计 46
4.2.4 功能仿真 46
4.3 项目编译与时序仿真 49
4.3.1 编译过程 49
4.3.2 编译器组成及说明 49
4.3.3 编译相关参数选取与设置 50
4.3.4 编译文件 52
4.3.5 时序仿真 52
4.4 器件下载编程和配置 53
习题 54
第5章 VHDL基础 55
5.1 硬件描述语言概述 55
5.2 VHDL的数据对象 55
5.2.1 常量 56
5.2.2 变量 57
5.2.3 信号 58
5.3 VHDL的数据类型 59
5.3.1 标准的数据类型 60
5.3.2 标准逻辑位数据类型 62
5.3.3 用户自定义数据类型 63
5.4 VHDL的运算符 69
5.4.1 逻辑运算符 69
5.4.2 关系运算符 70
5.4.3 算术运算符 70
5.4.4 并置运算符 71
5.5 VHDL的程序结构 72
5.5.1 库及程序包 73
5.5.2 实体 74
5.5.3 结构体 75
5.5.4 配置 76
习题 76
第6章 VHDL语句 78
6.1 VHDL程序结构 78
6.1.1 VHDL的特点 78
6.1.2 VHDL程序结构 79
6.2 顺序语句 82
6.2.1 赋值语句 82
6.2.2 IF语句 83
6.2.3 CASE语句 85
6.2.4 LOOP语句 87
6.2.5 WAIT语句 89
6.3 并行语句 90
6.3.1 进程语句 91
6.3.2 块语句 92
6.3.3 并行赋值语句 94
6.3.4 元件例化语句 97
习题 99
第7章 基于VHDL的状态机设计 101
7.1 状态机设计基础 101
7.1.1 状态机的分类 101
7.1.2 状态机的描述方法 102
7.1.3 状态机的设计步骤 102
7.2 NAND Flash块擦除模块状态机设计 103
习题 107
第8章 A/D控制模块的VHDL设计与实现 108
8.1 A/D概述 108
8.2 采样定理 110
8.2.1 时域采样定理 110
8.2.2 频域采样定理 111
8.3 并行A/D 111
8.3.1 典型并行A/D——AD7492概述 111
8.3.2 并行A/D控制命令 113
8.4 串行A/D 116
8.4.1 典型串行A/D——AD7274概述 116
8.4.2 串行A/D控制命令 117
习题 122
第9章 存储器控制模块的VHDL设计与实现 124
9.1 存储器分类及使用特点 124
9.1.1 SRAM存储器 124
9.1.2 Flash存储器 125
9.1.3 铁电存储器 125
9.2 SRAM存储器及其控制 125
9.2.1 SRAM基本结构 125
9.2.2 SRAM基本操作与VHDL设计 126
9.3 Flash存储器概述 130
9.3.1 Flash的基本结构 130
9.3.2 NAND Flash访问方法 132
9.4 Flash存储器控制 133
9.4.1 Flash擦除 133
9.4.2 Flash无效块检测 136
9.4.3 Flash页编程 139
9.4.4 Flash读操作 142
习题 146
第10章 异步串行通信(UART)模块设计 147
10.1 UART协议简介 147
10.1.1 UART接口标准 147
10.1.2 UART通信协议 148
10.2 UART协议控制器FPGA实现 148
10.2.1 UART接口实现原理与方案 149
10.2.2 波特率时钟生成模块设计 150
10.2.3 数据接收/发送逻辑模块设计 150
10.2.4 数据奇偶校验模块设计 156
10.2.5 串并转换模块设计 157
10.2.6 数据接收/发送FIFO模块设计 158
10.3 测试仿真与设计调试注意事项 159
10.3.1 测试仿真 159
10.3.2 设计调试注意事项 160
习题 161
第11章 数字电路开发常用设计方法 162
11.1 毛刺现象及消除方法 162
11.2 几种逻辑器件及信号清零方法 163
11.2.1 触发器及锁存器 163
11.2.2 信号清零方法 164
11.3 数字电路中的同步设计 165
11.4 数字电路时延电路产生及用法 167
11.5 数字电路中的时钟设计 167
11.5.1 全局时钟 168
11.5.2 门控制时钟 168
11.5.3 多级逻辑时钟 168
11.5.4 行波时钟 168
11.5.5 多时钟系统 169
习题 171
参考文献 172