第1章 引言 1
1.1 数字集成电路的分类 2
1.1.1 标准逻辑器件 2
1.1.2 微处理器 2
1.1.3 可编程逻辑器件 3
1.2 NiosⅡ软核处理器 3
1.2.1 NiosⅡ软核处理器系统简介 4
1.2.2 可配置软核处理器的优点 5
第2章 现场可编程门阵列器件 6
2.1 可编程逻辑器件概述 7
2.2 可编程逻辑器件的发展历程 7
2.2.1 简单PLD的基本结构 8
2.2.2 FPGA的基本结构 12
2.3 Altera公司CycloneⅡ器件的工作原理 14
2.4 CycloneⅡ系列器件的主要技术指标 19
2.5 小结 22
第3章 QuartusⅡ开发软件的使用&. 23
3.1 简介 24
3.2 创建工程 25
3.3 设计输入 29
3.3.1 建立文本设计文件 30
3.3.2 建立图形设计文件 31
3.3.3 层次化设计 33
3.4 设计的编译 35
3.5 设计的仿真验证 37
3.5.1 创建仿真波形文件 37
3.5.2 设计仿真 39
3.6 引脚分配 41
3.7 器件配置 42
3.8 小结 44
第4章 VHDL语言基础 45
4.1 VHDL的历史 46
4.2 VHDL的程序结构 46
4.2.1 VHDL程序的基本结构 47
4.2.2 实体 47
4.2.3 结构体 49
4.2.4 包集 50
4.2.5 库 50
4.3 VHDL的语言元素 52
4.3.1 标识符 52
4.3.2 对象类别与定义 52
4.3.3 数据类型 54
4.3.4 运算符 56
4.4 并行语句 58
4.4.1 并行信号赋值语句 59
4.4.2 进程语句 61
4.5 顺序语句 62
4.5.1 顺序信号赋值语句 62
4.5.2 条件(IF)语句 62
4.5.3 选择(CASE)语句 66
4.5.4 循环(LOOP)语句 68
4.5.5 空操作(NULL)语句 69
4.6 小结 69
第5章 NiosⅡ软核处理器系统的开发过程 71
5.1 概述 72
5.2 配置NiosⅡ软核处理器系统 73
5.2.1 创建NiosⅡ软核处理器系统 74
5.2.2 配置NiosⅡ软核处理器系统 75
5.3 产生NiosⅡ软核处理器系统 79
5.3.1 产生NiosⅡ软核处理器系统模块 79
5.3.2 NiosⅡ软核处理器系统的产生 80
5.4 创建NiosⅡIDE环境下的应用工程 81
5.4.1 NiosⅡIDE工程创建 81
5.4.2 C语言源文件的编辑 83
5.4.3 C语言源文件的编译 85
5.5 C语言源程序的调试 86
5.5.1 在目标电路板上运行程序 86
5.5.2 在目标电路板上调试程序 88
5.5.3 配置目标FPGA器件 89
5.6 小结 90
第6章 NiosⅡ软核处理器——程序运行时间的测量 91
6.1 NiosⅡ软核处理器的结构 92
6.2 NiosⅡ软核处理器 94
6.2.1 “Core NiosⅡ”选项卡 94
6.2.2 “Caches and Memory Interfaces”选项卡 96
6.2.3 “Advanced Features”选项卡 98
6.2.4 “JTAG Debug Module选项卡 98
6.2.5 “Custom Instructions”选项卡 100
6.3 程序运行时间的测量 101
6.3.1 程序运行时间的测量方法 102
6.3.2 NiosⅡ软核处理器对程序运行时间的影响 103
6.4 浮点专用指令的使用 105
6.4.1 浮点专用指令的添加 105
6.4.2 浮点专用指令测试程序 106
6.4.3 浮点专用指令测试结果 108
6.5 小结 109
第7章 8段数码管显示电路——并行输入/输出(PIO)内核的使用 110
7.1 8段数码管 111
7.2 并行输入/输出(PIO)内核 112
7.2.1 并行输入/输出(PIO)内核的寄存器 113
7.2.2 并行输入/输出(PIO)内核的配置 113
7.2.3 C语言编程 114
7.3 1位数码管的显示实验 115
7.3.1 产生数码管的显示控制电路 115
7.3.2 数码管显示控制程序 116
7.3.3 目标芯片的配置 119
7.4 多位数码管显示实验 119
7.4.1 多位数码管显示控制电路 119
7.4.2 4位数码管显示驱动函数 121
7.4.3 4位数据的分离 121
7.5 小结 123
第8章 按键电路——中断的应用 124
8.1 按键电路 125
8.2 并行输入/输出(PIO)内核的中断 126
8.2.1 并行输入/输出(PIO)内核涉及中断的相关寄存器 126
8.2.2 并行输入/输出(PIO)内核中断的配置 127
8.2.3 C语言编程 130
8.3 NiosⅡ处理器的中断 132
8.3.1 异常 132
8.3.2 C语言编程 133
8.4 1位按键电路的实验 134
8.4.1 产生按键的控制电路 134
8.4.2 1位按键控制程序 135
8.4.3 数据类型 137
8.4.4 alt_main()和main()的区别 138
8.5 4位按键电路的实验 138
8.5.1 4位按键控制电路 138
8.5.2 4位按键控制程序 139
8.6 小结 142
第9章 Flash的编程——EPCS控制器、CFI控制器的使用 144
9.1 EPCS控制器 145
9.1.1 EPCS控制器概述 145
9.1.2 EPCS控制器配置 146
9.2 CFI控制器 147
9.2.1 CFI控制器概述 147
9.2.2 CFI控制器配置选项 148
9.2.3 CFI控制器C语言编程 149
9.3 Flash的编程实例 150
9.3.1 硬件系统的SOPC设计——从EPCS引导程序方式 150
9.3.2 系统软件设计——从EPCS引导程序方式 152
9.3.3 从CFI_FLASH引导程序方式 154
9.4 小结 155
第10章 时钟信号的产生与测量——定时器(Interval Timer)内核的使用 157
10.1 定时器内核 158
10.1.1 定时器内核的组成 158
10.1.2 定时器内核的寄存器 158
10.1.3 定时器(Interval Timer)内核的配置 160
10.1.4 C语言编程 161
10.2 时钟信号产生实验 162
10.2.1 时钟信号产生电路 162
10.2.2 时钟信号产生电路控制程序 164
10.3 定时器(Interval Timer)内核的中断实验 165
10.4 信号的周期测量 167
10.4.1 信号周期测量电路 167
10.4.2 周期测量控制程序 169
10.5 “看门狗”电路实验 170
10.5.1 “看门狗”电路 170
10.5.2 “看门狗”电路控制程序 172
10.6 小结 173
第11章 LCD12864液晶模块的驱动设计——SDRAM控制器内核的使用 175
11.1 LCD12864液晶模块简介 176
11.2 SDRAM控制器内核 179
11.2.1 概述 179
11.2.2 SDRAM控制器内核的配置选项 181
11.2.3 时钟、PLL和时序 184
11.2.4 SDRAM内核的C语言编程 186
11.3 LCD12864模块的驱动实例 187
11.3.1 LCD12864模块接口电路 187
11.3.2 硬件系统的SOPC设计 189
11.3.3 系统软件设计 192
11.4 小结 204
第12章 JTAG UART通信——JTAG UART内核的使用 205
12.1 JTAG UART内核 206
12.1.1 JTAG UART内核概述 206
12.1.2 JTAG UART内核配置选项 208
12.1.3 JTAG UART内核的C语言编程 210
12.2 JTAG UART通信实例 210
12.2.1 硬件系统的SOPC设计 210
12.2.2 系统软件设计 212
12.3 小结 215
第13章 SD卡读写控制设计——SPI内核的使用 216
13.1 SD卡简介 217
13.2 SPI内核 219
13.2.1 SPI内核综述 219
13.2.2 SPI内核配置选项 221
13.2.3 SPI的C语言编程 223
13.3 SD卡读写实例 224
13.3.1 SD卡与FPGA接口电路 224
13.3.2 硬件系统的SOPC设计 224
13.3.3 系统软件设计 227
13.4 小结 236
第14章 数字信号频率测量电路的设计 237
14.1 频率测量原理和电路设计要求 238
14.2 频率测量电路的系统设计 238
14.3 频率测量电路的单元电路设计 240
14.3.1 计数器电路 240
14.3.2 计数器控制电路 242
14.3.3 NiosⅡ软核处理器系统 245
14.4 频率测量电路的系统调试 248
14.4.1 系统集成 248
14.4.2 测试方案和使用仪器 250
14.4.3 测量数据及数据分析 250
14.5 设计总结 251
第15章 信号频谱分析电路的设计 252
15.1 频谱的概念 253
15.2 离散傅里叶变换 253
15.3 信号频谱分析电路的系统设计 255
15.4 信号频谱分析电路的单元电路设计 256
15.4.1 频谱分析模块 256
15.4.2 采样速率控制电路 264
15.5 信号频谱分析电路的系统调试 268
15.5.1 系统集成 268
15.5.2 信号频谱分析程序框图 270
15.5.3 系统测量和数据分析 271
15.6 设计总结 272
参考文献 274