本书系统地论述了XilinxALLProgrammableZynq7000SoC的体系结构与设计方法,全书共23章,分为3篇。Zynq7000基础理论篇介绍了可编程SoC设计和AMBA协议规范;Zynq7000体系结构篇介绍了Zynq7000应用处理单元、可编程逻辑资源、系统互联结构、系统公共资源特性及功能、Zynq调试和测试子系统、Zynq平台的启动和配置、Zynq平台主要外设模块、Zynq平台描述规范和高级综合工具HLS;Zynq7000设计实践篇介绍了Zynq基本处理器系统的建立和运行、添加AXIIP到设计、基于定制IP实现简单嵌入式系统设计、基于定制IP实现复杂嵌入式系统设计、软件和硬件协同调试系统、Zynq平台配置和启动的实现、基于ZynqHP从端口的数据传输实现、基于ZynqACP从端口的数据传输实现、XADC在Zynq平台上的应用、Ubuntu操作系统在Zynq平台上的实现、μC/OSⅢ操作系统在Zynq平台上的实现和HLS在Zynq嵌入式系统设计中的应用。全书基于Xilinx最新的Zynq7000平台,理论和实践相结合;并配套提供了工程文件及课件。
推荐序(一)1
推荐序(二)3
前言5
第一篇Zynq7000基础理论
第1章可编程SoC设计
1.1可编程SoC系统
1.1.1软核及硬核处理器
1.1.2可编程SoC技术的发展
1.1.3可编程SoC技术的特点
1.1.4可编程SoC的设计流程
1.1.5可编程SoC的开发工具
1.2Xilinx Zynq平台
1.2.1Zynq平台的功能
1.2.2处理系统PS特性
1.2.3可编程逻辑PL特性
1.2.4互联特性
1.2.5Zynq信号、接口和引脚
1.3Zynq平台设计方法学
1.3.1使用PL实现软件算法的优势
1.3.2设计PL加速器
1.3.3PL加速限制
1.3.4降低功耗
1.3.5实时减负
1.3.6可重配置计算
第2章AMBA协议规范
2.1AMBA规范导论
2.2AMBA APB规范
2.2.1AMBA APB写传输
2.2.2AMBA APB读传输
2.2.3AMBA APB错误响应
2.2.4操作状态
2.2.5AMBA3 APB信号
2.3AMBA AHB规范
2.3.1AMBA AHB结构
2.3.2AMBA AHB操作
2.3.3AMBA AHB传输类型
2.3.4AMBA AHB猝发操作
2.3.5AMBA AHB传输控制信号
2.3.6AMBA AHB地址译码
2.3.7AMBA AHB从设备传输响应
2.3.8AMBA AHB数据总线
2.3.9AMNA AHB传输仲裁
2.3.10AMBA AHB分割传输
2.3.11AMBA AHB复位
2.3.12AHB数据总线的位宽
2.3.13AMBA AHB接口设备
2.4AMBA AXI 4规范
2.4.1AMBA AXI 4功能
2.4.2AMBA AXI 4互联结构
2.4.3AXI 4Lite功能
2.4.4AXI 4Stream功能
第二篇Zynq7000体系结构
第3章Zynq7000应用处理单元
3.1应用处理单元
3.1.1基本功能
3.1.2系统级视图
3.2CortexA9处理器
3.2.1中央处理器
3.2.2L1高速缓存
3.2.3存储器管理单元
3.2.4接口
3.2.5NEON
3.2.6性能监视单元
3.3侦听控制单元
3.3.1地址过滤
3.3.2SCU主设备端口
3.4L2高速缓存
3.4.1互斥L2L1高速缓存配置
3.4.2高速缓存替换策略
3.4.3高速缓存锁定
3.4.4使能/禁止L2高速缓存控制器
3.4.5RAM访问延迟控制
3.4.6保存缓冲区操作
3.4.7在CortexA9和L2控制器之间的优化
3.4.8预取操作
3.4.9编程模型
3.5片上存储器
3.5.1片上存储器结构
3.5.2片上存储器功能
3.6APU接口
3.6.1PL协处理接口
3.6.2中断接口
3.7APU内的TrustZone
3.7.1CPU安全过渡
3.7.2CP15寄存器访问控制
3.7.3MMU安全性
3.7.4L1缓存安全性
3.7.5安全异常控制
3.7.6CPU调试TrustZone访问控制
3.7.7SCU寄存器访问控制
3.7.8L2缓存中的TrustZone支持
3.8应用处理单元复位
3.8.1复位功能
3.8.2复位后的APU状态
3.9功耗考虑
3.9.1待机模式
3.9.2在L2控制器内的动态时钟门控
3.10系统地址分配
3.10.1地址映射
3.10.2系统总线主设备
3.10.3I/O外设
3.10.4SMC存储器
3.10.5SLCR寄存器
3.10.6杂项PS寄存器
3.10.7CPU私有总线寄存器
3.11中断
3.11.1中断环境
3.11.2中断控制器的功能
3.11.3编程模型
3.12定时器
3.12.1CPU私有定时器和看门狗定时器
3.12.2全局定时器
3.12.3系统看门狗定时器
3.12.4三重定时器/计数器
3.12.5I/O信号
3.13DMA控制器
3.13.1DMA控制器结构及特性
3.13.2DMA控制器功能
3.13.3外部信号
3.13.4寄存器描述
3.13.5用于管理器和命令的指令集参考
3.13.6编程模型参考
3.13.7编程限制
3.13.8DMAC IP配置选项
第4章Zynq7000可编程逻辑资源
4.1Zynq7000可编程逻辑资源特性
4.2可编程逻辑资源功能
4.2.1CLB、Slice和LUT
4.2.2时钟管理
4.2.3块RAM
4.2.4数字信号处理
4.2.5输入/输出
4.2.6低功耗串行收发器
4.2.7PCIE模块
4.2.8模拟/数字转换
4.2.9配置
第5章系统互联结构
5.1系统互联功能及特性
5.1.1数据路径
5.1.2时钟域
5.1.3连接性
5.1.4AXI ID
5.1.5寄存器
5.2服务质量
5.2.1基本仲裁
5.2.2高级QoS
5.2.3DDR端口仲裁
5.3AXI_HP接口
5.3.1AXI_HP接口结构及特点
5.3.2接口数据宽度
5.3.3交易类型
5.3.4命令交替和重新排序
5.3.5性能优化总结
5.4AXI_ACP接口
5.5AXI_GP接口
5.6AXI信号总结
5.7PL接口选择
5.7.1使用通用主设备端口的CortexA9
5.7.2通过通用主设备的PS DMA控制器(DMAC)
5.7.3通过高性能接口的PL DMA
5.7.4通过AXI ACP的PL DMA
5.7.5通过通用AXI从(GP)的PL DMA
第6章系统公共资源特性及功能
6.1时钟子系统
6.1.1时钟系统结构及功能
6.1.2CPU时钟域
6.1.3时钟编程实例
6.1.4时钟系统内生成电路结构
6.2复位子系统
6.2.1复位系统结构和层次
6.2.2启动流程
6.2.3复位的结果
第7章Zynq调试和测试子系统
7.1JTAG和DAP子系统
7.1.1JTAG和DAP系统功能
7.1.2JTAG和DAP系统I/O信号
7.1.3编程模型
7.1.4ARM DAP控制器
7.1.5跟踪端口接口单元TPIU
7.1.6Xilinx TAP控制器
7.2CoreSight系统结构及功能
7.2.1CoreSight结构
7.2.2CoreSight功能
第8章Zynq平台的启动和配置
8.1Zynq平台启动和配置功能
8.2外部启动要求
8.3BootROM
8.3.1BootROM功能
8.3.2BootROM头部
8.3.3启动设备
8.3.4BootROM多启动和启动分区查找
8.3.5调试状态
8.3.6BootROM后状态
8.4器件配置接口
8.4.1器件配置接口功能
8.4.2器件配置流程
8.4.3PL配置
8.4.4寄存器集合
第9章Zynq平台主要外设模块
9.1DDR存储器控制器
9.1.1DDR存储器控制器接口及功能
9.1.2AXI存储器端口接口
9.1.3DDR核交易调度器
9.1.4DDRC仲裁
9.1.5DDR控制器PHY
9.1.6DDR初始化和标定
9.1.7纠错码
9.2静态存储器控制器
9.2.1静态存储器控制器接口及功能
9.2.2静态存储器控制器和存储器的信号连接
9.3四SPI Flash控制器
9.3.1四SPI Flash控制器功能
9.3.2四SPI控制器反馈时钟
9.3.3四SPI Flash控制器接口
9.4SD/SDIO外设控制器
9.4.1SD/SDIO控制器功能
9.4.2SD/SDIO控制器传输协议
9.4.3SD/SDIO控制器接口信号连接
9.5通用输入/输出控制器
9.5.1通用输入/输出GPIO接口及功能
9.5.2通用输入/输出GPIO中断功能
9.6USB主机、设备和OTG控制器
9.6.1USB控制器接口及功能
9.6.2USB主机操作模式
9.6.3USB设备操作模式
9.6.4USB OTG操作模式
9.7吉比特以太网控制器
9.7.1吉比特以太网控制器接口及功能
9.7.2吉比特以太网控制器接口编程向导
9.7.3吉比特以太网控制器接口信号连接
9.8SPI控制器
9.8.1SPI控制器的接口及功能
9.8.2SPI控制器时钟设置规则
9.9CAN控制器
9.9.1CAN控制器接口及功能
9.9.2CAN控制器操作模式
9.9.3CAN控制器消息保存
9.9.4CAN控制器接收过滤器
9.9.5CAN控制器编程模型
9.10UART控制器
9.11I2C控制器
9.11.1I2C速度控制逻辑
9.11.2I2C控制器的功能和工作模式
9.12ADC转换器接口
9.12.1ADC转换器功能
9.12.2ADC命令格式
9.12.3供电传感器报警
9.13PCIE接口
第10章Zynq平台描述规范
10.1Zynq平台文件描述规范功能集
10.2微处理器硬件规范
10.2.1通用微处理器硬件规范
10.2.2AXI系统微处理器硬件规范
10.2.3Zynq7000系统微处理器规范实例
10.3微处理器外设规范
10.3.1微处理器规范框架
10.3.2总线接口规范
10.3.3I/O接口规范
10.3.4选项规范
10.3.5参数规范
10.3.6端口规范
10.3.7设计考虑
10.4外设分析命令
10.5黑盒定义
10.6微处理器软件规范
10.6.1微处理器软件规范格式
10.6.2全局参数
10.6.3实例指定参数
10.6.4MDD/MLD指定参数
10.6.5OS指定参数
10.6.6处理器指定参数
10.7微处理器库定义
10.7.1库定义文件
10.7.2MLD格式规范
10.7.3MLD参数描述
10.7.4设计规则检查
10.7.5库产生
10.8微处理器驱动定义
10.8.1驱动定义文件
10.8.2MDD格式规范
10.9Xilinx板描述格式
10.9.1XBD格式
10.9.2属性命令
10.9.3本地参数命令及子属性
10.9.4本地端口命令及子属性
10.9.5使用IO_INTERFACE关联IP
10.9.6AXI系统XBD格式
第11章高级综合工具HLS
11.1高级综合工具结构
11.1.1不同的命令对HLS综合结果的影响
11.1.2从C中提取硬件结构
11.2高级综合工具调度和绑定
11.2.1高级综合工具调度
11.2.2高级综合工具绑定
11.3Vivado HLS工具的优势
11.4C代码的关键属性
11.4.1函数
11.4.2类型
11.4.3循环
11.4.4数组
11.4.5端口
11.4.6操作符
11.5HLS内提供的用于时钟测量的术语
第三篇Zynq7000设计实践
第12章Zynq基本处理系统的建立和运行
12.1使用BSB向导生成Zynq基本系统
12.1.1Zynq硬件系统的生成
12.1.2生成Hello World应用工程
12.1.3运行Hello World应用工程
12.2生成和运行存储器测试工程
12.2.1导入前面的XPS设计到SDK
12.2.2生成存储器测试工程
12.2.3运行存储器测试工程
12.2.4调试存储器测试工程
12.3生成和运行外设测试工程
12.3.1导入前面的XPS设计到SDK
12.3.2生成外设测试工程
12.3.3运行外设测试工程
第13章添加AXI IP到设计
13.1设计原理
13.2添加IP到系统设计
13.2.1创建设计工程
13.2.2添加GPIO IP到设计
13.2.3添加AXI Timer IP到设计
13.2.4连接中断源到PS
13.2.5通过EMIO将PS的GPIO连接到PL
13.2.6添加约束到约束文件
13.3使用SDK设计和实现应用工程
13.3.1导入前面的XPS设计到SDK
13.3.2生成应用工程
13.3.3运行应用工程
第14章基于定制IP实现简单嵌入式系统设计
14.1创建设计工程
14.2定制GPIO IP核
14.2.1产生GPIO IP模板
14.2.2基于模板构建完整GPIO IP
14.3添加和连接AXI外设
14.4添加约束到用户约束文件
14.5使用SDK设计和实现应用工程
14.5.1修改模板驱动函数
14.5.2导入硬件设计到SDK工具
14.5.3生成新应用工程
14.5.4添加定制IP核软件驱动到设计
14.5.5导入应用程序
14.5.6下载硬件比特流文件到FPGA
14.5.7运行应用工程
14.5.8使用XMD分析目标文件
第15章基于定制IP实现复杂嵌入式系统设计
15.1设计原理
15.1.1VGA IP核的设计原理
15.1.2移位寄存器IP核的设计原理
15.2创建设计工程
15.3定制VGA IP核
15.3.1产生VGA IP模板
15.3.2基于模板构建完整VGA IP
15.4定制移位寄存器IP核
15.4.1产生shifter IP模板
15.4.2基于模板构建完整shifter IP
15.5添加和连接VGA IP核
15.6添加和连接shifter IP核
15.7添加约束到用户约束文件
15.8使用SDK设计和实现应用工程
15.8.1修改模板驱动函数
15.8.2导入硬件设计到SDK工具
15.8.3生成新的应用工程
15.8.4添加定制IP核软件驱动到设计
15.8.5编写应用程序
15.8.6下载硬件比特流文件到FPGA
15.8.7运行应用工程
第16章软件和硬件协同调试系统
16.1复制并打开设计工程
16.2例化AXI Chipscope核
16.3导入硬件设计到SDK工具
16.4启动ChipScope Pro硬件调试器
16.5执行H/S验证
第17章Zynq平台配置和启动的实现
17.1生成SD卡镜像文件并启动
17.1.1SD卡接口
17.1.2复制并打开前面的设计工程
17.1.3创建第一级启动引导
17.1.4创建SD卡启动镜像
17.1.5从SD卡启动引导系统
17.2生成QSPI Flash镜像并启动
17.2.1QSPI Flash接口
17.2.2创建QSPI Flash镜像
17.2.3从QSPI Flash启动引导系统
第18章基于Zynq HP从端口的数据传输实现
18.1设计原理
18.2创建设计工程
18.3添加并配置AXI CDMA到设计
18.3.1添加AXI CDMA IP和互联到设计
18.3.2连接AXI CDMA到设计
18.3.3添加端口连接
18.3.4分配地址空间
18.4使用SDK设计和实现应用工程
18.4.1软件应用的实现原理
18.4.2导入硬件设计到SDK
18.4.3创建新的软件应用工程
18.4.4导入应用程序
18.4.5下载硬件比特流文件到FPGA
18.4.6运行应用工程
第19章基于Zynq ACP从端口的数据传输实现
19.1设计原理
19.2创建设计工程
19.3配置PS端口
19.3.1配置PS 32位GP AXI主端口
19.3.2配置PS的ACP从端口
19.4添加并连接IP到设计
19.4.1添加IP到设计
19.4.2总线连接
19.4.3端口连接
19.4.4分配地址空间
19.5使用SDK设计和实现应用工程
19.5.1导入硬件设计到SDK
19.5.2创建新的软件应用工程
19.5.3导入应用程序
19.5.4下载硬件比特流文件到FPGA
19.5.5运行应用工程
第20章XADC在Zynq平台上的应用
20.1设计原理
20.2创建设计工程
20.3添加XADC IP到设计
20.4添加约束到用户约束文件
20.4.1Zedboard板上XADC接口
20.4.2添加约束条件
20.5使用SDK设计和实现应用工程
20.5.1导入硬件设计到SDK工具
20.5.2生成新的应用工程
20.5.3下载硬件比特流文件到FPGA
20.5.4运行应用工程
第21章Ubuntu操作系统在Zynq平台上实现
21.1Ubuntu操作系统环境搭建
21.1.1安装虚拟机
21.1.2在虚拟机上安装Ubuntu 12.10
21.1.3Linux和Windows文件传输工具CuteFTP安装使用
21.1.4Ubuntu相关环境和命令设置
21.2uboot原理及实现
21.2.1uboot结构
21.2.2下载uboot源码
21.2.3uboot配置与编译
21.3内核概述及编译
21.3.1内核结构
21.3.2内核编译
21.4设备树原理及实现
21.4.1设备树功能
21.4.2设备树数据格式
21.4.3设备树的编译
21.5文件系统原理及实现
21.6打开设计工程
21.7使用SDK设计生成软件工程
21.7.1创建第一级引导启动代码
21.7.2SD启动镜像的生成
21.8验证Ubuntu操作系统的运行
第22章μC/OSⅢ操作系统在Zynq平台上的实现
22.1μC/OSⅢ操作系统简介
22.2μC/OSⅢ操作系统环境构建
22.3创建设计工程
22.4建立基于μC/OSⅢ操作系统的软件应用工程
22.4.1导入设计到SDK中
22.4.2创建新的μC/OSⅢ设计工程
22.4.3修改编译环境参数
22.4.4重新编译设计工程
22.5运行外设测试工程
22.5.1配置硬件平台
22.5.2配置运行环境
22.6相关文件目录功能
22.6.1App、BSP和Documentation文件夹
22.6.2μC/CPU文件夹
22.6.3μC/CSP文件夹
22.6.4μC/LIB文件夹
22.6.5μC/OSⅢ文件夹
22.6.6用于μC/OSⅢ文件夹的Xilinx BSP
22.7基于μC/OSIII操作系统的关键工程文件分析
22.7.1Main()
22.7.2AppTaskStart()
22.7.3AppTaskCreate()
22.7.4AppMutexCreate()
22.7.5AppTask1()
22.7.6AppPrint()
22.7.7app_cfg.h
第23章HLS在Zynq嵌入式系统设计中的应用
23.1设计原理
23.2基于HLS生成FIR滤波器
23.2.1设计FIR滤波器
23.2.2运行仿真和验证功能
23.2.3设计综合
23.2.4设计优化
23.2.5运行CoSimulation
23.2.6实现ISim软件下的仿真
23.2.7使用指令创建Pcore
23.2.8生成Pcore核
23.3创建处理器系统
23.3.1建立新的设计工程
23.3.2修改处理器系统外设参数设置
23.3.3复制Pcore到当前工程
23.3.4例化并连接生成的Pcore
23.3.5添加用户约束到用户约束文件
23.4使用SDK设计和实现应用工程
23.4.1导入设计到SDK
23.4.2生成应用工程
23.4.3导入应用程序
23.4.4验证硬件设计
23.4.5运行应用工程
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论