logo资料库

MicroZus 开发平台参考教程.pdf

第1页 / 共489页
第2页 / 共489页
第3页 / 共489页
第4页 / 共489页
第5页 / 共489页
第6页 / 共489页
第7页 / 共489页
第8页 / 共489页
资料共489页,剩余部分请下载后查看
封面
目录
0 前言
1 Zynq-7000 系列芯片简介
2 Vivado 开发环境安装
3 Vivado 全流程概览 - LED流水灯 (PL)
4 硬件环境的调优 - 按键检测 (PL)
5 和片外芯片打交道 - IIC 读写 EEPROM (PL)
6 片上调试的利器 - 用 ILA 在线调试 IIC 串口 (PL)
7 节能环保 - 增量编译 FPGA 设计的小改动 (PL)
8 打包自己的设计 - 用户定义 IP 之模块打包 (PL)
9 逻辑设计中的即插即用 - 基于 IP 的设计之 HDMI 输出 (PL)
10 Zynq 处理器初探 - Hello Zynq (PS)
11 Zynq 中断初探 - PPI 中断 (PS)
12 Zynq 软硬件协同设计 - LED 流水灯 (PS+PL)
13 Zynq 软硬件协同设计 - 按键中断检测 (PS+PL)
14 Zynq 软硬件协同设计 - 按键非中断检测 (PS+PL)
15 Zynq 软硬件协同设计 - EMIO (PS+PL)
16 Zynq 软硬件协同设计 - AXI4 IP 打包 (PS+PL)
17 Zynq 软硬件协同设计 - IIC 读写 EEPROM (PS+PL)
18 Zynq 软硬件协同设计 - DRAM 读写操作 (PS+PL)
19 Zynq 软硬件协同设计 - HDMI 输出 (PS+PL)
20 Zynq 软硬件协同设计 - 从 Flash 和 SD 卡启动 (PS+PL)
21 Zynq Linux 开发 - VirtualBox 安装 Ubuntu 14.04
22 Zynq Linux 开发 - PetaLinux 工具安装
23 Zynq Linux 开发 - 从 QSPI-Flash 启动 PetaLinux
24 Zynq Linux 开发 - 从 SD 卡启动 PetaLinux
25 Zynq Linux 开发 - 基于 TCF-agent 调试 Linux 应用程序
26 Zynq Linux 开发 - 驱动 USB 外设
27 Zynq Linux 开发 - 驱动 WiFi
28 Zynq Linux 开发 - Run Ubuntu
29 最后 - 以终为始
MicroZus 开发平台参考教程 - 基于ZYNQ 7010 的 FPGA + ARM 开发
目录 0 前言 ....................................................................................................................................................... 1 1 Zynq-7000 系列芯片简介 ............................................................................................................... 2 2 Vivado 开发环境安装 ....................................................................................................................... 4 3 Vivado 全流程概览 - LED 流水灯(PL) ................................................................................... 18 4 硬件环境的调优 - 按键检测(PL) ................................................................................................. 40 5 和片外芯片打交道 - IIC 读写 EEPROM(PL) .......................................................................... 46 6 片上调试的利器 - 用 ILA 在线调试 IIC 串口(PL) ................................................................... 53 7 节能环保 - 增量编译 FPGA 设计的小改动(PL) ....................................................................... 70 8 打包自己的设计 - 用户定义 IP 之模块打包(PL) ....................................................................... 78 9 逻辑设计中的即插即用 - 基于 IP 的设计之 HDMI 输出(PL) ................................................. 94 10 Zynq 处理器初探 - Hello Zynq(PS) ................................................................................ 112 11 Zynq 中断初探 - PPI 中断(PS) ........................................................................................... 130 12 Zynq 软硬件协同设计 - LED 流水灯(PS+PL) .................................................................... 137 13 Zynq 软硬件协同设计 - 按键中断检测(PS+PL).................................................................. 150 14 Zynq 软硬件协同设计 - 按键非中断检测(PS+PL).............................................................. 165 15 Zynq 软硬件协同设计 - EMIO(PS+PL) .............................................................................. 178 16 Zynq 软硬件协同设计 - AXI4 IP 打包(PS+PL) ................................................................ 194 17 Zynq 软硬件协同设计 - IIC 读写 EEPROM(PS+PL) ...................................................... 207 18 Zynq 软硬件协同设计 - DRAM 读写操作(PS+PL) ........................................................... 223 19 Zynq 软硬件协同设计 - HDMI 输出(PS+PL) ..................................................................... 236 20 Zynq 软硬件协同设计 - 从 Flash 和 SD 卡启动(PS+PL) ................................................ 276 21 Zynq Linux 开发 - VirtualBox 安装 Ubuntu14.04 ..................................................... 294 22 Zynq Linux 开发 - PetaLinux 工具安装 ........................................................................... 317 23 Zynq Linux 开发 - 从 QSPI-Flash 启动 PetaLinux ..................................................... 322 24 Zynq Linux 开发 - 从 SD 卡启动 PetaLinux ................................................................... 344 25 Zynq Linux 开发 - 基于 TCF-agent 调试 Linux 应用程序 ............................................ 365
26 Zynq Linux 开发 - 驱动 USB 外设 ....................................................................................... 386 27 Zynq Linux 开发 - 驱动 WiFi ................................................................................................ 409 28 Zynq Linux 开发 - Run Ubuntu ......................................................................................... 458 29 最后 - 以终为始 ........................................................................................................................... 486
 必要性 0 前言 开发此教程之前,作者一直在问自己,它存在的必要性是什么。因为 Xilinx 有官方的开发板 和用户手册,也有非常有名的第三方开发板厂商如 Digilent,还有淘宝上各式各样的开发板。但 是,它们都存在诸多问题:  Xilinx 官方开发板:价格昂贵,内容简略,对开发者要求较高。  Digilent 开发板:价格昂贵,内容简略,对开发者要求较高。  淘宝上其他开发板:良莠不齐,内容东拼西凑,只是简单步骤的罗列,代码混乱。  读者需要什么 当然是学会 FPGA 开发。作者本人在 FPGA 逻辑设计领域摸爬滚打也有 7,8 年了,一开始也 买过市面上的一些板卡,但大部分开发板,只是简单步骤的罗列,再加上一些没有为什么的代 码,而且各式各样的代码风格也让我深受其害。因为做 FPGA 开发的大都是硬件工程师,没有受 过系统的软件开发训练,代码混乱就可想而知。所以这本教程,也带有作者多年的点滴经验和 体会,希望能帮读者迅速入门,少走弯路。  为什么学习 ZYNQ 平台 有工科背景的读者,大部分都接触过单片机,DSP,FPGA 开发,单片机和 DSP 自身带有 CPU 和指令集,相当于一个完整的微型系统,而 FPGA 以前常常用来做粘合逻辑,对于大型项目,往 往要外接 DSP 作为主处理器负责流程控制和调度,而 FPAG 作为协处理器负责大规模并行计算, 所以可以说以前的 FPGA 是没有大脑的,随着 Altera 和 Xilinx 推出带 Nios 和 Microblaze 软核的 FPGA,这种状况得以缓解。ZYNQ 平台的推出,更使得基于 FPGA 的片上系统(SoC)成为可能。 ZYNQ 是 Xilinx 推出的 FPGA 加 ARM 解决方案,片内总线采用 AXI 总线协议(AMBA 3.0), 相比较于常用的 AHB 总线协议(AMBA 2.0),其性能和带宽均有大幅提升。随着数字系统越来 越复杂,软硬件协同设计越来越困难,FPGA 加 ARM 这种低成本 SoC 解决方案是大势所趋。  为什么选择我们 针对以上各种问题,MicroPhase 为读者推出高性价比的开发板和内容详实的参考教程,不 只告诉你怎么做,更要告诉你为什么,从而帮助读者迅速入门,轻松进阶,稳步提高,进而领 略到 FPGA 加 ARM 开发的乐趣。 1
