描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787512410497
内容简介
本书主要讲解FPGA的程序设计,以一款热销的FPGA开发板为例,介绍学习FPGA和使用Verilog,以及FPGA开发板的硬件配置,重点是第3章的16个典型实例程序,由简单到复杂,*后是FPGA的设计心得。
本书适合电子、通信、自动化等相关专业的本科生以及从事FPGA开发/IC设计/PCB等相关职业的初学者阅读参考。
本书适合电子、通信、自动化等相关专业的本科生以及从事FPGA开发/IC设计/PCB等相关职业的初学者阅读参考。
目 录
第1章 FPGA 概述…………………………………………………………………… 1
1.1 为什么要学习FPGA ………………………………………………………… 1
1.2 学习FPGA 的几个疑点……………………………………………………… 2
1.2.1 选择VHDL还是Verilog ……………………………………………… 2
1.2.2 NIOS重要还是Verilog重要…………………………………………… 2
1.3 FPGA 简介…………………………………………………………………… 3
1.4 Verilog简介…………………………………………………………………… 7
1.4.1 端口定义………………………………………………………………… 8
1.4.2 信号类型定义…………………………………………………………… 9
1.4.3 数字定义………………………………………………………………… 9
1.4.4 阻塞赋值和非阻塞赋值………………………………………………… 10
1.5 FPGA 开发流程……………………………………………………………… 11
第2章 FPGA 开发板……………………………………………………………… 13
2.1 STORMIV_E6开发板简介……………………………………………… 13
2.2 STORMIV_E6开发板详细配置………………………………………… 15
2.3 STORMIV_E6开发板硬件原理图……………………………………… 16
第3章 设计实例…………………………………………………………………… 27
3.1 LED流水灯实验…………………………………………………………… 27
3.1.1 LED简介……………………………………………………………… 27
3.1.2 实验任务………………………………………………………………… 28
3.1.3 硬件设计………………………………………………………………… 28
3.1.4 程序设计………………………………………………………………… 28
3.1.5 实验现象………………………………………………………………… 31
3.2 按键控制LED实验………………………………………………………… 31
3.2.1 按键控制LED简介…………………………………………………… 31
3.2.2 实验任务………………………………………………………………… 32
3.2.3 硬件设计………………………………………………………………… 32
3.2.4 程序设计………………………………………………………………… 33
3.2.5 实验现象………………………………………………………………… 33
3.3 七段数码管静态显示实验…………………………………………………… 34
3.3.1 数码管简介……………………………………………………………… 34
3.3.2 实验任务………………………………………………………………… 36
3.3.3 硬件设计………………………………………………………………… 36
3.3.4 程序设计………………………………………………………………… 37
3.3.5 实验现象………………………………………………………………… 43
3.4 七段数码管动态扫描实验…………………………………………………… 43
3.4.1 动态扫描简介…………………………………………………………… 43
3.4.2 实验任务………………………………………………………………… 44
3.4.3 硬件设计………………………………………………………………… 44
3.4.4 程序设计………………………………………………………………… 44
3.4.5 实验现象………………………………………………………………… 50
3.5 串口发送实验………………………………………………………………… 51
3.5.1 串口简介………………………………………………………………… 51
3.5.2 实验任务………………………………………………………………… 53
3.5.3 硬件设计………………………………………………………………… 53
3.5.4 程序设计………………………………………………………………… 53
3.5.5 实验现象………………………………………………………………… 58
3.6 串口接收实验………………………………………………………………… 59
3.6.1 串口接收简介…………………………………………………………… 59
3.6.2 实验任务………………………………………………………………… 59
3.6.3 硬件设计………………………………………………………………… 59
3.6.4 程序设计………………………………………………………………… 60
3.6.5 实验现象………………………………………………………………… 64
3.7 同步FIFO实验……………………………………………………………… 65
3.7.1 同步FIFO简介………………………………………………………… 65
3.7.2 实验任务………………………………………………………………… 70
3.7.3 硬件设计………………………………………………………………… 70
3.7.4 程序设计………………………………………………………………… 70
3.7.5 实验现象………………………………………………………………… 73
3.8 异步FIFO实验……………………………………………………………… 74
3.8.1 异步FIFO简介………………………………………………………… 74
3.8.2 实验任务………………………………………………………………… 77
3.8.3 硬件设计………………………………………………………………… 79
3.8.4 程序设计………………………………………………………………… 79
3.8.5 实验现象………………………………………………………………… 86
3.9 状态机实验…………………………………………………………………… 86
3.9.1 状态机简介……………………………………………………………… 86
3.9.2 实验任务………………………………………………………………… 88
3.9.3 硬件设计………………………………………………………………… 88
3.9.4 程序设计………………………………………………………………… 88
3.9.5 实验现象………………………………………………………………… 91
3.10 EEPROM 写操作实验…………………………………………………… 91
3.10.1 EEPROM 写操作简介……………………………………………… 91
3.10.2 实验任务……………………………………………………………… 92
3.10.3 硬件设计……………………………………………………………… 92
3.10.4 程序设计……………………………………………………………… 92
3.10.5 实验现象……………………………………………………………… 106
3.11 EEPROM 读操作实验…………………………………………………… 107
3.11.1 EEPROM 读操作简介……………………………………………… 107
3.11.2 实验任务……………………………………………………………… 107
3.11.3 硬件设计……………………………………………………………… 107
3.11.4 程序设计……………………………………………………………… 107
3.11.5 实验现象……………………………………………………………… 119
3.12 PS/2键盘读操作实验…………………………………………………… 120
3.12.1 PS/2接口简介……………………………………………………… 120
3.12.2 实验任务……………………………………………………………… 121
3.12.3 硬件设计……………………………………………………………… 121
3.12.4 程序设计……………………………………………………………… 122
3.12.5 实验现象……………………………………………………………… 125
3.13 VGA 实验………………………………………………………………… 126
3.13.1 VGA 简介…………………………………………………………… 126
3.13.2 实验任务……………………………………………………………… 129
3.13.3 硬件设计……………………………………………………………… 129
3.13.4 程序设计……………………………………………………………… 129
3.13.5 实验现象……………………………………………………………… 132
3.14 LCD1602实验…………………………………………………………… 132
3.14.1 LCD1602简介……………………………………………………… 132
3.14.2 实验任务……………………………………………………………… 135
3.14.3 硬件设计……………………………………………………………… 135
3.14.4 程序设计……………………………………………………………… 136
3.14.5 实验现象……………………………………………………………… 141
3.15 红外遥控实验……………………………………………………………… 141
3.15.1 红外遥控简介………………………………………………………… 141
3.15.2 实验任务……………………………………………………………… 144
3.15.3 硬件设计……………………………………………………………… 144
3.15.4 程序设计……………………………………………………………… 145
3.15.5 实验现象……………………………………………………………… 151
3.16 SDRAM 控制器实验……………………………………………………… 151
3.16.1 SDRAM 简介………………………………………………………… 151
3.16.2 实验任务……………………………………………………………… 154
3.16.3 硬件设计……………………………………………………………… 155
3.16.4 程序设计……………………………………………………………… 156
3.16.5 实验现象……………………………………………………………… 176
第4章 设计思想和感悟…………………………………………………………… 177
4.1 代码简单化………………………………………………………………… 177
4.2 注释层次化………………………………………………………………… 178
4.3 交互界面清晰化…………………………………………………………… 178
4.4 模块划分化…………………………………………………………… 178
4.5 方案精细化………………………………………………………………… 179
4.6 时序流水化………………………………………………………………… 179
参考文献……………………………………………………………………………… 181
1.1 为什么要学习FPGA ………………………………………………………… 1
1.2 学习FPGA 的几个疑点……………………………………………………… 2
1.2.1 选择VHDL还是Verilog ……………………………………………… 2
1.2.2 NIOS重要还是Verilog重要…………………………………………… 2
1.3 FPGA 简介…………………………………………………………………… 3
1.4 Verilog简介…………………………………………………………………… 7
1.4.1 端口定义………………………………………………………………… 8
1.4.2 信号类型定义…………………………………………………………… 9
1.4.3 数字定义………………………………………………………………… 9
1.4.4 阻塞赋值和非阻塞赋值………………………………………………… 10
1.5 FPGA 开发流程……………………………………………………………… 11
第2章 FPGA 开发板……………………………………………………………… 13
2.1 STORMIV_E6开发板简介……………………………………………… 13
2.2 STORMIV_E6开发板详细配置………………………………………… 15
2.3 STORMIV_E6开发板硬件原理图……………………………………… 16
第3章 设计实例…………………………………………………………………… 27
3.1 LED流水灯实验…………………………………………………………… 27
3.1.1 LED简介……………………………………………………………… 27
3.1.2 实验任务………………………………………………………………… 28
3.1.3 硬件设计………………………………………………………………… 28
3.1.4 程序设计………………………………………………………………… 28
3.1.5 实验现象………………………………………………………………… 31
3.2 按键控制LED实验………………………………………………………… 31
3.2.1 按键控制LED简介…………………………………………………… 31
3.2.2 实验任务………………………………………………………………… 32
3.2.3 硬件设计………………………………………………………………… 32
3.2.4 程序设计………………………………………………………………… 33
3.2.5 实验现象………………………………………………………………… 33
3.3 七段数码管静态显示实验…………………………………………………… 34
3.3.1 数码管简介……………………………………………………………… 34
3.3.2 实验任务………………………………………………………………… 36
3.3.3 硬件设计………………………………………………………………… 36
3.3.4 程序设计………………………………………………………………… 37
3.3.5 实验现象………………………………………………………………… 43
3.4 七段数码管动态扫描实验…………………………………………………… 43
3.4.1 动态扫描简介…………………………………………………………… 43
3.4.2 实验任务………………………………………………………………… 44
3.4.3 硬件设计………………………………………………………………… 44
3.4.4 程序设计………………………………………………………………… 44
3.4.5 实验现象………………………………………………………………… 50
3.5 串口发送实验………………………………………………………………… 51
3.5.1 串口简介………………………………………………………………… 51
3.5.2 实验任务………………………………………………………………… 53
3.5.3 硬件设计………………………………………………………………… 53
3.5.4 程序设计………………………………………………………………… 53
3.5.5 实验现象………………………………………………………………… 58
3.6 串口接收实验………………………………………………………………… 59
3.6.1 串口接收简介…………………………………………………………… 59
3.6.2 实验任务………………………………………………………………… 59
3.6.3 硬件设计………………………………………………………………… 59
3.6.4 程序设计………………………………………………………………… 60
3.6.5 实验现象………………………………………………………………… 64
3.7 同步FIFO实验……………………………………………………………… 65
3.7.1 同步FIFO简介………………………………………………………… 65
3.7.2 实验任务………………………………………………………………… 70
3.7.3 硬件设计………………………………………………………………… 70
3.7.4 程序设计………………………………………………………………… 70
3.7.5 实验现象………………………………………………………………… 73
3.8 异步FIFO实验……………………………………………………………… 74
3.8.1 异步FIFO简介………………………………………………………… 74
3.8.2 实验任务………………………………………………………………… 77
3.8.3 硬件设计………………………………………………………………… 79
3.8.4 程序设计………………………………………………………………… 79
3.8.5 实验现象………………………………………………………………… 86
3.9 状态机实验…………………………………………………………………… 86
3.9.1 状态机简介……………………………………………………………… 86
3.9.2 实验任务………………………………………………………………… 88
3.9.3 硬件设计………………………………………………………………… 88
3.9.4 程序设计………………………………………………………………… 88
3.9.5 实验现象………………………………………………………………… 91
3.10 EEPROM 写操作实验…………………………………………………… 91
3.10.1 EEPROM 写操作简介……………………………………………… 91
3.10.2 实验任务……………………………………………………………… 92
3.10.3 硬件设计……………………………………………………………… 92
3.10.4 程序设计……………………………………………………………… 92
3.10.5 实验现象……………………………………………………………… 106
3.11 EEPROM 读操作实验…………………………………………………… 107
3.11.1 EEPROM 读操作简介……………………………………………… 107
3.11.2 实验任务……………………………………………………………… 107
3.11.3 硬件设计……………………………………………………………… 107
3.11.4 程序设计……………………………………………………………… 107
3.11.5 实验现象……………………………………………………………… 119
3.12 PS/2键盘读操作实验…………………………………………………… 120
3.12.1 PS/2接口简介……………………………………………………… 120
3.12.2 实验任务……………………………………………………………… 121
3.12.3 硬件设计……………………………………………………………… 121
3.12.4 程序设计……………………………………………………………… 122
3.12.5 实验现象……………………………………………………………… 125
3.13 VGA 实验………………………………………………………………… 126
3.13.1 VGA 简介…………………………………………………………… 126
3.13.2 实验任务……………………………………………………………… 129
3.13.3 硬件设计……………………………………………………………… 129
3.13.4 程序设计……………………………………………………………… 129
3.13.5 实验现象……………………………………………………………… 132
3.14 LCD1602实验…………………………………………………………… 132
3.14.1 LCD1602简介……………………………………………………… 132
3.14.2 实验任务……………………………………………………………… 135
3.14.3 硬件设计……………………………………………………………… 135
3.14.4 程序设计……………………………………………………………… 136
3.14.5 实验现象……………………………………………………………… 141
3.15 红外遥控实验……………………………………………………………… 141
3.15.1 红外遥控简介………………………………………………………… 141
3.15.2 实验任务……………………………………………………………… 144
3.15.3 硬件设计……………………………………………………………… 144
3.15.4 程序设计……………………………………………………………… 145
3.15.5 实验现象……………………………………………………………… 151
3.16 SDRAM 控制器实验……………………………………………………… 151
3.16.1 SDRAM 简介………………………………………………………… 151
3.16.2 实验任务……………………………………………………………… 154
3.16.3 硬件设计……………………………………………………………… 155
3.16.4 程序设计……………………………………………………………… 156
3.16.5 实验现象……………………………………………………………… 176
第4章 设计思想和感悟…………………………………………………………… 177
4.1 代码简单化………………………………………………………………… 177
4.2 注释层次化………………………………………………………………… 178
4.3 交互界面清晰化…………………………………………………………… 178
4.4 模块划分化…………………………………………………………… 178
4.5 方案精细化………………………………………………………………… 179
4.6 时序流水化………………………………………………………………… 179
参考文献……………………………………………………………………………… 181
评论
还没有评论。