内容简介
第1章 Xilinx新一代UltraScale结构
1.1 UltraScale结构特点
1.2 可配置逻辑块
1.2.1 可配置逻辑块的特点
1.2.2 多路复用器
1.2.3 进位逻辑
1.2.4 存储元素
1.2.5 分布式RAM
1.2.6 只读存储器(ROM)
1.2.7 移位寄存器
1.3 时钟资源和时钟管理模块
1.3.1 时钟资源
1.3.2 时钟管理模块
1.4 块存储器资源
1.5 专用的DSP模块
1.6 SelectIO资源
1.7 高速串行收发器
1.8 PCI-E模块
1.9 Interlaken集成块
1.10 Ethernet模块
1.11 系统监控器模块
1.12 配置模块
1.13 互联资源
第2章 Vivado集成设计环境导论
2.1 Vivado系统级设计流程
2.2 Vivado功能和特性
2.3 Vivado中电路结构的网表描述
2.4 Vivado中工程数据的目录结构
2.5 Vivado中Joumal文件和Log文件功能
2.5.1 Joumal文件(Vivado.jou)
2.5.2 Log文件(Vivado.log)
2.6 Vivado两种设计流程模式
2.6.1 工程模式和非工程模式不同点比较
2.6.2 工程模式和非工程模式命令的不同
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集成设计环境的启动方法
2.9 Vi vado集成设计环境主界面
2.10 Vivado设计主界面及功能
2.10.1 流程处理主界面及功能
2.10.2 工程管理器主界面及功能
2.10.3 工作区窗口
2.10.4 设计运行窗口
2.11 Vivado支持的属性
第3章 Vivado工程模式基本设计实现
3.1 创建新的设计工程
3.2 创建并添加一个新的设计文件
3.3 RTL详细描述和分析
3.3.1 详细描述的实现
3.3.2 生成HDL例化模板
3.4 设计综合和分析
3.4.1 综合过程的关键问题
3.4.2 设计综合选项
3.4.3 执行设计综合
3.4.4 综合报告的查看
3.5 设计行为级仿真
3.6 创建实现约束
3.6.1 实现约束的原理
3.6.2 I/O规划器功能
3.6.3 添加引脚约束
3.6.4 添加简单的时钟约束
3.7 设计实现和分析
3.7.1 设计实现原理
3.7.2 设计实现选项
3.7.3 设计实现及分析
3.7.4 静态时序分析
3.8 设计时序仿真
3.9 生成编程文件
39.1 配置器件属性
3.9.2 生成可编程文件
3.9.3 生成可编程文件选项
3.10 下载比特流文件到FPGA
3.11 生成并烧写PROM文件
第4章 Vivado非工程模式基本设计实现
4.1 非工程模式基本命令和功能
4.1.1 非工程模式基本命令列表
4.1.2 典型Tcl脚本的使用
4.2 Vi vado集成开发环境分析设计
4.2.1 启动Vivado集成开发环境
4.2.2 打开设计检查点的方法
4.3 修改设计路径
4.4 设置设计输出路径
4.5 读取设计文件
4.6 运行设计综合
4.7 运行设计布局
4.8 运行设计布线
4.9 生成比特流文件
4.10 下载比特流文件
第5章 创建和封装用户IP核流程
5.1 Vivado定制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 系统设计综合
5.3.6 系统实现和验证
5.4 创建并封装不包含源文件的IP
5.4.1 创建网表文件
5.4.2 创建新的设计工程
5.4.3 设置定制IP的库名和目录
5.4.4 封装定制IP的实现
5.5 调用并验证不包含源文件的IP设计
5.5.1 创建新的用于调用IP的工程
5.5.2 设置包含调用IP的路径
5.5.3 创建基于IP的系统
5.5.4 系统设计综合
第6章 Vivado高级约束原理及实现
6.1 时序检查概念
6.1.1 基本术语
6.1.2 时序路径
6.1.3 建立和保持松弛
6.1.4 建立和保持检查
6.1.5 恢复和去除检查
6.2 时序约束概念
6.2.1 时钟定义
6.2.2 时钟组
6.2.3 I/O延迟约束
6.2.4 时序例外
6.3 生成时序报告
6.4 添加时序约束
6.4.1 时序约束策略1
6.4.2 时序约束策略2
6.5 物理约束原理
6.5.1 网表约束
6.5.2 布局约束
6.5.3 布线约束
6.6 布局约束实现
6.6.1 修改综合属性
6.6.2 布局约束方法
6.7 布线约束实现
6.7.1 手工布线
6.7.2 进入分配布线模式
6.7.3 分配布线节点
6.7.4 取消分配布线节点
6.7.5 完成并退出分配布线模式
6.7.6 锁定LUT负载上的单元输入
6.7.7 分支布线
6.7.8 直接约束布线
6.8 修改逻辑实现
6.9 配置约束原理
6.10 增量编译
6.10.1 增量编译流程
6.10.2 运行增量布局和布线
6.10.3 使用增量编译
6.10.4 增量编译高级分析
第7章 Vivado调试工具原理及实现
7.1 设计调试原理和方法
7.2 创建新的设计
7.2.1 创建新的FIFO调试工程
7.2.2 添加FIFO IP到设计中
7.2.3 添加顶层设计文件
7.2.4 使用HDL例化添加FIFO到设计中
7.2.5 添加约束文件
7.3 网表插入调试探测流程方法及实现
7.3.1 网表插入调试探测流程的方法
7.3.2 网表插入调试探测流程的实现
7.4 使用添加HDL属性调试探测流程
7.5 使用HDL例化调试核调试探测流程
7.6 VIO原理及应用
7.6.1 设计原理
7.6.2 添加VIO核
7.6.3 生成比特流文件
7.6.4 下载并调试设计
第8章 Vivado部分可重配置原理及实现
8.1 可重配置导论
8.1.1 可重配置的概念
8.1.2 可重配置的应用
8.1.3 可重配置的特点
8.1.4 可重配置术语解释
8.1.5 可重配置的要求
8.1.6 可重配置的标准
8.1.7 可重配置的流程
8.2 基于工程的部分可重配置实现
8.2.1 设计原理
8.2.2 建立可重配置工程
8.2.3 创建新的分区定义
8.2.4 添加新的可重配置模块
8.2.5 设置不同的配置选项
8.2.6 定义分区的布局
8.2.7 执行DRC
8.2.8 实现第一个运行配置并生成比特流文件
8.2.9 实现第二个运行配置并生成比特流文件
8.2.10 实现第三个运行配置并生成比特流文件
8.2.11 实现第四个运行配置并生成比特流文件
8.2.12 下载不同运行配置的部分比特流
8.3 基于非工程的部分可重配置实现
8.3.1 查看脚本
8.3.2 综合设计
8.3.3 实现第一个配置
8.3.4 实现第二个配置
8.3.5 验证配置
8.3.6 生成比特流
8.3.7 部分重配置FPGA
8.4 部分重配置控制器PRC的原理及应用
8.4.1 部分重配置控制器原理
8.4.2 实现原理
8.4.3 创建和配置新的设计
8.4.4 添加ILA核
8.4.5 添加和设置PRC核
8.4.6 设置不同的配置选项
8.4.7 定义分区的布局
8.4.8 实现第一个运行配置并生成比特流文件
8.4.9 实现第二个运行配置并生成比特流文件
8.4.10 实现第三个运行配置并生成比特流文件
8.4.11 创建板支持包工程
8.4.12 创建应用程序工程
8.4.13 创建zynq_fsbl应用
8.4.14 创建启动镜像
8.4.15 从SD卡启动引导系统
第9章 Vivado HLS原理详解
9.1 高级综合工具概述
9.1.1 高级综合工具的功能和特点
9.1.2 Vivado HLS工具的优势
9.1.3 HLS中使用术语说明
9.1.4 从C中提取硬件结构
9.1.5 不同的命令对HLS综合结果的影响
9.2 高级综合工具调度和绑定
9.2.1 高级综合工具调度
9.2.2 高级综合工具绑定
9.3 C代码的关键属性
9.3.1 函数
9.3.2 类型
9.3.3 循环
9.3.4 数组
9.3.5 I/O端口
9.3.6 运算符
9.4 C代码级和RTL级算法验证
9.5 添加命令
9.6 延迟和吞吐量的概念
9.6.1 设计延迟
9.6.2 设计吞吐量
9.7 改善延迟
9.7.1 延迟最小化
9.7.2 用户延迟的定义
9.7.3 循环的处理
9.8 改善吞吐量
9.8.1 数据流优化
9.8.2 流水线优化
9.9 性能瓶颈——数组
9.9.1 数组分割
9.9.2 数组重组
9.9.3 数据打包
9.1 0改善面积和资源
9.10.1 绑定配置
9.10.2 分配命令
9.10.3 指定资源
9.10.4 函数内联
9.10.5 循环合并和平坦化
9.10.6 映射数组
9.10.7 任意精度整数
9.11 I/O类型
9.11.1 组合和时序逻辑设计
9.11.2 Vivado HLS I/O选项
9.11.3 模块级协议说明
9.11.4 端口级I/O协议
9.12 命令和编译指示
第10章 Vivado HLS实现过程详解
10.1 FIR滤波器不同语言的描述方式
10.1.1 C语言描述风格
10.1.2 C+++语言描述风格
10.1.3 SystemC语言描述风格
10.2 Vivado HLS不支持的操作
10.3 测试平台编码
10.4 指针的使用
10.5 流的使用
10.6 支持库
10.6.1 FFT
10.6.2 FIR
10.6.3 移位寄存器
10.6.4 线性算法库
10.6.5 OpenCV库
10.7 Vivado HLS数字系统实现
10.7.1 基于HLS实现组合逻辑
10.7.2 基于HLS实现时序逻辑
10.7.3 基于HLS实现矩阵相乘
第11章 HDMI显示屏驱动原理和实现
11.1 HDMI的发展历史
11.2 HDMI视频显示接口定义
11.3 HDMI链路结构
11.4 HDMI链路时序要求
11.5 HDMI编码算法
11.6 HDMI并行编码数据转换原理及实现
11.6.1 数据并行-串行转换
11.6.2 三态并行-串行转换器
11.6.3 OSERDESE2原语
11.6.4 TMDS信号转换模块
11.6.5 HDMI并行编码数据转换的实现
11.7 系统整体设计结构
附录a7-edp-1开发板原理图