1 Zynq-7000 系列芯片简介 Zynq™-7000 系列芯片是基于 Xilinx 的可扩展处理器平台架构(Extensible Processing Platform, EPP), 将双核 ARM Cortex™-A9 处理器和 FPGA 可编程逻辑单元集成在一颗单芯片中,从而构成所谓的 PS(Processing System)加 PL(Programmable Logic)的单芯片 SoC 解决方案。 PS 部分,以 ARM 处理器为核心的应用处理单元(Application Processor Unit, APU)可以集成丰富的 外设,如 DDR,QSPI Flash,USB,UART,I2C,SPI,CAN,SDIO,Ethernet 等。 PL 部分,为用户提供了如高精度 DSP 处理器,XADC 模数转换器等通用的逻辑单元。得益于 FPGA 可编程的灵活性,用户可以根据不同的应用场景实现不同的逻辑功能。 PS-PL 互联,基于 ARM AMBA3.0 协议的 AXI 总线,提供了高性能,高带宽,低延迟的片内总线, 相比较于目前通用的 AMBA2.0 的 AHB 总线协议,更容易设计出高性能 SoC。 下图是 Zynq-7000 系列 FPGA 总览图, 2
其中,绿色框①为 PL 域,紫色框②为 PS 域,金色框③为以 ARM 双核处理器为核心的应用 处理单元,橙色框④为 PS 域和外围器件的接口 MIO。 新知识的学习总带有新名词,这里总结一下上图中重要的缩略语。 MIO (Multiplexing IO, PS 域可复用的 IO,因为此 IO 管脚的配臵在一定范围内有灵活性); EMIO (Extensible MIO,对 MIO 的扩展,将 PL 域的 IO 口直接连到 PS 域); GIC (General Interrupt Controller,通用的中断控制器); IRQ (Interrupt Request,中断请求); OCM (On Chip Memory,片上存储); DMA (Direct Memory Access,直接存储访问) 其它的以后慢慢记。 以下简要总结 Zynq-7000 系列 FPGA 的片上资源,让读者先有个大体概念。  PS 部分 ARM Cortex-A9 实时信号处理器,支持对称和非对称配置。 ARM Version 7 指令集。 32KB 指令和 32KB 数据 L1 缓存,512KB 共享 L2 缓存。 私有定时器,看门狗定时器。 256KB 的片上 SRAM。 集成 DMA 控制器。 通用中断控制器 GIC。 DDR/QSPI/SRAM/NOR/NAND 控制器。 I/O 外设如:GPIO, Ethernet, USB, SDIO, SPI, CAN, UART, I2C。  PL 部分 可配置的逻辑块 CLB。 36KB 的块 RAM。 数字信号处理器 DSP48。 高精度时钟管理。 可配置的高性能 I/O。 低功耗收发器 transceivers。 模数转换器 XADC。 好了,Zynq-7000 系列芯片的介绍就先到这里,读者有个大体印象就可以了。后续随着学习的 不断深入,会逐步熟悉各种片上资源。 下一节,将为读者具体描述 Xilinx 未来 10 年力推的开发工具 Vivado 的安装。 3
2 Vivado 开发环境安装  Vivado 安装包下载 对于网络条件比较差的读者,拿到开发板后,请联系 MicroPhase 工作人员获取百度网盘下载地 址。对于网络条件比较好的读者,可以自己在 Xilinx 官网下载。 另外考虑到 Vivado 软件的更新换代,更高版本的软件,往往意味着更好算法的加入,比如更好 的集成电路布线算法,可能一个先前时序很紧张的设计,用新版本软件去重新编译,会得到一 个更宽松的时序裕量。所以本节花费一些笔墨,为大家介绍在 Xilinx 官方网站下载安装包和遇到 问题的解决方法。具体步骤如下, 1. 浏览器打开 Xilinx 官方网站 http://www.xilinx.com/ 2. 先注册一个账号,如下图点击,选择 Create an account, 填入必要的信息,提交即可注册成功 (注意,账号从注册到生效可能需要半天时间)。 3. 点击 Support > Downloads & Licensing,点击 Vivado,再点 2015.4,(注意,本教程使用相 对比较成熟和稳定的 2015.4 版本)如下图, 4
4. 然后下拉网页,找到 Vivado Design Suite - HLx Editions - Single File Download 这一项,如下图 选择要下载的安装包,(注意,选择 All OS Installer 的原因是,可同时支持在 Windows 和 Linux 系统下的安装,后续我们会用到 Linux 下的开发)。 5. 用之前注册的账户登录, 之后点击 Next 即可开始下载。 注意,因为某些未知因素,点击 Next 后可能不会出现下载页面,而有如下出错信息, 5
分享到:
收藏