第1章 Xilinx新一代UltraScale结构 1
1.1 UltraScale结构特点 1
1.2 可配置逻辑块 2
1.2.1 可配置逻辑块的特点 2
1.2.2 多路复用器 3
1.2.3 进位逻辑 5
1.2.5 分布式RAM(只有SLICEM) 7
1.2.6 只读存储器(ROM) 8
1.2.7 移位寄存器(只有SLICEM) 9
1.3 时钟资源和时钟管理单元 10
1.3.1 时钟资源 10
1.3.2 时钟管理模块 12
1.4 块存储器资源 13
1.5 专用的DSP模块 15
1.6 输入/输出块 16
1.7 高速串行收发器 17
1.8 PCI-E模块 18
1.9 Interlaken集成块 19
1.10 Ethernet模块 19
1.11 系统监控器模块 19
1.12 配置模块 20
1.13 互联资源 20
第2章 Vivado集成设计环境导论 22
2.1 Vivado系统级设计流程 22
2.2 Vivado功能和特性 24
2.3 Vivado中电路结构的网表描述 25
2.4 Vivado中工程数据的目录结构 26
2.5 Vivado中Journal文件和Log文件功能 26
2.5.1 Journal文件(Vivado.jou) 26
2.5.2 Log文件(Vivado.log) 27
2.6 Vivado两种设计流程模式 28
2.6.1 工程模式和非工程模式不同点比较 28
2.6.2 工程模式和非工程模式命令的不同 29
2.7 Vivado中XDC文件 30
2.7.1 XDC的特性 30
2.7.2 XDC与UCF比较 31
2.7.3 约束文件的使用方法 32
2.7.4 约束顺序 32
2.7.5 XDC约束命令 33
2.8 Vivado集成设计环境的启动方法 34
2.9 Vivado集成设计环境主界面 35
2.10 Vivado设计主界面及功能 38
2.10.1 流程处理主界面及功能 38
2.10.2 工程管理器主界面及功能 40
2.10.3 工作区窗口 42
2.10.4 设计运行窗口 42
第3章 Vivado工程模式基本设计实现 44
3.1 创建新的设计工程 44
3.2 创建并添加一个新的设计文件 48
3.3 RTL详细描述和分析 52
3.4 设计综合和分析 55
3.4.1 综合过程的关键问题 55
3.4.2 设计综合选项 55
3.4.3 Vivado支持的属性 58
3.4.4 执行设计综合 66
3.4.5 综合报告的查看 69
3.5 设计行为级仿真 70
3.6 创建实现约束 75
3.6.1 实现约束的原理 75
3.6.2 I/O规划器功能 75
3.6.3 实现约束过程 76
3.7 设计实现和分析 81
3.7.1 设计实现原理 82
3.7.2 设计实现选项 82
3.7.3 设计实现及分析 87
3.7.4 静态时序分析 93
3.8 设计时序仿真 97
3.9 生成编程文件 98
3.9.1 执行生成可编程文件 98
3.9.2 生成编程文件选项 98
3.10 下载比特流文件到FPGA 100
第4章 Vivado非工程模式基本设计实现 104
4.1 非工程模式基本命令和功能 104
4.1.1 非工程模式基本命令列表 104
4.1.2 典型Tcl脚本的使用 105
4.2 Vivado集成开发环境分析设计 106
4.2.1 启动Vivado集成开发环境 106
4.2.2 打开设计检查点的方法 107
4.3 修改设计路径 107
4.4 设置设计输出路径 108
4.5 读取设计文件 108
4.6 运行设计综合 109
4.7 运行设计布局 110
4.8 运行设计布线 112
4.9 生成比特流文件 114
4.10 下载比特流文件 115
第5章 创建和封装用户IP核流程 117
5.1 Vivado定制IP流程 117
5.2 创建新的用于创建IP的工程 118
5.3 设置定制IP的库名和目录 119
5.4 封装定制IP的实现 120
5.5 创建新的用于调用IP的工程 124
5.6 设置包含调用IP的路径 124
5.7 创建基于IP的系统 125
5.8 系统行为级仿真 129
5.9 系统设计综合 132
5.10 系统实现和验证 133
第6章 Vivado高级约束原理及实现 135
6.1 时序检查概念 135
6.1.1 基本术语 135
6.1.2 时序路径 135
6.1.3 建立和保持松弛 137
6.1.4 建立和保持检查 138
6.1.5 恢复和去除检查 141
6.2 时序约束概念 142
6.2.1 时钟定义 142
6.2.2 时钟组 148
6.2.3 I/O延迟约束 151
6.2.4 时序例外 154
6.3 生成时序报告 168
6.4 添加时序约束 175
6.4.1 时序约束策略1 175
6.4.2 时序约束策略2 177
6.5 物理约束原理 182
6.5.1 网表约束 182
6.5.2 布局约束 183
6.5.3 布线约束 185
6.6 布局约束实现 186
6.6.1 修改综合属性 187
6.6.2 布局约束方法 188
6.7 布线约束实现 191
6.7.1 手工布线 191
6.7.2 进入分配布线模式 192
6.7.3 分配布线节点 194
6.7.4 取消分配布线节点 194
6.7.5 完成并退出分配布线模式 194
6.7.6 锁定LUT负载上的单元输入 195
6.7.7 分支布线 195
6.7.8 直接约束布线 197
6.8 修改逻辑实现 198
6.9 配置约束原理 199
6.10 增量编译 199
6.10.1 增量编译流程 199
6.10.2 运行增量布局和布线 200
6.10.3 使用增量编译 202
6.10.4 增量编译高级分析 204
第7章 Vivado调试工具原理及实现 205
7.1 设计调试原理和方法 205
7.2 创建新的FIFO调试工程 206
7.3 添加FIFO IP到设计中 207
7.4 添加顶层设计文件 210
7.5 使用HDL例化添加FIFO到设计中 211
7.6 添加约束文件 216
7.7 网表插入调试探测流程方法及实现 218
7.7.1 网表插入调试探测流程的方法 218
7.7.2 网表插入调试探测流程的实现 220
7.8 使用添加HDL属性调试探测流程 225
7.9 使用HDL例化调试核调试探测流程 227
第8章 Vivado嵌入式系统设计实现 232
8.1 简单硬件系统设计 232
8.1.1 创建新的工程 232
8.1.2 使用IP集成器创建处理器系统 234
8.1.3 生成顶层HDL和导出设计到SDK 240
8.1.4 创建存储器测试程序 243
8.1.5 验证设计 245
8.2 在PL内添加外设 247
8.2.1 打开工程 248
8.2.2 添加两个GPIO实例 248
8.2.3 连接外部GPIO外设 256
8.2.4 设计综合 257
8.2.5 生成比特流和导出硬件到SDK 258
8.2.6 生成测试程序 258
8.2.7 验证设计 262
8.3 创建和添加定制IP 263
8.3.1 创建定制IP模板 263
8.3.2 修改定制IP设计模板 266
8.3.3 使用IP封装器封装外设 271
8.3.4 打开工程和修改设置 274
8.3.5 添加定制IP到设计 275
8.3.6 添加BRAM 277
8.3.7 添加约束xdc 279
8.4 编写软件程序 280
8.4.1 打开工程 280
8.4.2 创建应用工程 281
8.4.3 为LED_IP分配驱动 284
8.4.4 分析汇编目标文件 286
8.4.5 验证设计 288
8.5 软件控制定时器和调试 288
8.5.1 打开工程 288
8.5.2 创建SDK软件工程 289
8.5.3 在硬件上验证操作 294
8.5.4 启动调试器 295
8.6 使用硬件分析仪调试 297
8.6.1 ILA核原理 298
8.6.2 VIO核原理 301
8.6.3 打开工程 302
8.6.4 添加定制IP 303
8.6.5 添加ILA和VIO核 303
8.6.6 标记和分配调试网络 306
8.6.7 生成测试程序 307
8.6.8 验证和调试 310
第9章 Vivado模型设计原理及实现 317
9.1 FPGA信号处理方法 317
9.2 FPGA模型设计模块 318
9.2.1 Xilinx Blockset 318
9.2.2 Xilinx Reference Blockset 319
9.3 System Generator运行环境的配置 319
9.4 信号模型的构建和实现 320
9.4.1 信号模型的构建 320
9.4.2 模型参数的设置 324
9.4.3 信号处理模型的仿真 326
9.4.4 生成模型子系统 326
9.4.5 模型HDL代码的生成 327
9.4.6 打开生成设计文件并仿真 329
9.4.7 协同仿真的配置及实现 330
9.4.8 生成IP核 333
9.5 编译MATLAB到FPGA 334
9.5.1 模型的设计原理 334
9.5.2 系统模型的建立 336
9.5.3 系统模型的仿真 338
9.6 FIR滤波器的设计与实现 339
9.6.1 FIR滤波器设计原理 339
9.6.2 生成FIR滤波器系数 339
9.6.3 构建FIR滤波器模型 341
9.6.4 仿真FIR滤波器模型 344
9.6.5 修改FIR滤波器模型 345
9.6.6 仿真修改后FIR滤波器模型 345
第10章 Vivado HLS原理及实现 347
10.1 高级综合工具概述 347
10.1.1 高级综合工具的功能和特点 347
10.1.2 不同的命令对HLS综合结果的影响 348
10.1.3 从C中提取硬件结构 349
10.2 高级综合工具调度和绑定 352
10.2.1 高级综合工具调度 352
10.2.2 高级综合工具绑定 353
10.3 Vivado HLS工具的优势 353
10.4 C代码的关键属性 354
10.4.1 函数 355
10.4.2 类型 356
10.4.3 循环 362
10.4.4 数组 364
10.4.5 端口 364
10.4.6 操作符 365
10.5 时钟测量术语说明 366
10.6 HLS关键优化策略 367
10.6.1 延迟和吞吐量 367
10.6.2 循环的处理 375
10.6.3 数组的处理 378
10.6.4 函数内联 383
10.6.5 命令和编译指示 384
10.7 Vivado HLS数字系统实现 386
10.7.1 基于HLS实现组合逻辑 386
10.7.2 基于HLS实现时序逻辑 400
10.7.3 基于HLS实现矩阵相乘 406
第11章 Vivado部分可重配置原理及实现 426
11.1 可重配置导论 426
11.1.1 可重配置的概念 426
11.1.2 可重配置的应用 427
11.1.3 可重配置的特点 430
11.1.4 可重配置术语解释 432
11.1.5 可重配置的要求 433
11.1.6 可重配置的标准 433
11.1.7 可重配置的流程 435
11.2 可重配置的实现 435
11.2.1 查看脚本 436
11.2.2 综合设计 437
11.2.3 实现第一个配置 437
11.2.4 实现第二个配置 444
11.2.5 验证配置 445
11.2.6 生成比特流 446
11.2.7 部分重配置FPGA 448
· · · · · · (
收起)