本篇主要提供FPGA设计系列4册 Xilinx FPGA工程师成长手记+Xilinx FPGA权威设计指南 基于Vivado 2023设计套件+零基础学FPGA设计+FPGA设计与开发零基础入门到精通 4册电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
套装内容
零基础学FPGA设计——理解硬件编程思想 |
FPGA设计与开发零基础入门到精通 |
Xilinx FPGA工程师成长手记 |
Xilinx FPGA权威设计指南:基于Vivado 2023设计套件 |
Xilinx FPGA工程师成长手记
Xilinx FPGA权威设计指南:基于Vivado 2023设计套件
本书全面系统地介绍了基于Xilinx新一代集成开发环境Vivado 2023的FPGA设计方法、设计流程和具体实现。全书共11章,内容包括Xilinx新一代UltraScale+架构FPGA、Vivado设计套件导论、Vivado工程模式基本设计实现、Vivado非工程模式基本设计实现、Vivado创建和封装用户IP核流程、Vivado时序和物理约束原理及实现、Vivado调试工具原理及实现、Vivado动态功能交换原理及实现、Vitis HLS原理详解、Vitis HLS实现过程详解,以及HDMI显示屏驱动原理和实现
本书可作为使用Xilinx集成开发环境Vivado进行FPGA设计的工程技术人员的参考书,也可作为电子信息类专业高年级本科生和研究生的教学和科研用书,还可作为Xilinx公司Vivado相关培训的培训教材。
第1章 Xilinx新一代UltraScale+架构FPGA
1.1 UltraScale+结构特点
1.1.1 Artix UltraScale+ FPGA系列
1.1.2 Kintex UltraScale+ FPGA系列
1.1.3 Virtex UltraScale+ FPGA系列
1.2 可配置逻辑块
1.2.1 查找表功能和配置
1.2.2 多路复用器
1.2.3 进位逻辑
1.2.4 存储元件
1.2.5 分布式RAM(只有SLICEM)
1.2.6 只读存储器(ROM)
1.2.7 移位寄存器(只有SLICEM)
1.3 时钟资源和时钟管理模块
1.3.1 时钟架构概述
1.3.2 时钟布线资源概述
1.3.3 CMT概述
1.3.4 时钟资源
1.3.5 时钟管理模块
1.4 存储器资源
1.4.1 BRAM资源
1.4.2 UltraRAM资源
1.5 专用的DSP模块
1.6 SelectIO资源
1.6.1 SelectIO接口资源
1.6.2 SelectIO接口通用指南
1.6.3 SelectIO接口逻辑资源
1.6.4 高密度I/O组
1.7 高速串行收发器
1.7.1 GTH和GTY收发器
1.7.2 GTM收发器
1.8 系统监控器模块
1.9 互联资源
1.10 配置模块
1.10.1 配置模式概述
1.10.2 JTAG连接
1.10.3 保护比特流
1.11 参考资料
第2章 Vivado设计套件导论
2.1 Vivado设计套件框架
2.1.1 Vivado设计套件功能
2.1.2 Vivado设计套件支持的工业标准
2.1.3 Vivado对第三方工具的支持
2.2 Vivado系统级设计流程
2.3 Vivado两种设计流程模式
2.3.1 工程模式
2.3.2 非工程模式
2.3.3 两种模式不同点比较
2.3.4 两种模式命令的区别
2.4 Vivado中电路结构的网表描述
2.5 Vivado中工程数据的目录结构
2.6 Vivado中Journal文件和Log文件功能
2.6.1 Journal文件(Vivado.jou)
2.6.2 Log文件(Vivado.log)
2.7 Vivado中XDC文件
2.7.1 XDC的特性
2.7.2 XDC与UCF区别
2.7.3 约束文件的使用方法
2.7.4 约束顺序
2.7.5 XDC命令
2.8 Vivado IDE的启动方法
2.9 Vivado IDE主界面
2.9.1 Quick Start分组
2.9.2 Tasks分组
2.9.3 Learning Center分组
2.10 Vivado IDE工程界面及功能
2.10.1 流程处理主界面及功能
2.10.2 Sources窗口及功能
2.10.3 工程总结窗口
2.10.4 运行设计的交互窗口
2.11 Vivado支持的属性
第3章 Vivado工程模式基本设计实现
3.1 创建新的设计工程
3.2 修改工程属性
3.2.1 修改目标语言设置
3.2.2 General设置参数含义
3.3 创建并添加一个新的设计文件
3.4 设计RTL分析
3.4.1 运行Linter
3.4.2 详细描述的实现
3.4.3 运行方法检查
3.4.4 报告DRC
3.4.5 报告噪声
3.4.6 生成HDL例化模板
3.5 行为级仿真
3.5.1 仿真功能概述
3.5.2 编译仿真库(可选)
3.5.3 行为级仿真的实现
3.5.4 仿真器界面的功能
3.6 设计综合和分析
3.6.1 综合的概念和特性
3.6.2 设计综合选项
3.6.3 执行设计综合
3.6.4 打开综合后的设计
3.6.5 打开综合后的原理图
3.6.6 查看综合报告
3.6.7 添加其他报告
3.6.8 创建新的运行
3.7 综合后的仿真
3.8 创建实现约束
3.8.1 实现约束的原理
3.8.2 I/O规划工具
3.8.3 添加引脚约束
3.8.4 添加时序约束
3.9 设计实现和分析
3.9.1 设计实现原理
3.9.2 设计实现设置
3.9.3 设计实现及分析
3.9.4 静态时序分析
3.10 布局布线后时序仿真
3.11 生成编程文件
3.11.1 配置器件属性
3.11.2 修改生成编程文件选项
3.11.3 执行生成可编程文件
3.12 下载比特流文件到FPGA
3.13 生成并烧写PROM文件
第4章 Vivado非工程模式基本设计实现
4.1 非工程模式基本命令和功能
4.1.1 非工程模式基本命令列表
4.1.2 典型Tcl脚本的使用
4.2 Vivado集成开发环境分析设计
4.2.1 启动Vivado集成开发环境
4.2.2 打开设计检查点的方法
4.3 修改设计路径
4.4 设置设计输出路径
4.5 读取设计文件
4.6 运行设计综合
4.7 运行设计布局
4.8 运行设计布线
4.9 生成比特流文件
4.10 下载比特流文件
第5章 Vivado创建和封装用户IP核流程
5.1 Vivado IP设计方法
5.1.1 Vivado IP设计流程
5.1.2 IP核术语
5.2 创建并封装包含源文件的IP
5.2.1 创建新的用于创建IP的工程
5.2.2 设置定制IP的库名和目录
5.2.3 封装定制IP的实现
5.3 调用并验证包含源文件的IP设计
5.3.1 创建新的用于调用IP的工程
5.3.2 设置包含调用IP的路径
5.3.3 创建基于IP的系统
5.3.4 执行行为级仿真
5.3.5 系统设
FPGA设计与开发零基础入门到精通
本书从FPGA开发入门与芯片实际开发应用角度出发,全面介绍了FPGA设计所需的理论基础和工具应用。书中针对Verilog HDL设计的基础语法进行了系统的介绍,对Verilog HDL中一些常接触并容易出错的概念进行了详细说明。同时,书中还介绍了在数字电路设计中常用的EDA工具、状态机、仿真与测试方法。全书内容介绍深入浅出,结合作者多年来使用Verilog HDL的心得体会和积累,列举了丰富的设计实例,展现了许多仿真设计流程,全面总结和深入阐述了在Verilog HDL中一些设计技巧、设计理念,适合广大电路设计开发人员、电子爱好者和初学者全面学习。
本书适合广大电路设计开发人员阅读,也可以作为高等院校电子信息、电气自动化等相关专业的教学用书。
篇 基础知识
第1章 FPGA应用概述 002
1.1 EDA概述 002
1.1.1 FPGA与CPLD 002
1.1.2 Verilog HDL和VHDL 003
1.2 FPGA的基本结构 004
1.3 FPGA的常用开发工具 006
1.3.1 常用工具汇总一览表 006
1.3.2 HDL前端输入与系统管理软件 008
1.3.3 HDL逻辑综合软件 008
1.3.4 仿真软件 009
第2章 FPGA设计流程 010
2.1 需求分析 011
2.2 电路设计与输入 011
2.3 功能实现与仿真 011
2.4 综合优化 012
2.5 时序仿真与验证 012
2.6 板级调试 013
第二篇 设计方法
第3章 Verilog HDL语言要素 016
3.1 注释与格式 016
3.1.1 注释 016
3.1.2 格式 018
3.2 标识符 019
3.3 数据对象 020
3.3.1 常量 020
3.3.2 关键字 022
3.4 数据类型 023
3.4.1 变量 024
3.4.2 线网类型 025
3.5 表达式 027
3.5.1 操作数 027
3.5.2 操作符 030
3.5.3 表达式种类 038
第4章 Verilog HDL基本语句 039
4.1 赋值语句 039
4.1.1 连续赋值语句 039
4.1.2 过程赋值语句 041
4.2 单元块语句 045
4.2.1 顺序块begin-end 046
4.2.2 fork-join语句 047
4.3 流程控制语句 049
4.3.1 条件语句 049
4.3.2 循环语句 058
第5章 Verilog HDL的描述方式 063
5.1 门级结构描述 063
5.1.1 门级结构的组成 064
5.1.2 门级结构的逻辑真值表 065
5.1.3 门级结构描述实例 067
5.2 数据流描述 069
5.2.1 数据流描述特点 069
5.2.2 数据流描述实例 069
5.3 行为级描述 071
5.3.1 行为级描述特点 071
5.3.2 行为级描述实例 071
第6章 Verilog HDL的函数和任务 073
6.1 函数 073
6.1.1 函数定义 073
6.1.2 函数调用 074
6.2 任务 075
6.2.1 任务定义 075
6.2.2 任务调用 076
6.3 函数和任务的差异 078
第7章 状态机 079
7.1 状态机的分类与特点 079
7.1.1 状态机的分类 079
7.1.2 状态机的特点 084
7.2 状态机的设计方法 084
7.2.1 状态机的设计流程 084
7.2.2 状态机设计要点 085
7.2.3 状态机的描述方法 087
第三篇 仿真与测试
第8章 仿真 098
8.1 仿真概述 098
8.2 仿真中的延时描述 099
8.2.1 延时的表示方法 099
8.2.2 路径延迟声明specify 099
8.3 Testbench设计与使用要点 100
8.3.1 Testbench书写方法 101
8.3.2 时钟、复位的写法 103
第9章 测 例设计 108
9.1 组合逻辑电路仿真设计 108
9.1.1 8-3线编码器示例 108
9.1.2 4位加法器示例 109
9.2 时序电路仿真设计 112
9.2.1 D触发器示例 112
9.2.2 4位计数器示例 114
第四篇 设计实例
0章 Verilog设计实例 120
10.1 Verilog基础设计实例 120
10.1.1 简单组合逻辑电路设计 120
10.1.2 简易有限状态机设计 126
10.1.3 跑马灯设计 129
10.1.4 数码管显示设计 135
10.2 Verilog进阶设计实例 139
10.2.1 IIC通信 139
10.2.2 SPI通信 162
10.2.3 串口通信设计 173
10.2.4 红外遥控设计 192
零基础学FPGA设计――理解硬件编程思想
本书是针对FPGA初学者编著的入门级图书,以高云公司的FPGA和Verilog HDL为开发平台,详细阐述FPGA设计所需的基础知识、基本语法、设计流程、设计技巧,全面、细致、深刻地剖析了Verilog HDL与C语言等传统顺序语言的本质区别,使读者通过简单的实例逐步理解FPGA的硬件设计思想,实现快速掌握FPGA设计方法的目的。本书思路清晰、语言流畅、分析透彻,在简明阐述设计方法的基础上,重点辨析读者易于与常规顺序语言混淆的概念,力求使读者在较短的时间内理解硬件编程思想,掌握FPGA设计方法。
目录
第一篇 基础篇
第1章 必备的数字逻辑电路知识 3
1.1 数字逻辑和逻辑电平 3
1.1.1 模拟器件构成的数字电路 3
1.1.2 TTL反相器电路 4
1.1.3 现实中的数字信号波形 5
1.1.4 了解常用的逻辑电平 6
1.2 布尔代数 7
1.2.1 布尔和几个基本运算规则 7
1.2.2 常用的布尔代数法则 8
1.3 组合逻辑电路基础 9
1.3.1 组合逻辑电路的表示方法 9
1.3.2 为什么会产生竞争冒险 10
1.4 时序逻辑电路基础 11
1.4.1 时序逻辑电路的结构 11
1.4.2 D触发器的工作波形 12
1.4.3 计数器与寄存器电路 13
1.5 小结 16
第2章 可编程逻辑器件基础 17
2.1 可编程逻辑器件的历史 17
2.1.1 PROM是可编程逻辑器件 17
2.1.2 从PROM到GAL 19
2.1.3 从SPLD到CPLD 21
2.1.4 FPGA的时代 22
2.2 FPGA的发展趋势 24
2.3 FPGA的结构 26
2.4 FPGA与其他处理平台的比较 28
2.4.1 ASIC、DSP、ARM的特点 29
2.4.2 FPGA的特点及优势 30
2.4.3 FPGA与CPLD的区别 31
2.5 工程中如何选择FPGA器件 31
2.6 小结 32
第3章 准备好开发环境 33
3.1 安装FPGA开发环境 33
3.1.1 安装高云云源软件 33
3.1.2 安装ModelSim软件 35
3.2 开发平台CGD100简介 38
3.3 Verilog HDL基本语法 39
3.3.1 Verilog HDL的程序结构 39
3.3.2 数据类型及基本运算符 42
3.3.3 运算符优先级及关键词 44
3.3.4 赋值语句与块语句 44
3.3.5 条件语句和分支语句 47
3.4 小结 48
第二篇 初识篇
第4章 FPGA设计流程―LED流水灯电路 51
4.1 FPGA设计流程 51
4.2 流水灯设计实例要求 54
4.3 读懂电路原理图 55
4.4 流水灯的设计输入 57
4.4.1 建立FPGA工程 57
4.4.2 Verilog HDL程序输入 59
4.5 程序文件下载 62
4.6 小结 64
第5章 从组合逻辑电路学起 65
5.1 从最简单的与非门电路开始 65
5.1.1 调用门级结构描述与非门 65
5.1.2 二合一的命名原则 66
5.1.3 用门级电路搭建一个投票电路 67
5.2 设计复杂一点的投票电路 68
5.2.1 门电路设计方法的短板 68
5.2.2 利用assign语句完成门电路功能 69
5.2.3 常用的if…else语句 71
5.2.4 reg与wire的用法区别 73
5.2.5 记住“<=”与“=”赋值的规则 74
5.2.6 非常重要的概念―信号位宽 75
5.2.7 行为级建模的5人投票电路 75
5.3 ModelSim仿真电路功能 76
5.3.1 4线-2线编码器设计 77
5.3.2 建立ModelSim工程 78
5.3.3 设计测试激励文件 79
5.3.4 查看ModelSim仿真波形 82
5.4 典型组合逻辑电路Verilog HDL设计 84
5.4.1 8421BCD编码器电路 85
5.4.2 8线-3线优先编码器电路 86
5.4.3 74LS138译码器电路 88
5.4.4 与if…else语句齐名的case语句 90
5.4.5 数据分配器与数据选择器电路 91
5.5 数码管静态显示电路设计 93
5.5.1 数码管的基本工作原理 93
5.5.2 实例需求及电路原理分析 94
5.5.3 数码管显示电路Verilog HDL设计 95
5.5.4 板载测试 97
5.6 小结 98
第6章 时序逻辑电路的灵魂―D触发器 101
6.1 深入理解D触发器 101
6.1.1 D触发器产生一个时钟周期的延时 101
6.1.2 D触发器能工作的最高时钟频率分析 102
6.2 D触发器的描述方法 104
6.2.1 单个D触发器的Verilog HDL设计 104
6.2.2 异步复位的D触发器 106
6.2.3 同步复位的D触发器 108
6.2.4 时钟使能的D触发器 109
6.2.5 D触发器的ModelSim仿真 111
6.2.6 其他形式的D触发器 112
6.3 初试牛刀―边沿检测电路设计 113
6.3.1 边沿检测电路的功能描述 113
6.3.2 边沿检测电路的Verilog HDL设计 114
6.3.3 改进的边沿检测电路 115
6.4 连续序列检测电路―边沿检测电路的升级 116
6.4.1 连续序列检测电路设计 116
6.4.2 分析Verilog HDL并行语句 118
6.4.3 再论“<=”与“=”赋值 119
6.4.4 序列检测电路的ModelSim仿真 121
6.5 任意序列检测器―感受D触发器的强大 124
6.5.1 完成饮料质量检测电路功能设计 124
6.5.2 优化检测电路的设计代码 128
6.6 小结 129
第7章 时序逻辑电路的精华―计数器 131
7.1 简单的十六进制计数器 131
7.1.1 计数器设计 131
7.1.2 计数器就是加法器和触发器 133
7.2 十进制计数器 134
7.2.1 具有复位及时钟使能功能的计数器 134
7.2.2 讨论计数器的进制 135
7.2.3 计数器代码的花式写法 136
7.3 计数器是流水灯的核心 137
7.3.1 设计一个秒信号 137
7.3.2 流水灯电路的设计方案 139
7.3.3 闪烁频率可控制的流水灯 140
7.3.4 采用移位运算设计流水灯电路 142
7.4 Verilog的本质是并行语言 142
7.4.1 典型的Verilog错误用法―同一信号重复赋值 142
7.4.2 并行语言与顺序语言 144
7.4.3 采用并行思维分析信号重复赋值问题 145
7.5 呼吸灯电路设计 146
7.5.1 呼吸灯的工作原理 146
7.5.2 设计思路分析 147
7.5.3 亮度实现模块Verilog HDL设计 147
7.5.4 亮度控制模块Verilog HDL设计 148
7.5.5 顶层模块Verilog HDL设计 150
7.6 小结 151
第三篇 入门篇
第8章 设计简洁美观的秒表电路 155
8.1 设定一个目标―4位秒表电路 155
8.1.1 明确功能需求 155
8.1.2 形成设计方案 156
8.2 顶层文件的Verilog HDL设计 157
8.3 设计一个完善的数码管显示模块 158
8.4 秒表计数模块的Verilog HDL设计 160
8.4.1 秒表计数电路设计 160
8.4.2 秒表计数电路的ModelSim仿真 162
8.4.3 简洁美观的秒表计数器设计 163
8.4.4 实现秒表的启停功能 166
8.5 按键消抖模块的Verilog HDL设计 166
8.5.1 按键消抖产生的原理 166
8.5.2 按键消抖模块Verilog HDL设计 167
8.5.3 将按键消抖模块集成到秒表电路中 169
8.6 小结 169
第9章 数字密码锁电路设计 171
9.1 数字密码锁的功能描述 171
9.2 规划好数字密码锁的功能模块 172
9.2.1 数字密码锁总体结构框图 172
9.2.2 数字密码锁的顶层模块设计 172
9.3 数字密码锁功能子模块设计 174
9.3.1 按键消抖模块Verilog HDL设计 174
9.3.2 计数模块Verilog HDL设计 175
9.3.3 密码设置模块才是核心模块 176
9.4 小结 178
第10章 简易电子琴电路设计 179
10.1 音符产生原理 179
10.2 琴键功能电路设计 180
10.2.1 顶层模块设计 180
10.2.2 琴键模块设计 182
10.2.3 音符产生模块设计 183
10.3 自动演奏乐曲《梁祝》 185
10.3.1 自动演奏乐曲的原理 185
10.3.2 自动演奏乐曲《梁祝》片段 186
10.4 完整的电子琴电路设计 189
10.5 小结 190
第11章 应用广泛的串口通信电路 191
11.1 RS-232串口通信的概念 191
11.2 串口硬件电路原理分析 192
11.3 串口通信电路Verilog HDL设计 193
11.3.1 顶层文件的Verilog HDL设计 193
11.3.2 时钟模块的Verilog HDL设计 195
11.3.3 接收模块的Verilog HDL设计 196
11.3.4 发送模块的Verilog HDL设计 198
11.3.5 FPGA实现及板载测试 199
11.4 采用串口控制秒表电路 201
11.4.1 设计需求分析 201
11.4.2 顶层文件的Verilog HDL设计 202
11.4.3 秒表时间获取模块Verilog HDL设计 204
11.4.4 完善秒表电路顶层模块Verilog HDL代码 205
11.4.5 完善秒表计数模块Verilog HDL代码 207
11.4.6 FPGA实现及板载测试 210
11.5 小结 210
第12章 对状态机的讨论 211
12.1 有限状态机的概念 211
12.2 状态机的Verilog设计方法 212
12.2.1 一段式状态机Verilog代码 212
12.2.2 二段式状态机Verilog代码 213
12.2.3 三段式状态机Verilog HDL代码 215
12.3 计数器电路的状态机描述方法 216
12.4 序列检测器的状态机描述方法 218
12.5 小结 221
第四篇 提高篇
第13章 基本的时序约束方法 225
13.1 电路的速度极限 225
13.2 时序约束方法 227
13.2.1 查看计数器的逻辑电路结构 227
13.2.2 计数器电路添加时钟周期约束 229
13.3 速度与面积的取舍 231
13.3.1 多路加法器电路的结构分析 231
13.3.2 流水线操作的本质―讨论多路加法器的运行速度 233
13.3.3 用一个加法器完成4路加法 235
13.3.4 串行加法器时序分析 238
13.4 小结 238
第14章 采用IP核设计 241
14.1 FPGA设计中的“拿来主义”―使用IP核 241
14.1.1 IP核的一般概念 241
14.1.2 FPGA设计中的IP核类型 242
14.2 时钟IP核 244
14.2.1 全局时钟资源 244
14.2.2 采用时钟IP核生成多路时钟信号 244
14.3 乘法器IP核 248
14.3.1 乘法器IP核参数的设置 248
14.3.2 乘法器IP核的功能仿真 250
14.4 存储器IP核 251
14.4.1 ROM核 251
14.4.2 RAM核 255
14.5 小结 260
第15章 采用在线逻辑分析仪调试程序 261
15.1 在线逻辑分析仪的优势 261
15.2 GAO的使用流程 262
15.3 采用GAO调试串口通信程序 263
15.3.1 调试目的 263
15.3.2 添加GAO到项目中 263
15.3.3 设置触发信号及触发条件 264
15.3.4 设置捕获信号参数 265
15.3.5 观察串口收发信号波形 267
15.4 小结 268
第16章 常用的FPGA设计技巧 269
16.1 默认引脚状态设置 269
16.2 复位信号的处理方法 271
16.3 合理利用时钟使能信号设计 272
16.4 利用移位相加实现乘法运算 273
16.5 根据芯片结构制定设计方案 274
16.6 浮点乘法器设计 275
16.6.1 单精度浮点数据格式 275
16.6.2 单精度浮点数乘法运算分析 276
16.6.3 自定义浮点数据格式 276
16.6.4 自定义浮点数据乘法算法设计 277
16.6.5 算法Verilog HDL实现 278
16.7 小结 284
参考文献 287