书籍详情
FPGA设计与验证
作者:梅雪松,袁玉卓,曾凯锋 著
出版社:北京航空航天大学出版社
出版时间:2021-03-01
ISBN:9787512431294
定价:¥79.00
购买这本书可以去
内容简介
本书以Intel CycloneⅣ E系列FPGA 为例,系统介绍了FPGA 的硬件结构、电路设计以及逻辑设计和验证流程。书中以若干个具有工程实用意义的案例为背景,详细介绍了FPGA 数字逻辑设计中常见的功能模块设计思路、FPGA 片上资源的使用方法、开发软件中各种调试工具的使用,包括SignaltapⅡ、In System Sources and Probes Editor、In System Memory Content Editor。本书最后通过若干个综合性实例,讲解了复杂数字系统的设计方法和验证思路。作为实用型FPGA 教程,本书的每一个实验都有完整的仿真和验证过程,即强调了仿真验证在FPGA设计中的重要作用。 本书可作为工程应用类、电子信息类专业本科生以及相关专业专科生的EDA 基础类课程的教材;也可作为FPGA自学人员,以及从事FPGA开发的工程技术人员的培训教材和参考用书。
作者简介
梅雪松,网名“小梅哥”,拥有多年电子设计经验,擅长知识的总结和传播,有《小梅哥和你一起深入学习FPGA》、《小梅哥FPGA学习笔记》两个系列网络博文;并推出了手把手式视频教程《FPGA设计思想与验证方法视频教程》,该教程在各大视频点击平台备受好评,网友称其为学习FPGA基础与提高教学视频。同时,开设FPGA实地培训班,正式开始网络和实地FPGA培训,培训课程以其系统的知识讲解和生动的实例分析,得到了学员的一致肯定。 袁玉卓,山东大学博士,集成电路设计专业,知识面广,专业技术背景深厚。长期从事于FPGA技术的分享和交流,拥有丰富的项目科研和实践经验, 曾凯锋,杭州电子科技大学硕士,主要研究方向为FPGA与嵌入式系统设计,长期活跃于FPGA技术交流群,著有多篇FPGA设计和验证文章。
目录
第1章从头认识FPGA/1
1.1CycloneⅣEFPGA原理与应用/1
1.1.1CycloneⅣE概述/1
1.1.2CycloneⅣE扩展资源介绍/4
1.1.3重点电路设计/5
1.2IntelFPGA开发环境/17
1.2.1Quartus软件的发展史/18
1.2.2QuartusPrime的下载/18
1.2.3QuartusPrime的安装/21
1.2.4QuartusPrime软件的基本使用/27
第2章FPGA开发软硬件平台介绍/39
2.1AC620开发套件/39
2.1.1AC620开发板的功能特点/39
2.1.2AC620开发板的使用/43
2.2IntelFPGA开发流程/57
2.2.1建立工程/57
2.2.2设计输入/61
2.2.3分析和综合/61
2.2.4功能仿真/62
2.2.5综合与布局布线/66
2.2.6时序仿真/66
2.2.7I/O分配以及生成配置文件/67
2.2.8配置FPGA下载/67
2.3FPGA设计的烧写与投产/68
2.3.1FPGA固件存储方案/68
2.3.2CycloneⅣEFPGA固件烧写方案/69
2.3.3烧写文件JIC的产生/70
第3章FPGA基本数字逻辑设计/74
3.1组合逻辑电路设计———译码器/74
3.1.1译_码器工作原理/74
3.1.2译码器Verilog实现/75
3.1.3激励创建及仿真测试/76
3.2时序逻辑电路设计———计数器/79
3.2.1计数器工作原理/80
3.2.2计数器Verilog实现/81
3.2.3仿真及板级验证/82
3.3IP核应用———计数器/85
3.3.1IP核创建流程/85
3.3.2仿真及板级验证/89
3.3.3已生成IP核的参数修改/90
3.3.4QuartusⅡ中IP核参数的修改/94
3.4BCD计数器设计与验证/95
3.4.1BCD码原理/95
3.4.2BCD计数器的Verilog实现/96
3.4.3激励创建及仿真测试/97
3.4.4级联BCD计数器设计与仿真/98
3.5阻塞赋值与非阻塞赋值原理分析/103
3.5.1不同赋值方式的对比与实现/103
3.5.2不同赋值方式的仿真及测试/105
3.6状态机设计实例/108
3.6.1状态机工作原理/108
3.6.2字符串检测状态机实现/110
3.6.3激励创建及仿真测试/113
3.7独立按键消抖设计与验证/115
3.7.1按键的物理结构及电路设计/115
3.7.2硬件电路实现按键消抖/116
3.7.3状态机实现按键消抖/118
3.7.4激励创建及仿真测试/124
3.7.5任务及随机函数的使用/125
3.8模块化设计基础———加减法计数器/129
3.8.1模块功能划分/129
3.8.2模块功能设计/129
3.8.3仿真及板级验证/132
3.98位7段数码管驱动设计与验证/134
3.9.1数码管驱动原理/134
3.9.2三线制数码管电路设计/137
3.9.3数码管动态扫描驱动设计/138
3.9.4ISSP生成及使用/145
3.9.5板级调试与验证/149
3.9.6QuartusⅡ中ISSP的使用方法/…152
3.10串口发送模块设计与验证/153
3.10.1异步串行通信原理及电路设计/…154
3.10.2UART异步串行通信发送模块设计与实现/157
3.10.3激励创建及仿真测试/162
3.10.4按键控制串口发送设计/163
3.11串口接收模块的设计与验证/165
3.11.1串口接收原理分析/166
3.11.2UART异步串行通信接收模块设计与实现/167
3.11.3仿真及板级验证/171
第4章FPGA片上专用资源使用/176
4.1嵌入式RAM的使用———双端口RAM/176
4.1.1CycloneⅣ体系结构及嵌入式存储器原理/176
4.1.2IP核使用———dpram/178
4.1.3激励创建及仿真测试/182
4.2搭建串口收发与双口RAM存储的简易应用系统/185
4.2.1系统模块功能划分及接口设计//185
4.2.2顶层文件设计/185
4.2.3控制模块设计/186
4.2.4仿真及板级验证/187
4.3嵌入式RAM的使用———ROM/190
4.3.1IP核使用———ROM/191
4.3.2激励创建及仿真测试/193
4.3.3SignaTapⅡ使用及板级验证/195
4.4嵌入式块RAM的使用———FIFO/201
4.4.1FIFO的相关知识/202
4.4.2IP核的使用———FIFO/204
4.5PLL锁相环介绍与简单应用/213
4.5.1PLL相关知识/213
4.5.2IP核使用———PLL/215
4.5.3仿真及板级验证/219
第5章FPGA进阶数字逻辑设计/223
5.1无源蜂鸣器驱动设计与验证/223
5.1.1无源蜂鸣器电路设计/223
5.1.2无源蜂鸣器驱动原理/224
5.1.3PWM发生器模块设计/225
5.1.4仿真及板级验证/227
5.2线性序列机与串行接口DAC驱动设计与验证/232
5.2.1DAC芯片概述及电路设计/232
5.2.2TLV5618型DAC芯片输出电压计算原理/234
5.2.3TLV5618型DAC接口时序/235
5.2.4线性序列机设计思想与接口时序设计/236
5.2.5基于线性序列机的DAC驱动设计/238
5.2.6仿真及板级测试/241
5.3线性序列机与串行接口ADC驱动设计与验证/243
5.3.1ADC芯片概述及电路设计/244
5.3.2ADC128S022型ADC接口时序/245
5.3.3ADC128S022接口时序设计/247
5.3.4基于线性序列机的ADC驱动设计/249
5.3.5仿真及板级测试/252
5.4HT6221红外遥控解码设计与验证/257
5.4.1红外遥控系统组成及电路设计/257
5.4.2红外遥控协议分析(NEC协议)/258
5.4.3红外解码模块设计/260
5.4.4仿真及板级验证/265
5.5TFT显示屏驱动设计与验证/267
5.5.1TFT触摸屏驱动电路设计/268
5.5.2RGB接口TFT屏扫描方式/270
5.5.3RGB接口TFT屏时序分析/271
5.5.4RGB接口TFT屏驱动设计/272
5.5.5仿真及板级验证/275
第6章FPGA综合数字系统设计/280
6.1八通道数字电压表/280
6.1.1数字电压表功能划分/280
6.1.2按键输入模块/281
6.1.3通道选择模块/281
6.1.4ADC控制模块———ADC128S022/282
6.1.5数据预处理模块/282
6.1.6码制转换模块/284
6.1.7数码管驱动模块/287
6.1.8顶层设计/288
6.1.9基于查找表的数据电压换算/289
6.2双通道幅频相可调DDS信号发生器/292
6.2.1DDS原理与实现/293
6.2.2数/模转换器(DAC)驱动模块设计/299
6.2.3串口命令接收与解析/303
6.2.4信号发生器顶层设计/315
6.2.5系统测试/316
6.3串口读/写EEPROM/317
6.3.1I2C基本概念/317
6.3.2I2C协议时序介绍/318
6.3.3I2C器件地址/319
6.3.4I2C存储器地址/320
6.3.5I2C写时序/321
6.3.6I2C单字节读时序/323
6.3.7I2C读/写器件控制器设计/325
6.3.8I2C控制器仿真验证/335
6.3.9串口读/写EEPROM系统设计/341
6.3.10串口读/写EEPROM仿真验证/351
6.3.11串口读/写EEPROM板级验证/355
6.4基于串口猎人的虚拟示波器/359
6.4.1系统结构/359
6.4.2模块详解/361
6.4.3仿真验证/375
6.4.4基于串口猎人的板级验证/385
6.5SDRAM控制器设计/391
6.5.1SDRAM基本概念/391
6.5.2SDRAM存取原理/392
6.5.3SDRAM器件引脚说明/394
6.5.4SDRAM特性/395
6.5.5SDRAM操作命令介绍/396
6.5.6SDRAM操作时序/403
6.5.7SDRAM控制器设计/418
6.5.8SDRAM控制器仿真验证/425
6.5.9SDRAM控制器设计优化/430
6.5.10优化控制器仿真验证/436
6.6串口传图帧缓存设计/440
6.6.1系统结构/440
6.6.2仿真验证/446
6.6.3板级验证/450
参考文献/454
1.1CycloneⅣEFPGA原理与应用/1
1.1.1CycloneⅣE概述/1
1.1.2CycloneⅣE扩展资源介绍/4
1.1.3重点电路设计/5
1.2IntelFPGA开发环境/17
1.2.1Quartus软件的发展史/18
1.2.2QuartusPrime的下载/18
1.2.3QuartusPrime的安装/21
1.2.4QuartusPrime软件的基本使用/27
第2章FPGA开发软硬件平台介绍/39
2.1AC620开发套件/39
2.1.1AC620开发板的功能特点/39
2.1.2AC620开发板的使用/43
2.2IntelFPGA开发流程/57
2.2.1建立工程/57
2.2.2设计输入/61
2.2.3分析和综合/61
2.2.4功能仿真/62
2.2.5综合与布局布线/66
2.2.6时序仿真/66
2.2.7I/O分配以及生成配置文件/67
2.2.8配置FPGA下载/67
2.3FPGA设计的烧写与投产/68
2.3.1FPGA固件存储方案/68
2.3.2CycloneⅣEFPGA固件烧写方案/69
2.3.3烧写文件JIC的产生/70
第3章FPGA基本数字逻辑设计/74
3.1组合逻辑电路设计———译码器/74
3.1.1译_码器工作原理/74
3.1.2译码器Verilog实现/75
3.1.3激励创建及仿真测试/76
3.2时序逻辑电路设计———计数器/79
3.2.1计数器工作原理/80
3.2.2计数器Verilog实现/81
3.2.3仿真及板级验证/82
3.3IP核应用———计数器/85
3.3.1IP核创建流程/85
3.3.2仿真及板级验证/89
3.3.3已生成IP核的参数修改/90
3.3.4QuartusⅡ中IP核参数的修改/94
3.4BCD计数器设计与验证/95
3.4.1BCD码原理/95
3.4.2BCD计数器的Verilog实现/96
3.4.3激励创建及仿真测试/97
3.4.4级联BCD计数器设计与仿真/98
3.5阻塞赋值与非阻塞赋值原理分析/103
3.5.1不同赋值方式的对比与实现/103
3.5.2不同赋值方式的仿真及测试/105
3.6状态机设计实例/108
3.6.1状态机工作原理/108
3.6.2字符串检测状态机实现/110
3.6.3激励创建及仿真测试/113
3.7独立按键消抖设计与验证/115
3.7.1按键的物理结构及电路设计/115
3.7.2硬件电路实现按键消抖/116
3.7.3状态机实现按键消抖/118
3.7.4激励创建及仿真测试/124
3.7.5任务及随机函数的使用/125
3.8模块化设计基础———加减法计数器/129
3.8.1模块功能划分/129
3.8.2模块功能设计/129
3.8.3仿真及板级验证/132
3.98位7段数码管驱动设计与验证/134
3.9.1数码管驱动原理/134
3.9.2三线制数码管电路设计/137
3.9.3数码管动态扫描驱动设计/138
3.9.4ISSP生成及使用/145
3.9.5板级调试与验证/149
3.9.6QuartusⅡ中ISSP的使用方法/…152
3.10串口发送模块设计与验证/153
3.10.1异步串行通信原理及电路设计/…154
3.10.2UART异步串行通信发送模块设计与实现/157
3.10.3激励创建及仿真测试/162
3.10.4按键控制串口发送设计/163
3.11串口接收模块的设计与验证/165
3.11.1串口接收原理分析/166
3.11.2UART异步串行通信接收模块设计与实现/167
3.11.3仿真及板级验证/171
第4章FPGA片上专用资源使用/176
4.1嵌入式RAM的使用———双端口RAM/176
4.1.1CycloneⅣ体系结构及嵌入式存储器原理/176
4.1.2IP核使用———dpram/178
4.1.3激励创建及仿真测试/182
4.2搭建串口收发与双口RAM存储的简易应用系统/185
4.2.1系统模块功能划分及接口设计//185
4.2.2顶层文件设计/185
4.2.3控制模块设计/186
4.2.4仿真及板级验证/187
4.3嵌入式RAM的使用———ROM/190
4.3.1IP核使用———ROM/191
4.3.2激励创建及仿真测试/193
4.3.3SignaTapⅡ使用及板级验证/195
4.4嵌入式块RAM的使用———FIFO/201
4.4.1FIFO的相关知识/202
4.4.2IP核的使用———FIFO/204
4.5PLL锁相环介绍与简单应用/213
4.5.1PLL相关知识/213
4.5.2IP核使用———PLL/215
4.5.3仿真及板级验证/219
第5章FPGA进阶数字逻辑设计/223
5.1无源蜂鸣器驱动设计与验证/223
5.1.1无源蜂鸣器电路设计/223
5.1.2无源蜂鸣器驱动原理/224
5.1.3PWM发生器模块设计/225
5.1.4仿真及板级验证/227
5.2线性序列机与串行接口DAC驱动设计与验证/232
5.2.1DAC芯片概述及电路设计/232
5.2.2TLV5618型DAC芯片输出电压计算原理/234
5.2.3TLV5618型DAC接口时序/235
5.2.4线性序列机设计思想与接口时序设计/236
5.2.5基于线性序列机的DAC驱动设计/238
5.2.6仿真及板级测试/241
5.3线性序列机与串行接口ADC驱动设计与验证/243
5.3.1ADC芯片概述及电路设计/244
5.3.2ADC128S022型ADC接口时序/245
5.3.3ADC128S022接口时序设计/247
5.3.4基于线性序列机的ADC驱动设计/249
5.3.5仿真及板级测试/252
5.4HT6221红外遥控解码设计与验证/257
5.4.1红外遥控系统组成及电路设计/257
5.4.2红外遥控协议分析(NEC协议)/258
5.4.3红外解码模块设计/260
5.4.4仿真及板级验证/265
5.5TFT显示屏驱动设计与验证/267
5.5.1TFT触摸屏驱动电路设计/268
5.5.2RGB接口TFT屏扫描方式/270
5.5.3RGB接口TFT屏时序分析/271
5.5.4RGB接口TFT屏驱动设计/272
5.5.5仿真及板级验证/275
第6章FPGA综合数字系统设计/280
6.1八通道数字电压表/280
6.1.1数字电压表功能划分/280
6.1.2按键输入模块/281
6.1.3通道选择模块/281
6.1.4ADC控制模块———ADC128S022/282
6.1.5数据预处理模块/282
6.1.6码制转换模块/284
6.1.7数码管驱动模块/287
6.1.8顶层设计/288
6.1.9基于查找表的数据电压换算/289
6.2双通道幅频相可调DDS信号发生器/292
6.2.1DDS原理与实现/293
6.2.2数/模转换器(DAC)驱动模块设计/299
6.2.3串口命令接收与解析/303
6.2.4信号发生器顶层设计/315
6.2.5系统测试/316
6.3串口读/写EEPROM/317
6.3.1I2C基本概念/317
6.3.2I2C协议时序介绍/318
6.3.3I2C器件地址/319
6.3.4I2C存储器地址/320
6.3.5I2C写时序/321
6.3.6I2C单字节读时序/323
6.3.7I2C读/写器件控制器设计/325
6.3.8I2C控制器仿真验证/335
6.3.9串口读/写EEPROM系统设计/341
6.3.10串口读/写EEPROM仿真验证/351
6.3.11串口读/写EEPROM板级验证/355
6.4基于串口猎人的虚拟示波器/359
6.4.1系统结构/359
6.4.2模块详解/361
6.4.3仿真验证/375
6.4.4基于串口猎人的板级验证/385
6.5SDRAM控制器设计/391
6.5.1SDRAM基本概念/391
6.5.2SDRAM存取原理/392
6.5.3SDRAM器件引脚说明/394
6.5.4SDRAM特性/395
6.5.5SDRAM操作命令介绍/396
6.5.6SDRAM操作时序/403
6.5.7SDRAM控制器设计/418
6.5.8SDRAM控制器仿真验证/425
6.5.9SDRAM控制器设计优化/430
6.5.10优化控制器仿真验证/436
6.6串口传图帧缓存设计/440
6.6.1系统结构/440
6.6.2仿真验证/446
6.6.3板级验证/450
参考文献/454
猜您喜欢