天天看点

FPGA Xilinx Zynq 系列(十六)The ZedBoard

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来FPGA Xilinx Zynq 系列第十六篇,开启第六章The ZedBoard,本篇内容目录简介如下:

6. The ZedBoard

6.1 介绍 Zed

6.2 ZedBoard 系统架构

6.3 ZedBoard 设计流程

6.4 ZedBoard 入门

6.4.1 盒子里有什么?

6.4.2 硬件安装

6.4.3 烧写 ZedBoard

6.5 MicroZed

6.6 文档,教程和支持

6.6.1 关于 ZedBoard 的文档

6.6.2 演示和教程

6.6.3 在线课程

6.6.4 其他 ZedBoard 资源和支持

6.7 ZedBoard.org 社区

6.7.1 社区工程

6.7.2 博客

6.7.3 支持论坛

6.8 章节回顾

6.9 参考文献

本系列分享来源于《The Zynq Book》,Louise H. Crockett, Ross A. Elliot,Martin A. Enderwitz, Robert W. Stewart. 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。

The ZedBoard

现在我们已经解决了一些关于Zynq设备的基本问题,是时候考虑Zynq最受欢迎的开发板之一 ——ZedBoard。它的名字,“Zed” 来自于 Zynq 评估和开发 (ZynqEvaluation and Development)。ZedBoard 是截止到落笔为止可用的开发和评估板之一。它的价格非常适合于学生和爱好者,另外还有一个 ZedBoard 用户的在线社区。

在这章中,会介绍 ZedBoard 的架构和特性,以及一些入门的基础信息,还有 Xilinx 设计工具中为 ZedBoard 集成的支持。为创建 Zedboard 设计,当前可用的资源包括,教程,视频,支持,以及值得特别一提的 ZedBoard 社区也都将被提到。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.1 介绍 Zed

ZedBoard 是一款低功耗,基于社区的板卡,搭载了 XC7Z020 Zynq 设备。它是由 Xilinx,Avnet( 分销商 ) 和 Digilent (生产商)联合经营的。尽管这是适合于工业的开发平台,ZedBoard 具有满足新 Zynq 用户的特定材料 , 符合初学者的学习曲线,因此也以学生、学者和爱好者为用户。由 Avnet 运营的网络社区 (ZedBoard.org)致力于帮助用户,详细信息将在 6.7 节中被提到。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.2 ZedBoard 系统架构

正如介绍中提到的一样,ZedBoard 搭载了一个 XC7Z020 设备。这是一种小型的 Zynq-7000 设备,拥有基于 Artix-7 的逻辑构造,以及 13300 个逻辑单元,220 个DSP48E1, 和 140 个 BlockRAMs。该尽管它没有高速收发器和 PCI 串行总线模块,但是设备有一个基于 XADC 的 IP 硬核。ZedBoard 上有很多外设接口:

  • GPIO: 总共 9 个 LED 灯 ,8 个开关,7 个按钮
  • 音频芯片 (Analog Devices ADAU1761,支持音频线路输入,音频线路输出, 麦克风输入,耳机输出)
  • 视频 (HDMI)
  • 视频 (VGA)
  • 有机发光二极管 (OLED)显示器• Pmod 接口 (5 个)
  • 以太网
  • USB-OTG ( 外设 )
  • USB-JTAG ( 用于烧写 )
  • USB-UART ( 用于通信 )
  • SD 卡槽 (位于板卡下方)
  • FMC 接口
  • XADC 接口
  • Xilinx JTAG 接口

另外,Zynq 设备还被接到了一个 256Mbit 大小的闪存和 512MB 大小的 DDR3 内 存上,这两者都可以在板卡上找到。还有两个振荡时钟源,其中一个频率为100MHz,另一个则是 33.3333MHz。这些特征都在图 6.1 中重点标出。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

图 6.1: ZedBoard 布局和接口 (正面)

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.3 ZedBoard 设计流程

ZedBoard 的设计流程已在第 3 章有所描述,另外工具链里还有为 ZedBoard 提供的专门支持,利用这个可以加速开发流程。

