FPGA现代数字系统设计教程:基于XILINX可编程逻辑器件与VIVADO平台
作者:孟宪元编著
出版时间:2020年版
内容简介
遵循摩尔定律的发展规律,FPGA技术已经进入到异构多核处理器和异构并行计算的崭新阶段,本书以FPGA的发展阶段讲述器件的架构和特性,以Verilog语言作为硬件描述语言讲述数字系统的设计,保证设计功能通过仿真验证的正确性,在Vivado设计套件中通过RTL分析、综合和布局布线的实现等进程达到时序收敛,性能上满足设计要求,本书也介绍了有关同步设计的技巧和要点,高级综合等特性。DSP系统和嵌入式系统的设计流程和方法也作了介绍,最后以多个设计实例对前述的设计方法作了详尽的说明。 内容全面涵盖FPGA及Vivado的基本功能,及其在数字系统中的多种设计流程。 技术前沿基于当前的Vivado设计套件版本,论述了FPGA主流设计技术。 易于实践全书结合大量实例论述,图文并茂、操作性强,便于快速动手实践。
目录
目录
第1章现代数字系统设计概论
1.1概述
1.2数字系统的层次化结构
1.2.1开关电路级的基础——CMOS反相器
1.2.2逻辑级的门电路
1.2.3寄存器传输级的有限状态机
1.2.4数字系统的系统级构成
1.2.5复杂系统的算法级设计
1.3数字系统设计的描述方法
1.3.1原理图设计
1.3.2程序设计法
1.3.3IP模块的使用
1.3.4基于模型的设计技术
1.3.5高层次综合——HLS设计
1.3.6脚本设计技术
1.4IP技术
1.4.1IP知识产权模块
1.4.2IP模块的种类与应用
1.4.3片上系统和IP核复用
1.5全可编程FPGA/SoC实现智能化系统
1.5.1软件智能化和硬件最佳化
1.5.2在线可重构技术
1.5.3可重配置加速堆栈
1.5.4自适应计算加速平台
本章小结
习题
第2章可编程逻辑器件
2.1概述
2.1.1可编程逻辑器件概述
2.1.2可编程逻辑器件分类
2.2CPLD的结构和工作原理
2.2.1简单可编程逻辑器件原理
2.2.2CPLD的结构和工作原理
2.3FPGA的结构和工作原理
2.3.1SRAM查找表类型
2.3.2反熔丝多路开关类型
2.4逻辑级FPGA的结构和工作原理
2.4.1可编程逻辑
2.4.2可编程互连线
2.4.3可编程I/O
2.5系统级FPGA的结构和工作原理
2.5.1片上存储器及接口
2.5.2数字时钟管理
2.5.3时钟资源
2.5.4系统级I/O
2.6平台级FPGA的结构和工作原理
2.6.1DSP模块
2.6.2高速串行接口
2.7全可编程FPGA的特性和结构
2.7.1采用统一的7系列架构
2.7.2高性能和低功耗结合的工艺
2.8ASIC架构的UltraScale系列
2.8.1UltraScale架构
2.8.2SSI互连技术
2.9FPGA的配置
2.9.1编程原理简介
2.9.2编程模式
2.9.3典型的配置电路
2.9.4编程流程
2.9.5部分重配置
本章小结
习题
第3章Verilog硬件描述语言
3.1硬件描述语言概述
3.1.1硬件描述语言特点
3.1.2层次化设计
3.2Verilog HDL程序的基本结构
3.2.1模块结构分析
3.2.2模块的实例化
3.3Verilog HDL词法、数据类型和运算符
3.3.1词法约定
3.3.2数据类型
3.3.3运算符
3.4Verilog HDL行为语句
3.4.1赋值语句
3.4.2顺序块和并行块语句
3.4.3结构说明语句
3.4.4条件语句
3.4.5循环语句
3.4.6系统任务和系统函数
3.4.7编译预处理命令
3.4.8Verilog HDL可综合设计
3.5Verilog HDL设计举例
3.5.1组合电路设计
3.5.2时序电路设计
3.5.3数字系统设计
3.5.4数码管扫描显示电路
3.5.5LED通用异步收发电路设计
3.6Testbench文件与设计
本章小结
习题
第4章Vivado设计工具
4.1Vivado工具概述
4.1.1单一的、共享的、可扩展的数据模型
4.1.2标准化XDC约束文件——SDC
4.1.3多维度分析布局器
4.1.4IP封装器、集成器和目录
4.1.5Vivado HLS
4.1.6其他特性
4.1.7TCL特性
4.1.8Vivado按键流程执行设计项目
4.2Vivado设计流程
4.2.1创建工程
4.2.2功能仿真
4.2.3RTL级分析
4.2.4综合设计
4.2.5分配引脚和时序
4.2.6设计实现
4.2.7生成bit文件
4.2.8下载
4.3产生IP集成器子系统设计
4.3.1产生IP集成器模块设计
4.3.2定制IP
4.3.3完成子系统设计
4.3.4产生IP输出产品
4.3.5例示IP到设计中
4.4硬件诊断
4.4.1设计诊断概述
4.4.2Vivado逻辑诊断IP核
4.4.3HDL例示法添加ILA核
4.4.4系统内诊断uart_led设计
4.4.5网表插入法添加诊断核
4.4.6添加VIO诊断核
本章小结
习题
第5章数字系统的高级设计与综合
5.1Verilog编程风格
5.1.1逻辑推理
5.1.2陷阱
5.1.3设计组织
5.1.4针对Xilinx FPGA的HDL编码
5.2综合优化
5.2.1速度与面积
5.2.2资源共享
5.2.3流水线、重新定时和寄存器平衡
5.2.4有限状态机编译
5.3数字系统的同步设计
5.3.1同步设计基本原理
5.3.2建立和保持时间
5.3.3时序例外约束
5.3.4同步设计中的异步问题
5.4数字系统的综合
5.4.1数字系统综合概述
5.4.2系统级综合
5.4.3高级综合
5.4.4寄存器传输级综合
5.4.5逻辑级综合
本章小结
习题
第6章综合设计实例
6.1实例一: 键盘输入电路设计
6.1.1PS/2通信协议
6.1.2PS/2接口设计
6.1.3键盘输入程序
6.2实例二: VGA显示电路设计
6.2.1设计任务
6.2.2原理分析与系统方案
6.2.3彩条显示
6.2.4Logo的VGA显示
6.3实例三: 俄罗斯方块游戏设计
6.3.1系统组成
6.3.2数据通道
6.3.3控制单元
6.3.4按键输入处理模块
6.3.5显示部分
6.4实例四: 五子棋人机对弈游戏设计
6.4.1gobang_top
6.4.2gobang_datapath
6.4.3gobang_logic
6.4.4gobang_strategy
6.4.5score_calculater
6.4.6win_checker
6.4.7输出显示
习题
附录AEGO1用户手册
A.1概述
A.2FPGA
A.3板卡供电
A.4系统时钟
A.5FPGA配置
A.6通用I/O接口
A.6.1按键
A.6.2开关
A.6.3LED
A.6.4七段数码管
A.7VGA接口
A.8音频接口
A.9USBUART/JTAG接口
A.10USB转PS2接口
A.11SRAM接口
A.12模拟电压输入
A.13DAC输出接口
A.14蓝牙模块
A.15通用扩展I/O
附录BVerilog HDL(IEEE 1364—2001)关键词表及说明
参考文献