第1章FPGA基础知识 1
1.1 FPGA与数字电路 1
1.1.1用原理图来实现数字电路 2
1.1.2用HDL语言来实现数字电路 2
1.2 FPGA发展历程 3
1.2.1集成电路 3
1.2.2 PLD简介 5
1.2.3复杂的PLD 6
1.2.4基于Flash架构的FPGA的特点 7
1.3 FPGA设计流程 11
1.3.1设计输入 12
1.3.2功能仿真 12
1.3.3 HDL综合 12
1.3.4综合后仿真 12
1.3.5布局布线 13
1.3.6后仿真 13
1.3.7编程下载/调试 14
1.4 Microsemi FPGA的特色 14
1.4.1 ProASIC3系列 14
1.4.2 IGLOO系列 15
1.4.3 Fusion系列 15
1.4.4 SmartFusion系列 16
第2章FPGA基本结构 17
2.1 FPGA的基本编程原理 17
2.2基本逻辑单元 18
2.2.1 Flash架构的开关 18
2.2.2基本的库单元 19
2.2.3最小逻辑单元 20
2.3布线资源 22
2.3.1超快速的局部连线资源 22
2.3.2有效的长线资源 23
2.3.3高速的超长线资源 24
2.3.4高性能的全局网络 25
2.4 I/O结构 25
2.4.1 I/O缓冲器 25
2.4.2 I/O寄存器 26
2.4.3输出斜率控制 27
2.4.4斯密特触发器 28
2.4.5 ESD保护 28
2.4.6 I/O命名规则 28
第3章FPGA片内外设 30
3.1片内SRAM 30
3.1.1 SRAM的原理 30
3.1.2 SRAM的资源及使用 31
3.1.3 SRAM的操作模式 33
3.2片内FIFO 35
3.2.1 FIFO的原理 35
3.2.2 FIFO的特点及应用 36
3.3时钟调整电路与模拟锁相环 37
3.3.1 CCC的原理 37
3.3.2 PLL的原理 38
3.3.3 CCC/PLL的资源分布 39
3.4 Flash ROM 41
3.4.1 Flash ROM的原理 41
3.4.2 Flash ROM的资源 42
3.5 Flash Memory 43
3.5.1 Flash Memory的存储原理 43
3.5.2 Flash Memory的资源与操作 45
3.6时钟资源 50
3.6.1 RC振荡器的原理 50
3.6.2晶体振荡器的原理 51
3.6.3实时定时器的原理 51
3.7模拟模块 53
3.7.1 ADC的工作原理 53
3.7.2 ACM的配置原理 54
3.7.3预处理器的原理 54
3.7.4应用 56
第4章Verilog HDL基础语法 62
4.1 Verilog HDL基本知识 62
4.1.1什么是硬件描述语言 62
4.1.2 Verilog HDL的发展历程 63
4.1.3 Verilog HDL与VHDL的对比 63
4.1.4 Verilog HDL的应用情况及适用范围 64
4.2 Verilog HDL基本语法一 65
4.2.1基本概念 65
4.2.2模块的结构 66
4.2.3数据类型 69
4.2.4小结 77
4.3 Veirlog HDL基本语法二 78
4.3.1逻辑运算符 78
4.3.2关系运算符 78
4.3.3等式运算符 79
4.3.4移位运算符 80
4.3.5位拼接运算符 80
4.3.6缩减运算符 81
4.3.7优先级别 81
4.3.8关键词 82
4.3.9赋值语句和块语句 82
4.3.10小结 87
4.4 Verilog HDL基本语法三 87
4.4.1条件语句 87
4.4.2循环语句 97
4.4.3顺序块和并行块 100
4.4.4生成块 104
4.4.5小结 108
4.5 Verilog HDL基本语法四 109
4.5.1结构说明语句 109
4.5.2 task和function说明语句 113
4.5.3小结 121
4.6 Verilog HDL基本语法五 121
4.6.1系统任务$display和$write 121
4.6.2系统任务$ fopen 125
4.6.3系统任务%m 126
4.6.4系统任务$dumpfile 127
4.6.5系统任务$monitor 128
4.6.6系统任务$strobe 129
4.6.7系统任务$time 129
4.6.8系统任务$finish 130
4.6.9系统任务$stop 131
4.6.10系统任务$readmemb和$readmemh 131
4.6.11系统任务$random 133
4.6.12编译预处理 134
4.6.13其他系统任务 142
4.6.14小结 143
第5章 常用IP设计 144
5.1基于MCU的IP设计 145
5.2 UART的IP设计 146
5.2.1 UART协议介绍 146
5.2.2 UART应用举例 148
5.2.3具体实现 149
5.3 SPI的IP设计 159
5.3.1 SPI协议介绍 159
5.3.2 SPI主机实现 162
5.3.3 SPI从机实现 172
5.4 I2 C的IP设计 177
5.4.1 I2C协议介绍 177
5.4.2 I2 C应用举例 178
5.4.3具体实现 179
第6章DIY创新应用设计 201
6.1矩阵键盘管理设计 201
6.1.1设计任务 201
6.1.2设计要求 202
6.1.3实现原理 203
6.2开平方算法设计 204
6.2.1设计任务 204
6.2.2设计要求 204
6.2.3实现原理 204
6.3同步FIFO设计 206
6.3.1设计任务 206
6.3.2设计要求 207
6.3.3实现原理 208
参考文献 209