当在 Vivado 中创建工程时,用户会被提示选择设计的目标平台。这时,part 部分可以被选择为 zc7z020clg484-1( 也就是 ZedBoard 上搭载的 Zynq 设备 ),但是注意这里还有另外一个方法就是选择 board 选项。在这里,选择 ZedBoard Zynq Evaluation and Development Kit选项意味着设计工具不止知道了正确地目标 Zynq 设备,还知道了 ZedBoard 上特殊的特性和可用的外设(例如,LED 灯的数量,开关和按钮使用的 GPIO 接口)。

选择阶段如图 6.2。截止到写这篇文章的时候,ZedBoard是由两个的版次 (c 和 d), 因此你需要查阅你的板卡的文档以确定要选择哪个。同时还有许多其他的目标板卡可用,如果你使用这些中的一个 (比如 ZC702 或 ZC706 评估板),这可以在设计流程中确定目标板卡的独特支持功能。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

图 6.2: 当 ZedBoard 作为目标板卡时 Vivado 工程选项

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.4 ZedBoard 入门

本节中会提供 ZedBoard 工具包的简短概述,以及完成板卡硬件安装的初始步骤。

6.4.1 盒子里有什么?

当你第一次打开盒子时,你会发现里面除了 ZedBoard 自身以外还有很多东西。这些会由 Avnet 提供的一段视频说明以及登载在 ZedBoard.org 的网站上。就像我们在图 6.1 中所见的那样,视频会提供 ZedBoard 与众不同的特点,以及关于运行开箱即用的设计的必须步骤。

确认一遍 ZedBoard 盒中的内容,你应该可以在里面发现如下物品:

  • Zedboard,装在一个抗静电袋子中
  • 一张包含软件设计工具的 DVD
  • 一个可以安装美国或欧洲接口类型的电源适配器
  • 一条 USB-A 到 micro-USB-B 的连接线
  • 一条 micro-USB-B 到 USB-A 母口的适配线
  • 一张 4GB SD 卡
  • 一个刊有入门信息的小页 [7]

值得记住的是那些不住在使用美国或欧洲电源接口的地区的人们可能需要一个额外的适配本地接口类型的电源适配器。比如住在英国的人需要一个美国到英国,或者欧洲到英国的转换适配器。

还有一个普遍的需求,特别是当你遵循早期的教程,你将需要第二条 USB-A 到 micro-USB-B 的连接线(注意原本只提供了一根这样的连接线,你需要另找一根)。同时这也取决于你想要使用的 ZedBoard 外设,你可能需要额外的音频,视频和以太网的连接线等等。

6.4.2 硬件安装

ZedBoard 需要连接到一个电源,并且被默认配置成让主机通过 USB 的 JTAG 来烧写 ( 即 USB-A 到 micro-USB-B 的连接 )。如果要通过终端程序使用 UART 来完成板卡和 PC 之间的通信,则额外还需要一个的连接。这两个接口的位置如图 6.3 所示。如果要使用连接 USB 外设的话,注意这里还有第三个 micro-USB 接口是为此保留(这可以在图片的底部看到)。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

图 6.3: ZedBoard 的正面左上角,明确电源与 USB 连接器位置

如果要使用USB-UART连接,需要安装正确的设备驱动。这些驱动可以从Cypress 得到,安装过程的详细资料可以在文献 [2] 中找到,包括驱动文件的下载链接。

6.4.3 烧写 ZedBoard

ZedBoard 可以通过四个不同的方法烧写,这些方法是:

  • USB-JTAG — 这是默认的并且是最直接的烧写 ZedBoard 的方法 , 这只要通过 ZedBoard 工具包的 USB 到 micro-USB 连接线就可以直接完成。
  • 传统 JTAG — 板卡上有一个可用的 Xilinx JTAG 接口,如果需要的话可用来 替代 USB-JTAG 连接。这会需要一根未包含在 ZedBoard 工具包中的连接线:如一根 Xilinx Platform USB 连接线 [11],或者一根 Digilent USB-JTAG 烧 写线 [10]。
  • Quad-SPI 闪存 — 板卡上的闪存是非易失性的,因此它可以用来保存板卡上 次断电时的配置信息。使用这种方法不需要连接线来烧写 Zynq 设备。
  • SD 卡 — ZedBoard 的背面有一个 SD 卡槽。利用这个特性可以通过 SD 卡中存 储的文件来烧写 Zynq,并且不需要任何烧写线。这种方法在 《ZedBoardGetting Started Guide》中有所描述 [6]。
