The Zynq Book
基于含有 ARM® Cortex®-A9 的 Xilinx® Zynq®-7000
全可编程片上系统的嵌入式处理器
The Zynq Book
基于含有 ARM® Cortex®-A9 的 Xilinx® Zynq®-7000
全可编程片上系统的嵌入式处理器
Louise H. Crockett, Ross A. Elliot,
Martin A. Enderwitz, Robert W. Stewart
Jianfeng Lu ( 中文编辑)
Department of Electronic and Electrical Engineering
University of Strathclyde
Glasgow, Scotland, UK
翁恺博士 Dr. K.Weng ( 中文翻译)
浙江大学 (中国)
第一版 ( 中文版 )
This edition first published June 2016 by Strathclyde Academic Media.
© Louise H. Crockett, Ross A. Elliot, Martin A. Enderwitz and Robert W. Stewart.
开源许可
此书既有印刷版又有电子版 (PDF 格式)。
在衍生文件中明确标注参考内容初始来源的前提下,本书中任何文本和图表可以被复制,并用于非营利性的学术目
的。参考格式应当遵循以下格式:
L. H. Crockett, R. A. Elliot, M. A. Enderwitz and R. W. Stewart, The Zynq Book: Embedded Processing with
the ARM Cortex-A9 on the Xilinx Zynq-7000 All Programmable SoC, First Edition, Strathclyde Academic
Media, 2016.
将本书中内容用于其他非营利性学术目的的,请联系 info@zynqbook.com。此书不能以原始的格式使用,也不
能被未授权的第三方机构销售。
习题教材
习题教材在本书的官方网站上发布:www.zynqbook.com。
参考此习题教材同样适用于开源许可条例及在本页其他位置提到的警告和免责声明。
警告和免责声明
作者、出版人在研究所包含的课题和编写例题时,已经尽了最大的努力来提供准确、最新的信息。本着做得最好的
理念,书中包含的材料以 “ 原样 ” 的形式提供,但是无论是作者还是出版人没有任何明确或者隐含的承诺来保证
书中所包含内容的准确性。 书中包含的任何信息直接或间接导致的任何损失、损坏,作者和出版人将不会承担法律
责任。
商标
ARM,Cortex,AMBA,Thumb 和 TrustZone 都是 ARM 有限公司 (或其子公司)在欧洲和 (或)世界其他各
地注册的商标。 保留所有权利。
NEON 是 ARM 有限公司 (或其子公司)在欧洲和 (或)世界其他各地的商标。保留所有权利。
此出版物是独立的,不属于 ARM 有限公司。ARM 有限公司也没有认可、赞助或授权此出版物。
Xilinx (Xilinx 公司的 logo) ,Artix,ISE,Kintex, LogiCORE, Petalogix, Spartan, Virtex, Vivado, Zynq, 和
WebPACK 是 Xilinx 注册的商标。保留所有权利。
MATLAB 和 Simulink 是 MathWorks 公司注册的商标。
Linux® 是 Linus Torvalds 在美国和其他国家注册的商标。
本书中使用的所有其他商标属于其各自的公司。本书中使用这些商标并不意味着本书拥有、认可这些商标。
前言
作者简介
鸣谢
章节
目录
xix
xxi
xxv
引言 ...................................................................................1
1
1.1
Zynq 的片上系统 ..............................................................................2
1.2 嵌入式 SoC 的简单剖析 ...................................................................5
1.3 设计重用 .............................................................................................7
1.4 提升抽象层级 ....................................................................................7
1.5
SoC 设计流 .........................................................................................8
1.6 实践单元 ...........................................................................................10
1.7 关于本书 ...........................................................................................10
1.8 参考文献 ...........................................................................................12
PART A
开始了解 Zynq ................................................... 13
章节
2
Zynq 芯片 (“ 是什么 ”) ...........................................15
2.1 处理器系统 .......................................................................................16
2.1.1 应用处理器单元 (APU) ................................................17
2.1.2 关于 ARM 模式 ....................................................................20
v
2.1.3 处理器系统外部接口 ......................................................21
2.2 可编程逻辑 .......................................................................................22
2.2.1 逻辑部分 ............................................................................23
2.2.2 特殊资源:DSP48E1 和块 RAM .......................................25
2.2.3 通用输入 / 输出 ...............................................................28
2.2.4 通信接口 ............................................................................29
2.2.5 其他可编程逻辑扩展接口 ..............................................29
2.3 处理器系统与可编程逻辑的接口 ...............................................30
AXI 标准 .............................................................................30
2.3.1
AXI 互联和接口 ...............................................................31
2.3.2
2.3.3
EMIO 接口 ..........................................................................34
2.3.4 其他 PL-PS 信号 ...............................................................34
2.4 安全 ....................................................................................................35
2.4.1 安全引导 ............................................................................35
2.4.2 硬件支持 ............................................................................36
2.4.3 运行时刻安全 ....................................................................36
2.5
Zynq-7000 系列成员 ......................................................................39
2.6 本章回顾 ...........................................................................................40
2.7 架构参考指南 ..................................................................................41
2.8 参考文献 ...........................................................................................44
3
Zynq 设计指南 (“ 如何使用它? ”) .........................47
3.1 入门 ....................................................................................................48
3.1.1 获取设计工具 ....................................................................48
3.1.2 开发工具内部版本和证书 ..............................................49
3.1.3 设计工具功能 ....................................................................50
3.1.4 第三方工具 ........................................................................51
3.1.5 系统安装和需求 ...............................................................51
3.2 设计流程概述 ..................................................................................53
3.2.1 需求和技术参数 ...............................................................54
3.2.2 系统设计 ............................................................................54
3.2.3 硬件开发和测试 ...............................................................55
3.2.4 软件开发和测试 ...............................................................58
3.2.5 系统集成和测试 ...............................................................60
3.3
SoC 设计团队 ..................................................................................60
3.4 使用 Vivado 进行以 IP 为重点的系统级设计 .........................62
章节
vi
章节
3.5
ISE 和 Vivado 设计套件 .............................................................64
3.5.1 特性比较 ............................................................................64
3.5.2 升级到 Vivado ..................................................................66
3.6 开发板 ...............................................................................................67
Zynq-7000 SoC ZC702 Evaluation Kit ...................67
3.6.1
Zynq-7000 SoC Video & Imaging Kit .....................69
3.6.2
Zynq-7000 ZC706 Evaluation Kit ............................69
3.6.3
ZedBoard ............................................................................69
3.6.4
ZYBO .....................................................................................69
3.6.5
3.6.6 第三方开发板 ...................................................................70
3.6.7 附件和扩展 ........................................................................71
3.6.8 使用开发板工作 ...............................................................72
3.7 支持和文档 .......................................................................................72
3.8 章节回顾 ...........................................................................................72
3.9 参考文献 ...........................................................................................73
4
芯片比较 (“ 为什么我需要 Zynq?”) ........................77
4.1 芯片选择的条件 ..............................................................................78
4.2 比较一:Zynq 对 FPGA ...................................................................80
4.2.1
MicroBlaze 处理器 .........................................................80
4.2.2
MicroBlaze 单片机系统 ................................................84
4.2.3
PicoBlaze ..........................................................................85
4.2.4
ARM Cortex-M1 .................................................................85
4.2.5 其他处理器类型 ...............................................................85
4.2.6 总结说明 ............................................................................87
4.3 比较二:Zynq 对标准处理器 .......................................................89
4.3.1 处理器操作 ........................................................................89
4.3.2 执行分析 ............................................................................92
4.3.3 总结说明 ............................................................................94
4.4 比较三:Zynq 对分立的 FPGA- 处理器组合 .............................94
4.5 拓展 Zynq 架构和设计流 ...............................................................96
4.6 本章回顾 ...........................................................................................98
4.7 参考文献 ...........................................................................................99
章节
5
应用和机会 (“ 拿它能做什么 ?”) ..........................101
5.1 应用的概述 .....................................................................................102
vii
5.1.1 汽车 ...................................................................................102
5.1.2 通信 ...................................................................................102
5.1.3 防务和航空航天 .............................................................103
5.1.4 机器人、控制和仪器 ....................................................104
5.1.5 图像和视频处理 .............................................................104
5.1.6 医药 ...................................................................................105
5.1.7 高性能计算 (HPC) .......................................................105
5.1.8 其他及未来的应用 .........................................................105
5.2 何时 Zynq 真的有用 ...? ............................................................106
5.3 通信:软件定义无线电 (SDR) ...............................................107
5.3.1 在无线通信中的趋势 ....................................................107
5.3.2 介绍软件定义无线电 (SDR) .....................................108
5.3.3
SDR 的实现和授权技术 .................................................108
5.3.4 认知无线电 ......................................................................110
5.4 智能系统和智能网络 ...................................................................111
5.4.1 什么是智能系统? .........................................................111
5.4.2 智能系统的例子 .............................................................112
5.4.3 智能网络:智能系统的通信 .......................................114
5.4.4 相关概念 ..........................................................................115
5.5 图像和视频处理,及计算机视觉 .............................................115
5.5.1 图像与视频处理 .............................................................115
5.5.2 计算机视觉 ......................................................................116
5.5.3 抽象的层级 ......................................................................117
5.5.4 图像处理系统的实现 ....................................................118
5.5.5
Zynq 上的计算机视觉的例子:道路标识识别 .......120
5.6 动态片上系统 ................................................................................121
5.6.1 运行时刻系统灵活性 ....................................................121
5.6.2 动态部分重配置 (DPR) ..............................................121
5.6.3
DPR 应用的例子 ..............................................................122
DPR 的好处 .....................................................................124
5.6.4
5.7 更多的机会:Zynq 的 “ 生态系统 ” ....................................125
5.7.1 什么是生态系统? .........................................................125
5.7.2 有什么机会? ..................................................................126
5.8 本章回顾 .........................................................................................128
5.9 参考文献 .........................................................................................128
viii