Design guide: Xilinx all programmable Zynq-7000 SoC

副标题:无

作   者:何宾编著

分类号:

ISBN:9787302322221

微信扫一扫,移动浏览光盘

简介

《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》首次论述Zynq-7000 SoC体系结构、程序设计及操作系统移植的方法与实践。 详尽介绍Zynq-7000 SoC的体系结构和相关生态系统,便于读者快速动手实践。 始终围绕软件和硬件协同设计的理念叙述,利于读者彻底掌握Zynq-7000 SoC的设计方法和技巧。 《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》的编写得到了Xilinx及其合作伙伴的大力支持,藉其丰富的资源,反映出最新的设计技术水平。 《Xilinx All Programmable Zynq-7000 SoC设计指南》配套提供设计实例的完整设计代码和教学课件资源。 《EDA工程技术丛书:Xilinx All Programmable Zynq-7000 SoC设计指南》内容(含) 可编程SoC设计 AMBA协议规范 Zynq-7000应用处理单元 可编程逻辑资源 系统互连结构 系统公共资源特性及功能 Zynq调试和测试系统 Zynq平台的启动和配置 Zynq平台主要外设模块 Zynq平台描述规范 高级综合工具HLS 14个设计实例 附赠内容 源代码:第12章~第23章涉及实例的源代码文件 教学课件:分成理论和实践两大部分

目录