FPGA Xilinx Zynq 系列(十六)The ZedBoard

图 6.4: 跳线设置选项

其中 JTAG 方法尤其适合于开发阶段,因为此时可以很方便地在开发用 PC 和 ZedBoard 之间建立一个 USB/JTAG 连接。另外两种方法则更加便携,并且基本上更加适合于作为一种现场编程的方法。值得一提的是 JTAG 是一种不安全的机制,而其他方法都是安全的;这是在实验环境外需使用 flash 和 SD 卡配置法的另一个理由。关于引导的详细内容会在第 24 章讨论,届时使用基于 Linux 的操作系统。

ZedBoard 的用户可以通过一系列的跳线来选择引导 / 烧写方式,这些跳线位于 Digilent logo 的下方,并在图 6.4 中有所标注。在五个跳线中,中间的三个被用 来定义板卡的烧写信息来源 (JTAG,闪存或 SD 卡),最右边的控制 JTAG 的模式,最左边则决定内部 PLL 是否被使用。

这里面,最后两个选项需要更深入地讲解一下。JTAG 模式是关于 JTAG 的调试 方式的:这可以是串联的,当使用一个 JTAG 同时连接 PS 和 PL 的调试接口时可以如此使用;也可以是独立的,当 PS 和 PL 的调试接口是被分开连接的时候使用,此时每一端都各自需要一根连接线。PLL 模式则决定了在开始引导过程之前,是否需要在设备配置过程中包含一个等待 PLL 锁定的阶段。如果决定绕过 PLL,则会在引导时花费更多的时间。

还有大量关于配置选项和配置过程的信息在《Zynq-7000 Technical Reference Manual》[13] 中。

表 6.1 中列出了被允许的跳线设置,其例子也在图 6.5 中给出。

表 6.1: ZedBoard 跳线配置设置 [8]

FPGA Xilinx Zynq 系列(十六)The ZedBoard
FPGA Xilinx Zynq 系列(十六)The ZedBoard

图 6.5: ZedBoard 所有跳线设置选项

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.5 MicroZed

MicroZed 是继 ZedBoard 的成功之后的又一块基于 Zynq 的开发板。板卡更小, 拥有的更少的外设,价格上也更便宜。MicroZed 的默认配置搭载 ZC7Z010 Zynq 设备 (比 ZedBoard 上的要小一些)。MicroZed 既可以当做一个独立的开发板来用,也可以附加在底板上当成一个模块来用。相比于独立操作,把 MicroZed 当成一个附加在底板上的模块来用的一个优势就是可以使用额外的输入输出功能。尽管本章我们主要考虑 ZedBoard,MicroZed 和它的底板也都可以在以下网站上找到并获得支持。

www.ZedBoard.org

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.6 文档,教程和支持

无论是 Zynq 的新用户还是老用户,都很有可能在某些阶段需要参考关于 ZedBoard 的文档。这些信息和关键文档可以从很多来源获取,特别是通过它们还可以获得更高级的知识。这些来源包括关于 ZedBoard 自身的文档,板卡的演示和教程,以及一些来自其他来源的支持。除此之外,所有之后提到的资料都可以在Zedboard.org 的 Documentation 页面找到。

http://www.zedboard.org/support/documentation

虽然 ZedBoard 网站上的资料十分有用,但也要注意,这些网络资料是动态的, 并且会随时间变化。尤其是版本变化时会出现新的资料。

6.6.1 关于 ZedBoard 的文档

在关于板卡自身的文档方面,主要的信息来源就是 ZedBoard 的硬件用户手册 [8],这里面涵盖了 ZedBoard 的各个功能,包括时钟和重置信号源,电源电路,配置方法,跳线设定,片上存储,外设接口,管脚电压和扩展接头。ZedBoard 勘误文档对这些信息提供了一些必要更新 [4]。硬件手册是一个很有用的参考文档,特别是对于想要在板卡上开发外设的用户。

Master constraints files 是所有关于输入输出连接配置集合的文件,这些约束文件同时可以在 ISE 设计流程中的 .ucf 文件和 Vivado 设计流程中的 .xdc 文件中包含使用。

另一重要文档关于 USB-UART 连接,这需要下载特定驱动并在主机上安装。这个过程可以在 《Cypress CY7C64225 USB-to-UART Setup Guide》中找到 [2]。

包含图表、机械图纸和材料清单的更多地板卡相关信息可以在以下网站上找 到,所有这些文档都可以在 Support/Documentation 板块下 [14]。

www.ZedBoard.org

6.6.2 演示和教程

许多演示和教程可以协助入门。而以下这些是特别有用的:

  • Getting Started Instructions卡 [7] — 在工具包中得到的一个简短引导, 用来确定 ZedBoard 是否工作正常。
  • Overview of the ZedBoard Kit 视频 [3] — 演示如何检查 ZedBoard 工具包 中的部件,以及如何连接板卡开始工作。
  • Getting Started Guide [6] — 包含许多 ZedBoard 的功能演示。
  • ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques (CTT) 指 南 [12] — 一个介绍 PL 和 PS 的教程,十分有用。

一些引导可能会含有一系列文件,以及可能会针对某一特殊版本的 Xilinx 工 具,所以在开始前检查一下版本是否正确是很重要的。

6.6.3 在线课程

在 ZedBoard.org 上有许多可用的课程,并且对于网站的注册用户来说都可以免费获得。另外,教育机构的成员 ( 教师,研究者和学生 ) 可以通过 Xilinx 大学计划获取更多资源。教学材料会在第 7 章提到。

ZedBoard.org 上的最主要的练习资料是 Avnet 提供的 SpeedWay Training。在 本文起草时候,已经有四个课程可用,分别是 《Introduction to Zynq》 , 《Implemeting Linux on Zynq-7000 Soc》,《Software Defined Radio on Zynq》 和 《Debugging Arm Procesor System》。

另一个非正式的练习来源是 ZynqGeek,一个 ZedBoard.org 社区成员发布的博 客。它一般会给出一些特定的程序(有时也发布在 ZedBoard.org 的论坛中),还有比如 “HelloWorld” 的例子;如何在 PL 上创建并连接外设;以及创建 Linux 内核等话题。关于 ZedBoard 社区的内容会在之后的 6.7 小节讨论。

6.6.4 其他 ZedBoard 资源和支持

一般来说,看一些其他人的设计很有好处,因此在 ZedBoard.org 发布的多个参考设计十分有用。它们被放在 Support/Reference Design 板块下,主要由 Avnet 和其他 ZedBoard 人员开发的标准工程组成。这些工程包括一个四相移相键控(QPSK)演示,一个使用基于 Zynq 的 HDMI 视频设计,以及 Zynq 上的桌面 Linux 系统。其中有部分需要不包含在 ZedBoard 工具包中的额外的模块,比如 Pmod 或 FMC 板卡。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.7 ZedBoard.org 社区

这是 ZedBoard 的社区板块,由 www.ZedBoard.org 网站维护。让 ZedBoard 区 别于其他开发板,并且创建了一个环境使 ZedBoard 用户可以获取资源,交流想法以及相互帮助以解决问题。这里着重点出该网站的社区方面,至于其他方面,尤其是文档,在之前的章节以及有所涵盖。

6.7.1 社区工程

除了参考设计外,社区中还有一个页面发布社区工程,这些设计由 ZedBoard 网站成员贡献,既可以分享完整的设计,也可以是未完成的工程,放在那里寻找帮助,或者促进参与度。所有社区成员都可以提交社区工程,这需要经过一个简短的审核程序。这些工程按照贡献日期,包含 OLED 显示、电机控制、使用 AMS101 附加模块的混合信号处理程序。这些工程包含了一系列的从简单系统开始的主题。其中也一部分需要使用额外的模块,但是大部分都只需要 ZedBoard 本身即可。

6.7.2 博客

ZedBoard.org 社区也有部分被链接到 Zynq 爱好者的博客。直到本文起草,其 中有两个特别活跃的博客,ZynqGeek 和 Zynq from scartch。个人博客的发表经常会基于一些难题,以及解释 Zynq 设计中一些疑杂的地方,无论是关于基本原则,硬件设计还是软件开发。这之中许多都遵循着教程的格式。博客的发表经常会激励其他人的提问和评论,这也增加了社区的感觉。

6.7.3 支持论坛

在发布后一年之内,超过 3000 块 ZedBoard 卖给了社区,另有差不多数量卖给了学术机构 [9],因此该平台拥有强力并且高速增长的用户群。他们论坛的形式转化成了一个健康的 ZedBoard社区。这些论坛给 ZedBoard用户提供了一个问答平台,特别是为初学者提供了一个寻找帮助的优质环境。这些设施同时提供中英文两种语言。ZedBoard 用户也可以在 Xilinx 官方论坛中提问和解答:http://forums.xilinx.com/

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.8 章节回顾

本章节主要介绍了 ZedBoard,一款搭载 Zynq XC7Z020 设备的低功耗评估和开发 板。本章中包含了 ZedBoard 的重点特性,同时重点阐述了板卡上多种物理接口以及它们的作用。我们同样看到了设计工具对于 ZedBoard 的特殊支持 (同样对于其他开发板也是),这可以帮助加快设计进程。

ZedBoard一部分目标是鼓励学术和爱好者社区使用 Zynq,因此特别为初学者 入门 Zynq 提供了大量的可用资源。在之前的几页中,我们确认了 ZedBoard 工具包中的内容,解释了如何安装,以及总结了 ZedBoard 入门信息的几个关键来源。之后,我们讨论了 ZedBoard的社区方面,尤其关注了社区工程,以及论坛之类的,“活的 ” 资源以解决技术问题以及和相同平台内的其他人交换想法。

ZedBoard 拥有大量用户,特别是学术机构。在下一章,我们的主题继续聚焦于 Zynq 和 ZedBoard 的教育,研究和练习。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

6.9 参考文献

说明:所有的 URL 最后在 2014 年 6 月访问过。

[1] Analog Devices, “Analog Devices FMC - Communications Board: Analog Connectivity with Xilinx Zynq”, 2012. 位于 :http://www.analog.com/static/imported-files/overviews/FMC-Communications_Product_Highlight.pdf

[2] Avnet, “Cypress CY7C64225 USB-to_UART Setup Guide”, version 1.3, January 2014.

[3] Avnet, “Overview of the ZedBoard Kit”, 视频 .位于 : http://www.zedboard.org/videos/overview-zedboard-kit

[4] Avnet, “ZedBoard Rev C.1 Errata”, revision 1.4, January 2014.

[5] Avnet, “ZedBoard Rev D.2 Errata”, revision 1.1, January 2014.

[6] Avnet, “ZedBoard Getting Started Guide”, version 7.0, January 2014.

[7] Avnet, “ZedBoard Getting Started Instructions”.

[8] Avnet, “ZedBoard (Zynq Evaluation and Development) Hardware User’s Guide”, version 2.2, January 2014.

[9] BusinessWire 网站 , “Avnet Electronics Marketing Celebrates One Year of ZedBoard”, 23rd July, 2013. 位于 : http://www.businesswire.com/news/home/20130723005579/en/Avnet-Electronics-MarketingCelebrates-Year-ZedBoard

[10]Digilent, Inc., “XUP USB-JTAG Programming Cable” 网页 . 位于 : http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,716&Prod=XUP-USB-JTAG

[11]Xilinx, Inc., “Platform Cable USB II” 网页 . 位于 : http://www.xilinx.com/products/boards-and-kits/HW-USB-II-G.htm

[12]Xilinx, Inc., “ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques”, Vivado 13.2, July 2013. 位于 : http://www.zedboard.org/support/design (requires login)

[13]Xilinx, Inc., “Zynq-7000 Technical Reference Manual”, UG585, version 1.7, February 2014. 位于 : http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf

[14]ZedBoard.org “Documentation” 网页 .位于 : http://www.zedboard.org/support/documentation。

FPGA Xilinx Zynq 系列(十六)The ZedBoard

第十六篇到此结束,下一篇将带来第十七篇,开启第七章,包括教育、研究和培训等相关内容。欢迎各位大侠一起交流学习,共同进步。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!