第1篇 Zynq-7000体系结构
第1章 可编程SoC设计导论 19
1.1 可编程SoC系统设计基础 19
1.1.1 软核及硬核处理器 19
1.1.2 可编程SoC技术的发展 20
1.1.3 可编程SoC系统技术特点 21
1.1.4 可编程SoC设计流程 21
1.1.5 可编程SoC开发工具 23
1.2 Xilinx Zynq平台导论 28
1.2.1 Xilinx Zynq平台功能 28
1.2.2 处理系统PS特性 30
1.2.3 可编程逻辑PL特性 35
1.2.4 互联特性及描述 37
1.2.5 Zynq信号、接口和引脚 39
1.3 Zynq平台设计方法学 46
1.3.1 使用PL实现软件算法的优势 46
1.3.2 设计PL加速器 47
1.3.3 PL加速限制 47
1.3.4 降低功耗 48
1.3.5 实时减负 49
1.3.6 可重配置计算 49
第2章 AMBA协议规范 50
2.1 AMBA规范导论 50
2.2 AMBA APB规范 51
2.2.1AMBA APB写传输 51
2.2.2AMBA APB读传输 52
2.2.3 AMBA APB错误响应 53
2.2.4操作状态 54
2.2.5AMBA3 APB信号 54
2.3 AMBA AHB规范 56
2.3.1 AMBA AHB结构 56
2.3.2 AMBA AHB操作 58
2.3.3 AMBA AHB传输类型 60
2.3.4 AMBA AHB猝发操作 61
2.3.5 AMBA AHB传输控制信号 64
2.3.6 AMBA AHB地址译码 66
2.3.7 AMBA AHB从设备传输响应 67
2.3.8 AMBA AHB数据总线 70
2.3.9 AMNA AHB传输仲裁 71
2.3.10 AMBA AHB分割传输 76
2.3.11 AMBA AHB复位 79
2.3.12 关于AHB数据总线的位宽 79
2.3.13 AMBA AHB接口设备 80
2.4 AMBA AXI4规范 11
2.4.1 AMBA AXI4概述 错误!未定义书签。
2.4.2 AMBA AXI4功能 11
2.4.3 AMBA AXI4互联结构 20
2.4.4 AXI4-Lite功能 22
2.4.5 AXI4-Stream功能 23
第2篇 Zynq-7000体系结构
第3章 Zynq-7000应用处理单元 27
3.1 应用处理单元 27
3.1.1 基本功能 27
3.1.2 系统级视图 29
3.2 Cortex-A9处理器 30
3.2.1 中央处理器 30
3.2.2 L1高速缓存 33
3.2.3 存储器管理单元 34
3.2.4 接口 37
3.2.5 NEON 38
3.2.6 性能监视单元 39
3.3 侦听控制单元 39
3.3.1 地址过滤 39
3.3.2 SCU主设备端口 40
3.4 L2高速缓存 40
3.4.1 互斥 L2-L1高速缓存配置 42
3.4.2 高速缓存替换策略 43
3.4.3 高速缓存锁定 43
3.4.4 使能/禁止 L2高速缓存控制器 44
3.4.5 RAM访问延迟控制 45
3.4.6 保存缓冲区操作 45
3.4.7 在Cortex-A9和L2控制器之间的优化 46
3.4.8 预取操作 47
3.4.9 编程模型 48
3.5 片上存储器 48
3.5.1 片上存储器结构 48
3.5.2 片上存储器功能 50
3.6 APU接口 57
3.6.1 PL协处理接口 57
3.6.2 中断接口 60
3.7 APU内的TrustZone 60
3.7.1 CPU安全过渡 61
3.7.2 CP15寄存器访问控制 61
3.7.3 MMU安全性 62
3.7.4 L1缓存安全性 62
3.7.5 安全异常控制 63
3.7.6 CPU调试 TrustZone访问控制 63
3.7.7 SCU寄存器访问控制 63
3.7.8 L2缓存中的TrustZone支持 63
3.8 应用处理单元复位 64
3.8.1 复位功能 64
3.8.2 复位后的APU状态 65
3.9 功耗考虑 65
3.9.1 待机模式 66
3.9.2 在L2控制器内的动态时钟门控 66
3.10系统地址分配 66
3.10.1 地址映射 66
3.10.2 系统总线主设备 68
3.10.3 I/O外设 68
3.10.4 SMC存储器 69
3.10.5 SLCR寄存器 69
3.10.6 杂项PS寄存器 70
3.10.7 CPU私有总线寄存器 70
3.11 中断 70
3.11.1 中断环境 71
3.11.2 中断控制器的功能 72
3.11.3 编程模型 76
3.12 定时器 77
3.12.1 CPU私有定时器和看门狗定时器 77
3.12.2 全局定时器 78
3.12.3 系统看门狗定时器 79
3.12.4 三重定时器/计数器 81
3.12.5 I/O信号 84
3.13 DMA控制器 85
3.13.1 DMA控制器结构及特性 85
3.13.2 DMA控制器功能 89
3.13.3 外部信号 99
3.13.4.寄存器描述 101
3.13.5.用于管理器和命令的指令集参考 102
3.13.6 编程模型参考 103
3.13.7 编程限制 109
3.13.8 DMAC IP配置选项 111
第4章 Zynq-7000可编程逻辑资源 112
4.1 Zynq-7000可编程逻辑资源特性 112
4.2 可编程逻辑资源功能 114
4.2.1 CLB,Slice和LUT 114
4.2.2 时钟管理 114
4.2.3 块RAM 115
4.2.4 数字信号处理-DSP Slice 116
4.2.5 输入/输出 117
4.2.6 低功耗串行收发器 118
4.2.7 PCI-E模块 119
4.2.8 XADC(模拟-数字转换器) 120
4.2.9 配置 120
第5章 系统互连结构 122
5.1 系统互连功能及特性 122
5.1.1 数据路径 124
5.1.2 时钟域 125
5.1.3 连接性 126
5.1.4 AXI ID 127
5.5.5 寄存器概述 128
5.2 服务质量 128
5.2.1 基本仲裁 128
5.2.2 高级QoS 128
5.2.3 DDR端口仲裁 129
5.3 AXI_HP接口 129
5.3.1 AXI_HP接口结构及特点 129
5.3.2 接口数据宽度 133
5.3.3 交易类型 134
5.3.4 命令交替和重新排序 135
5.3.5 性能优化总结 135
5.4 AXI_ACP接口 136
5.5 AXI_GP接口 137
5.6 AXI信号总结 137
5.7 PL接口选择 139
5.7.1 使用通用主设备端口的Cortex-A9 140
5.7.2 通过通用主设备的PS DMA控制器(DMAC) 141
5.7.3 通过高性能接口的PL DMA 142
5.7.4 通过AXI ACP的PL DMA 143
5.7.5 通过通用AXI从(GP)的PL DMA 144
第6章 系统公共资源特性及功能 145
6.1 时钟子系统 145
6.1.1 时钟系统结构及功能 145
6.1.2 CPU时钟域 147
6.1.3 时钟编程实例 148
6.1.4 时钟系统内生成电路结构 149
6.2 复位子系统 153
6.2.1 复位系统结构和层次 154
6.2.2 启动流程 155
6.1.3 复位的结果 156
第7章 Zynq调试和测试子系统 158
7.1 JTAG和DAP子系统 158
7.1.1 JTAG和DAP系统功能描述 160
7.1.2 JTAG和DAP系统I/O信号 162
7.1.3 编程模型 163
7.1.4 ARM DAP控制器 164
7.1.5 跟踪端口接口单元TPIU 165
7.1.6 Xilinx TAP控制器 165
7.2 CoreSight系统结构及功能 166
7.2.1 CoreSight结构 166
7.2.2 CoreSight功能 167
第8章 Zynq平台的启动和配置 172
8.1 Zynq平台启动和配置功能 172
8.2 外部启动要求 173
8.3 BootROM 175
8.3.1 BootROM功能 175
8.3.2 BootROM头部 178
8.3.3 启动设备 180
8.3.4 BootROM多启动和启动分区查找 184
8.3.5 调试状态 186
8.3.6 BootROM后状态 187
8.4 器件配置接口 189
8.4.1 器件配置接口功能 191
8.4.2 器件配置流程 193
8.4.3 PL配置 196
8.4.4 寄存器集合 197
第9章 Zynq平台主要外设模块 199
9.1 DDR存储器控制器 199
9.1.1 DDR存储器控制器接口及功能 200
9.1.2 AXI存储器端口接口 202
9.1.3 DDR核交易调度器 204
9.1.4 DDRC仲裁 204
9.1.5 DDR控制器PHY 206
9.1.6 DDR初始化和标定 206
9.1.7 纠错码 207
9.2 静态存储器控制器 208
9.2.1 静态存储器控制器接口及功能 209
9.2.2 静态存储器控制器和存储器的信号连接 210
9.3 四-SPI Flash控制器 212
9.3.1 四-SPI Flash控制器功能 213
9.3.2 四-SPI控制器反馈时钟 216
9.3.3 四-SPI Flash控制器接口 216
9.4 SD/SDIO外设控制器 218
9.4.1 SD/SDIO控制器功能 219
9.4.2 SD/SDIO控制器传输协议 221
9.4.3 SD/SDIO控制器接口信号连接 223
9.5 通用输入输出控制器 225
9.5.1 通用输入输出GPIO接口及功能 226
9.5.2 通用输入输出GPIO中断功能 227
9.6 USB主机、设备和OTG控制器 229
9.6.1 USB控制器接口及功能 230
9.6.2 USB主机操作模式 233
9.6.3 USB设备操作模式 235
9.6.4 USB OTG操作模式 238
9.7 吉比特以太网控制器 239
9.7.1 吉比特以太网控制器接口及功能 240
9.7.2 吉比特以太网控制器接口编程向导 242
9.7.3 吉比特以太网控制器接口信号连接 246
9.8 SPI控制器 248
9.8.1 SPI控制器的接口及功能 249
9.8.2 SPI控制器时钟设置规则 251
9.9 CAN控制器 252
9.9.1 CAN控制器接口及功能 252
9.9.2 CAN控制器操作模式 255
9.9.3 CAN控制器消息保存 256
9.9.4 CAN控制器接收过滤器 256
9.9.5 CAN控制器编程模型 257
9.10 UART控制器 260
9.10.1 UART控制器接口及功能 261
9.11 I2C控制器 264
9.11.1 I2C速度控制逻辑 265
9.11.2 I2C控制器的功能和工作模式 265
9.12 ADC转换器接口 268
9.12.1 ADC转换器功能 269
9.12.2 ADC命令格式 269
9.12.3 供电传感器报警 270
9.13 PCI-E接口 271
第10章 Zynq平台描述规范 273
10.1 Zynq平台文件描述规范功能集 273
10.2 微处理器硬件规范 273
10.2.1 通用微处理器硬件规范 274
10.2.2 AXI系统微处理器硬件规范 275
10.2.3 Zynq-7000系统微处理器规范实例 276
10.3 微处理器外设规范 280
10.3.1 微处理器规范框架 280
10.3.2总线接口规范 283
10.3.3 IO接口规范 283
10.3.4 选项规范 284
10.3.5 参数规范 286
10.3.6 端口规范 293
10.3.7 设计考虑 295
10.4 外设分析命令 296
10.5 黑盒定义 298
10.6 微处理器软件规范 299
10.6.1 微处理器软件规范格式 299
10.6.2 全局参数 301
10.6.3 实例指定参数 301
10.6.4 MDD/MLD指定参数 302
10.6.5 OS指定参数 302
10.6.6 处理器指定参数 303
10.7 微处理器库定义 303
10.7.1 库定义文件 303
10.7.2 MLD格式规范 304
10.7.3 MLD参数描述 307
10.7.4 设计规则检查 309
10.7.5 库产生 309
10.8 微处理器驱动定义 309
10.8.1 驱动定义文件 310
10.8.2 MDD格式规范 310
10.9 Xilinx板描述格式 312
10.9.1 XBD格式 313
10.9.2 属性命令 313
10.9.3 本地参数命令及子属性 314
10.9.4 本地端口命令及子属性 315
10.9.5 使用IO_INTERFACE关联IP 315
10.9.6 AXI系统XBD格式 316
第11章 高级综合工具HLS 320
11.1 高级综合工具结构 320
11.1.1 不同的命令对HLS综合结果的影响 321
11.1.2 从C中提取硬件结构 323
11.2 高级综合工具调度和绑定 325
11.2.1 高级综合工具调度 325
11.2.2 高级综合工具绑定 326
11.3 Vivado HLS工具的优势 326
11.4 C代码的关键属性 327
11.4.1 函数 328
11.4.2 类型 329
11.4.3 循环 330
11.4.4 数组 332
11.4.5 端口 333
11.4.6 操作符 334
11.5 HLS内提供的用于时钟测量的术语 335
第3篇 Zynq-7000设计实战
第12章 Zynq基本处理系统的建立和运行 338
12.1使用BSB向导生成Zynq基本系统 338
12.1.1 Zynq硬件系统的生成 338
12.1.2生成Hello World应用工程 346
12.1.3运行Hello World应用工程 350
12.2 生成和运行存储器测试工程 352
12.2.1 导入前面的XPS设计到SDK 352
12.2.2 生成存储器测试工程 352
12.2.3运行存储器测试工程 355
12.2.4调试存储器测试工程 356
12.3 生成和运行外设测试工程 358
12.3.1 导入前面的XPS设计到SDK 359
12.3.2 生成外设测试工程 359
12.3.3运行外设测试工程 364
第13章 添加AXI IP到设计 366
13.1 设计原理 366
13.2 添加IP到系统设计 367
13.2.1 创建设计工程 367
13.2.2 添加GPIO IP到设计 368
13.2.3 添加AXI Timer IP到设计 370
13.2.4 连接中断源到PS 371
13.2.5 通过EMIO将PS的GPIO连接到PL 372
13.2.6 添加约束到约束文件 374
13.3 使用SDK设计和实现应用工程 374
13.3.1 导入前面的XPS设计到SDK 374
13.3.2生成应用工程 374
13.3.3 运行应用工程 382
第14章 基于定制IP实现简单嵌入式系统设计 383
14.1创建设计工程 384
14.2 定制GPIO IP核 384
14.2.1 产生GPIO IP模版 384
14.2.2 基于模板构建完整GPIO IP 391
14.3 添加和连接AXI外设 394
14.4 添加约束到用户约束文件 395
14.5 使用SDK设计和实现应用工程 396
14.5.1 修改模板驱动函数 396
14.5.2 导入硬件设计到SDK工具 396
14.5.3 生成新应用工程 397
14.5.4 添加定制IP核软件驱动到设计 397
14.5.5 导入应用程序 398
14.5.6下载硬件比特流文件到FPGA 400
14.5.7 运行应用工程 400
14.5.8 使用XMD分析目标文件 401
第15章 基于定制IP实现复杂嵌入式系统设计 402
15.1 设计原理 402
15.1.1 VGA IP核的设计原理 402
15.1.2移位寄存器IP核的设计原理 404
15.2创建设计工程 405
15.3 定制VGA IP核 406
15.3.1 产生VGA IP模版 406
15.3.2 基于模板构建完整VGA IP 407
15.4 定制移位寄存器IP核 412
15.4.1 产生shifter IP模版 412
15.4.2 基于模板构建完整 shifter IP 413
15.5 添加和连接VGA IP核 416
15.6 添加和连接shifter IP核 416
15.7 添加约束到用户约束文件 417
15.8 使用SDK设计和实现应用工程 418
15.8.1 修改模板驱动函数 418
15.8.2 导入硬件设计到SDK工具 419
15.8.3 生成新的应用工程 419
15.8.4 添加定制IP核软件驱动到设计 420
15.8.5 编写应用程序 421
15.8.6 下载硬件比特流文件到FPGA 424
15.8.7 运行应用工程 424
第16章 软件和硬件协同调试系统 426
16.1 复制并打开设计工程 426
16.2 例化AXI Chipscope核 426
16.3导入硬件设计到SDK工具 429
16.4 启动ChipScope Pro硬件调试器 430
16.5 执行H/S验证 431
第17章 Zynq平台配置和启动的实现 433
17.1 生成SD卡镜像文件并启动 433
17.1.1 SD卡接口 433
17.1.2 复制并打开前面的设计工程 434
17.1.3 创建第一级启动引导 434
17.1.4 创建SD卡启动镜像 435
17.1.5 从SD卡启动引导系统 436
17.2 生成QSPI Flash镜像并启动 437
17.2.1 QSPI Flash接口 437
17.2.2 创建QSPI Flash镜像 438
17.2.3 从QSPI Flash启动引导系统 439
第18章 基于Zynq HP从端口的数据传输实现 440
18.1 设计原理 440
18.2 创建设计工程 441
18.3 添加并配置AXI CDMA到设计 442
18.3.1 添加AXI CDMA IP和互联到设计 442
18.3.2 连接AXI CDMA到设计 443
18.3.3 添加端口连接 446
18.3.4 分配地址空间 447
18.4 使用SDK设计和实现应用工程 448
18.4.1 软件应用的实现原理 448
18.4.2 导入硬件设计到SDK 448
18.4.3 创建新的软件应用工程 449
18.4.4 导入应用程序 449
18.4.5 下载硬件比特流文件到FPGA 457
18.4.6 运行应用工程 457
第19章 基于Zynq ACP从端口的数据传输实现 459
19.1 设计原理 459
19.2 创建设计工程 459
19.3 配置PS端口 460
19.3.1 配置PS 32位GP AXI主端口 460
19.3.2 配置PS的ACP从端口 460
19.4 添加并连接IP到设计 461
19.4.1 添加IP到设计 461
19.4.2 总线连接 462
19.4.3 端口连接 463
19.4.4分配地址空间 464
19.5 使用SDK设计和实现应用工程 464
19.5.1 导入硬件设计到SDK 465
19.5.2 创建新的软件应用工程 465
19.5.3 导入应用程序 465
19.5.4 下载硬件比特流文件到FPGA 469
19.5.5 运行应用工程 469
第20章 XADC在Zynq平台上的应用 471
20.1 设计原理 471
20.2 创建设计工程 472
20.3 添加XADC IP到设计 473
20.4 添加约束到用户约束文件 475
20.4.1 Zedboard板上XADC接口 475
20.4.2 添加约束条件 476
20.5 使用SDK设计和实现应用工程 476
20.5.1 导入硬件设计到SDK工具 476
20.5.2 生成新的应用工程 477
20.5.3 下载硬件比特流文件到FPGA 478
20.5.4 运行应用工程 478
第21章 Ubuntu操作系统在Zynq平台上实现 480
21.1 Ubuntu操作系统环境搭建 480
21.1.1安装虚拟机 480
21.1.2在虚拟机上安装Ubuntu 12.10 485
21.1.3 Linux和windows文件传输工具CuteFTP安装使用 489
21.1.4 Ubuntu相关环境和命令设置 490
21.2 u-boot原理及实现 492
21.2.1 u-boot结构 492
21.2.2 下载u-boot源码 493
21.2.3 u-boot配置与编译 494
21.3 内核概述及编译 495
21.3.1 内核结构 495
21.3.2 内核编译 497
21.4 设备树原理及实现 497
21.4.1 设备树功能 497
21.4.2 设备树数据格式 497
21.4.3 设备树的编译 499
21.5 文件系统原理及实现 499
21.6打开设计工程 500
21.7 使用SDK设计生成软件工程 501
21.7.1 创建第一级引导启动代码 502
21.7.2 SD启动镜像的生成 503
21.8 验证Ubuntu操作系统的运行 504
第22章 μC/OS-III操作系统在Zynq平台上的实现 505
22.1 μc/OS-III操作系统概述 506
22.2 μC/OS-III操作系统环境构建 509
22.3 创建设计工程 509
22.4 建立基于μc/OS-III操作系统的软件应用工程 511
22.4.1 导入设计到SDK中 511
22.4.2 创建新的μC/OS-III设计工程 511
22.4.3 修改编译环境参数 513
22.4.4 重新编译设计工程 514
22.5运行外设测试工程 515
22.5.1 配置硬件平台 515
22.5.2 配置运行环境 515
22.6 相关文件目录功能 516
22.6.1 App、BSP和Documentation文件夹 517
22.6.2 μC/CPU文件夹 517
22.6.3 μC/CSP文件夹 517
22.6.4 μC/LIB文件夹 518
22.6.5 μC/OS-III文件夹 518
22.6.6 用于μC/OS-III文件夹的Xilinx BSP 519
22.7 基于μC/OS-III操作系统的关键工程文件分析 520
22.7.1 Main() 520
22.7.2 AppTaskStart() 521
22.7.3 AppTaskCreate() 523
22.7.4 AppMutexCreate() 524
22.7.5 AppTask1() 524
22.7.6 AppPrint() 525
22.7.7 app_cfg.h 526
第23章 HLS在Zynq嵌入式系统设计中的应用 527
23.1 设计原理 527
23.2 基于HLS生成FIR滤波器 527
23.2.1 设计FIR滤波器 528
23.2.2 运行仿真和验证功能 532
23.2.3 设计综合 534
23.2.4 设计优化 536
23.2.5 运行CoSimulation 537
23.2.6 实现ISim软件下的仿真 538
23.2.7 使用指令创建Pcore 540
23.2.8生成Pcore核 542
23.3创建处理器系统 543
23.3.1 建立新的设计工程 543
23.3.2 修改处理器系统外设参数设置 544
23.3.3 复制pcore到当前工程 544
23.3.4 例化并连接生成的Pcore 545
23.3.5 添加用户约束到用户约束文件 547
23.4 使用SDK设计和实现应用工程 548
23.4.1 导入设计到SDK 548
23.4.2 生成应用工程 548
23.4.3 导入应用程序 549
23.4.4 验证硬件设计 556
23.4.5 运行应用工程 556

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Design guide: Xilinx all programmable Zynq-7000 SoC
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon