ug821-zynq-7000-swdev

合集下载

ZYNQ_嵌入式软件开发

ZYNQ_嵌入式软件开发

Example: Xapp1078 : Linux / Bare-metal AMP Xapp1079 : Bare-metal / Bare-metal AMP More info Refer to:
/Multi-OS+Support+(AMP+%26+Hypervisor)
FSBL工程根据XPS的XML文档选择需要的BSP驱动,并生 成ps7_init.c文件
相关文档: /support/documentation/user_g uides/ug821-zynq-7000-swdev.pdf
Page 8
Zynq-7000 Bootgen and BIF file format
Bootgen
A standalone tool for creating a bootable image suitable for the Zynq7000 AP SoC processor. The program assembles the boot image by prefixing a header block to a list of partitions. Each partition can be optionally encrypted and authenticated.
Page 3
Zynq-7000 开发工具 ---- XPS
XPS 可实现完整 的配置和定制操 作
管理 Zynq-7000 AP SoC 外设 IO 引脚启动配置和 初始化
器件安全、回读引 导和比特流管理 措施 项目专用配置感 知 无需用户掌握具 体硬件知识 利用可展开的软 件图自动构建一 级引导载入程序
Page 13
Zynq-7000 Power Management

XilinxZYNQ-7000平台简介

XilinxZYNQ-7000平台简介

XilinxZYNQ-7000平台简介平台介绍Zynq7000是赛灵思公司(Xilinx)推出的⾏业第⼀个可扩展处理平台Zynq系列。

旨在为视频监视、汽车驾驶员辅助以及⼯⼚⾃动化等⾼端嵌⼊式应⽤提供所需的处理与计算性能⽔平。

在2010年4⽉硅⾕举⾏的嵌⼊式系统⼤会上,赛灵思发布了可扩展处理平台的架构详情,这款基于⽆处不在的ARM处理器的SoC可满⾜复杂嵌⼊式系统的⾼性能、低功耗和多核处理能⼒要求。

赛灵思可扩展处理平台芯⽚硬件的核⼼本质就是将通⽤基础双ARMCortex-A9MPCore 处理器系统作为“主系统”,结合低功耗28nm⼯艺技术,以实现⾼度的灵活性、强⼤的配置功能和⾼性能。

由于该新型器件的可编程逻辑部分基于赛灵思28nm7系列FPGA,因此该系列产品的名称中添加了“7000”,以保持与7系列FPGA的⼀致性,同时也⽅便⽇后本系列新产品的命名。

Zynq-7000系列的可编程逻辑完全基于赛灵思7系列FPGA架构来设计,可确保28nm系列器件的IP核、⼯具和性能100%兼容。

最⼩型的Zynq-7000、Zynq-7010和Zynq-7020均基于专门针对低成本和低功耗优化的Artix-7系列;较⼤型的Zynq-7030和Zynq-7040器件基于包括4⾄12个10.3Gbps收发器通道,可⽀持⾼速⽚外连接的中端Kintex-7系列。

所有四款产品均采⽤基于2个12位1MspsADC(模数转换器)模块的新型模拟混合信号模块。

Zynq®-7000 SoC 系列集成 ARM® 处理器的软件可编程性与 FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上⾼度集成 CPU、DSP、ASSP 以及混合信号功能。

Zynq-7000 系列包括单核 Zynq-7000S 器件和双核 Zynq-7000 器件,是单位功耗性价⽐最⾼的全⾯可扩展的 SoC 平台,可充分满⾜您的独特应⽤需求。

ZYNQ7000开发平台用户手册说明书

ZYNQ7000开发平台用户手册说明书

文档版本控制目录文档版本控制 (2)一、开发板简介 (6)二、AC7Z020核心板 (8)(一)简介 (8)(二)ZYNQ芯片 (9)(三)DDR3 DRAM (11)(四)QSPI Flash (14)(五)时钟配置 (16)(六)电源 (17)(七)结构图 (18)(八)连接器管脚定义 (19)三、扩展板 (23)(一)简介 (23)(二)CAN通信接口 (24)(三)485通信接口 (24)(四)千兆以太网接口 (25)(五)USB2.0 Host接口 (27)(六)USB转串口 (28)(七)AD输入接口 (29)(八)HDMI输出接口 (30)(九)MIPI摄像头接口(仅AX7Z020使用) (32)(十)SD卡槽 (33)(十一)EEPROM (34)(十二)实时时钟 (34)(十三)温度传感器 (35)(十四)JTAG接口 (36)(十五)用户LED灯 (36)(十六)用户按键 (37)(十七)扩展口 (38)(十八)供电电源 (40)(十九)底板结构图 (41)芯驿电子科技(上海)有限公司 基于XILINX ZYNQ7000开发平台的开发板(型号: AX7Z020B )2022款正式发布了,为了让您对此开发平台可以快速了解,我们编写了此用户手册。

这款ZYNQ7000 FPGA 开发平台采用核心板加扩展板的模式,方便用户对核心板的二次开发利用。

核心板使用XILINX 的Zynq7000 SOC 芯片的解决方案,它采用ARM+FPGA SOC 技术将双核ARM Cortex-A9 和FPGA 可编程逻辑集成在一颗芯片上。

另外核心板上含有2片共512MB 高速DDR3 SDRAM 芯片和1片256Mb 的QSPI FLASH 芯片。

在底板设计上我们为用户扩展了丰富的外围接口,比如2路CAN 通信接口,2路485通信接口,2路XADC 输入接口, 1路千兆以太网接口,1路USB2.0 HOST 接口,1路HDMI输出接口,Uart 通信接口,SD 卡座,40针扩展接口等等。

Zynq7000系列之芯片引脚功能综述

Zynq7000系列之芯片引脚功能综述

Zynq7000系列之芯⽚引脚功能综述很多⼈做了很久的FPGA,知道怎么去给信号分配引脚,却对这些引脚的功能及其资源限制知之甚少;在第⼀章⾥对Zynq7000系列的系统框架进⾏了分析和论述,对Zynq7000系列的基本资源和概念有了⼤致的认识,然⽽要很好地进⾏硬件设计,还必须了解芯⽚的引脚特性,以确定其是否符合我们的选型要求,这些要求包括GTX引脚数⽬、select IO引脚数⽬、select IO引脚的资源配置情况、PS IO的数⽬及类型等。

1. Zynq7000系列引脚分类 Zynq7000系列引脚的分类是确定的,⽽各类引脚的数⽬则因芯⽚封装的不同⽽不同,(为了便于理解,本⽂所列引脚数⽬皆以XQ7Z045 FFG900封装为例,⽂章其他部分不再做出说明)其主要类型如下:FFG900引脚分类引脚个数备注PS IO128ARM处理系统的专⽤引脚Select IO362普通的FPGA引脚Configuration Pins InBank 017Jtag类的⼀些引脚GTX Pins16X4(16个通道,每通道两对差分引脚)⾼速串⾏收发引脚XADC Pins32模数转换引脚1.1. Configuration Pins In Bank 0Pin Name Type Direction DescriptionDONE_0Dedicated Bidirectional⾼有效,⾼代表配置完成INIT_B_0Dedicated Bidirectional低有效,表⽰配置存储器正在初始化PROGRAM_B_0Dedicated Input低有效,表⽰异步复位配置逻辑TCK_0Dedicated Input Jtag时钟信号TDI_0Dedicated Input Jtag数据输⼊TDO_0Dedicated Output Jtag数据输出TMS_0Dedicated Input Jtag模式选择CFGBVS_0Dedicated Input为bank0的配置引脚预选择电平标准,1表⽰bank0的供电电压为2.5或3.3;0表⽰bank0的供电电压为1.8 PUDC_B Multi-function Input上拉电阻配置引脚,配置SelectIO在配置阶段或上电后的其上拉电阻是否使能。

AUMO ALINX ZYNQ-7000产品手册说明书

AUMO ALINX ZYNQ-7000产品手册说明书

ZYNQ-7000产品手册ZYNQ-7000 Product Guide2023关于我们官方合作伙伴业务范围芯驿电子科技(上海)有限公司,成立于2012年,总部位于上海松江临港科技城,是一家车载智能产品和FPGA 技术方案公司,拥有“AUMO”和“ALINX”两大品牌,其中AUMO 品牌专注车载智能产品,ALINX 品牌专注于FPGA 产品和方案定制。

经历十年发展,公司产品已经远销海外30多个国家。

2018年,公司通过高新技术企业认证,并通过ISO9001质量体系认证;2019年,荣获上海市松江区九亭镇“科技创新奖”;2020年,荣获上海市“专精特新企业“称号;2021年,申请通过上海市科技型中小企业技术创新资金项目,通过了国家级科技型中小企业认定,并通过了高新技术企业认证复审;2022年获得上海市张江国家自主创新示范区专项发展资金并通过“上海市创新型中小企业”认证。

ALINX 是全球的FPGA 芯片龙头企业XILINX 官方合作伙伴,国内FPGA 芯片龙头企业紫光同创官方合作伙伴,同时作为百度AI 合作伙伴,为百度定制了国产AI飞桨系统的Edgeboard 系列边缘设备。

通过多年的研发投入,已经推出100多款FPGA SoM 模组和配套板卡,积累了1000多家企业批量用户,上万个独立开发者,市场占有率遥遥领先。

通过产品+定制化服务的经营方式,ALINX 将继续加大对产品研发和技术研究的投入,不断与垂直行业客户合作,聚焦高端设备领域,协助客户解决行业的技术难题。

主要聚焦于FPGA + AI 解决方案,FPGA 国产化,FPGA 开发套件, ALINX 自有品牌产品。

公司提供的设计解决方案涉及人工智能、自动驾驶、轨道交通、半导体、5G 通信、医疗设备、工业互联、仪器仪表、数据中心、机器视觉、视频图像处理等行业。

紫光同创国内唯一的FPGA 板卡官方合作伙伴,XILINX 官方重要合作伙伴,百度AI合作伙伴。

XiIinx宣布Zynq-7000AJJProgrammabIeSoC系列全线量产

XiIinx宣布Zynq-7000AJJProgrammabIeSoC系列全线量产
标准 2 0 0 毫米 晶圆 , 3 0 0 毫米薄 晶圆的直径更大 , 因
而 ,利用 每 一 片 3 0 0毫 米薄 晶 圆所 能生 产 出的芯 片
数量可增加至 2 . 5 倍 。这项新技术带来 了随时可得 的更高产能和更高生产 率 ,这将令客户获益匪浅 。
( 来 自英 飞凌科 技 )
品。 ( 来自L S I )
发板 。各项设计方案广泛应用于包括汽车、 工业 、 通
Z y n q 一 7 0 0 0系列支 持 客户 为 其 系统 提供 更 先 进 的软件 智 能 , 包 括控 制 、 通信 、 安全、 系统管 理与 分 析
过基站 、 蜂窝站路 由器、 网关和移动回程设备为网络 信 、 数据中心等众多领域。
Z y n q ~ 7 0 0 0 A l l P r o ra g mm a b l e S o C的市 场需 求非 常 强 劲 , 目前 已有 3 5 0家不 同客户 采用 该产 品进行 设 计
开发 , 自 2 0 1 1年 1 2月 以 来 赛 灵 思 和 安 富 利
( A v n e t ) 已经 发货 2 0 , 0 0 0多 个 器件 和 4 0 0 0多 个 开
L S I推 出采用 A R M领先技 术的 全新通信处理器
L S I 公 司 日前推 出了 A x x i a  ̄5 5 0 0通信处理器
产 品 系列 ,旨在 提 高多 频无 线 基 站 和 4 G / L T E无 线 网络 的性 能和 功率 效率 。L S I  ̄A x x i a 5 5 0 0系列产 品
l R推 出车 用
A U I R 3 2 0 0 S M O S F E T马 区 动 l C
国际整流 器公 司 ( I n t e na r t i o n a l R e c t i f i e r , 简 称 Mi c r o c h i p T e c h n o l o g y I n c . ( 美 国微 芯 科技 公 司 ) 宣 布 ,推 出全球第 一 款数 字增 强 型 电源模拟 控 制器

Xilinx ZYNQ7000系列安全配置策略

Xilinx ZYNQ7000系列安全配置策略

Xilinx ZYNQ7000系列安全配置策略ZYNQ7000与传统FPGA有着巨大的差异,它将自己定位为一款All Programmable Soc(软硬件可编程片上系统),视其为以FPGA作为外设的双核ARM A9处理器更加准切。

它的启动过程体现了以处理器为核心这一特点,以往植入处理器硬核的FPGA的启动过程是先启动逻辑部分,再启动处理器,ZYNQ7000相反,先启动处理器再启动逻辑部分。

一、ZYNQ7000配置过程ZYNQ7000的配置按先后顺序分为3个阶段:stage0、stage1、stage2(可选)。

表3图1图2图3(UG821)二、ZYNQ7000安全策略ZYNQ7000提供诸多安全防范模块供客户调用,根据模块的特性可以分为被动和主动两类,被动模块主要包括多种加密、认证策略,主动模块包括JTAG关闭、温度电压监测、代码一致性检测、特异性检测(器件DNA)等,表4详细地列出这些部件,客户可根据设计需要调用。

表4:主被动防护模块主被动模块相互配合完成工程的安全设计,以下对常用的部分安全策略进行简介。

(1)、RSA用户认证:在某些情况下,设备对程序来源的合法性有很高要求:必须由合法的组织提供的程序才能启动设备,以确保设备工作在设定的情景中,任何非法程序或对合法程序的篡改将无法让设备工作。

Xilinx Z7芯片提供的RSA用户认证功能即是为了满足对程序进行合法性认证而引入的。

RSA是一种非对称加密技术,将其与数字签名技术配合使用,就能对相关数据的合法性进行认证。

Xilinx采用2组公私钥,1组固定,1组可替换,由此来确保更高的安全性。

固定的1组称为PPK/PSK(primary public key/primary secret key),替换组为SPK/SSK(secondary public key/secondary secret key)。

需要做认证的数据在其后加入1段认证代码,其包括:PPK,SPK,PSK加密SPK后得到的SPK 签名,SHA-256摘要算法对FSBL做摘要,得到的摘要用SSK进行加密获得签名,此签名也存放到认证代码,因此,认证代码包含上述4块数据。

Zynq7000启动流程介绍

Zynq7000启动流程介绍

Zynq7000启动流程介绍打了半天。

一不小心碰到鼠标后退键,啥都木了。

再来吧一开始呢,我以为Zynq7000是一个加上了双核A9处理器的FPGA芯片。

但是看了资料后,才发现,其实不是这么回事Zynq7000就如同他的名字一样,Zynq-7000 Extensible Processing Platform,是一个可扩展处理平台,简单说就是有个FPGA做外设的A9双核处理器。

所以,它的启动流程自然也和FPGA完全不同,而与传统的ARM处理器类似。

Zynq7000支持从多种设备启动,包括Jtag, NAND, parallel NOR, Serial NOR (Quad-SPI), 以及SD卡。

按手册说明除了Jtag之外的启动方式均支持安全启动,使用AES、SHA256加密后的启动代码(不过在勘误里说到,当前硅片版本的无法正常使用secure configuration功能,所以俺就不介绍它鸟)还是按照时间顺序来介绍下具体流程吧1.在器件上电运行后,处理器自动开始Stage-0 Boot,也就是执行片内BootROM中的代码2.BootROM会初始化CPU和一些外设,以便读取下一个启动阶段所需的程序代码,FSBL(First Stage Bootloader)。

不过这又有一个问题了----之前说到,Zynq支持多种启动设备,BootROM怎么知道从哪个启动设备里去加载FSBL?这就得靠几个特殊的MIO引脚来选择了,具体见下图BootROM会去读取MIO[2..8],从而确定启动设备,将选定设备的头192Kbyte内容,也就是FSBL,复制到OCM中,并将控制器交给FSBL,。

3,FSBL启动时可以使用整块256Kb的OCM,当FSBL开始运行后,器件就正式由咱自己控制了。

Xilinx 提供了一份FSBL代码,如果没什么特殊要求,可以直接使用。

按照手册说明,FSBL应该完成以下几件事。

1). 使用XPS提供的代码,继续初始化PS2). 将bitstream写入PL(配置FPGA),不过这一步也可以以后再做3). 将接下来启动用的Second Stage Bootloader(SSBL,一般就是U-Boot一类的东西),或者裸奔程序,复制到内存中4). 跳到SSBL运行去4,接下来的步骤就没啥特别了,Uboot开始运行,初始化好Linux启动环境,然后开始运行Linux系统。

Zynq7000从零开始之一

Zynq7000从零开始之一

Zynq7000从零开始之一使用myir的z-turn开发板,做一个从uart打印hello world的实验,只用PS,不用PL部分,程序从SD卡启动,跑在PS的内部RAM.zynq 7000的PS虽然也是CPU,但是开发方法不像普通的CPU 只需要一个SDK就可以了,它还需要vivado硬件设计软件.所以ZYNQ 7000的PS开发需要两个工具,一个是vivado-- 另一个是SDK-- .1. 打开vivado软件-->Create New Project,工程名和目录:2. next->选RTL Project->Add Sources,Add existing IP和Add constraints界面直接点next3. New Parts界面4. 添加IP,在Flow Navigator的IP Integrator下点Create Block DesignCreate Block Design如下,点OK在Diagram界面点击Add IP双击ZYNQ7 Processing System,添加CPU5. 设置CPU在Diagram界面点击Run Block Automation,不做修改,点Finish就可以。

在Diagram界面双击进入设置界面,我们把所有的接口去掉,只留下FIXED_IO.1> PS-PL Configuration->General->Enable Clock Resets->去掉FCLK_RESET0_N2> PS-PL Configuration->GP Master AXI Interface->去掉 MAXI GP0 interface3> Clock Configuration->PL Fabric Clocks->去掉FCLK_CLK04> DDR Congiguration->去掉Enable DDR5> 设置SD和UART引脚MIO Configuration->Bank1 IO Voltage选LVCMOS 1.8V.MIO Configuration->IO Peripherals->选上SD 0, SD 0的引脚配置:MIO Configuration->IO Peripherals->选上UART 1, UARRT 1的引脚配置:6. 点击OK返回Diagram界面, 把DDR接口删掉,配置之后的界面7. 生成设计文件右击system项->Generate Output Products->直接点Generate, 之后会提示文件生成成功.右击system项->Create HDL Wrapper选下面一项,点OK注意:如果重新修改了CPU配置,上面两个步骤一定要重新实行。

ZYNQ7000系列学习

ZYNQ7000系列学习

ZYNQ7000系列学习
ZYNQ7000-系列知识学习
⼀、ZYNQ7000简介
ZYNQ7000是xilinx推出的具有ARM内核的FPGA芯⽚,可⽤于常见SOC开发。

基于此,通过学习ZYNQ7000的各种设置和开发,可以有效地提⾼对FPGA在SOC上的应⽤特点,为进⼀步使⽤FPGA实现相应的项⽬提供了基础。

⼆、ZYNQ7000的学习内容
学习ZYNQ7000,⼤部分学习的内容是如何实现ARM和FPGA间的通信、FPGA与外部的通信、ARM与外部的通信。

在ARM与FPGA都可以实现设计时,如何选择实现的⽅法也是需要在实际的项⽬中不断的体验。

作为新⼿,相应的软件⼯具的使⽤也是必要的。

还有⼀些其他的内容需要学习,这⾥就不⼀⼀列举。

三、使⽤的⼯具
软件开发⼯具:vivado2019-2,vitis开发平台
硬件测试平台:xc7z010clg400_1芯⽚及配套设备
参考资料:xilinx官⽅资料(ug585),正点原⼦学习视频,尤⽼师FPGA学习视频。

其他⽹络资源。

四、学习⽬标
在掌握相应开发技能的基础上,具备能够独⽴的完成每⼀个阶段的设计分析优化,初步掌握基于FPGA的SOC设计能⼒。

第3章 Zynq-7000应用处理单元

第3章 Zynq-7000应用处理单元
来自通过SCU的双核Cortex-A9 MP系统的访问,以及来自要求
和Cortex-A9 MP系统一致的其它主设备的所有访问。
所有不通过SCU的访问和CPU是非一致性的,软件必须明确 地管理同步和一致性。
13
Zynq-7000应用处理单元
--系统级视图
来自APU的访问,其目标可以是OCM、DDR、PL、 IOP从设备或者PS子模块内的寄存器。
---中央处理器
Cortex-A9 CPU采用了预测地执行指令,这样使能动态
地重命名物理寄存器到一个虚拟可用的寄存器池中。
CPU使用这个虚拟寄存器重命名来消除寄存器之间的依赖性, 但不会影响到程序正确地执行。 这个特性通过一个基于循环展开的有效硬件,允许代码的加 速。
同时,通过在相邻指令间消除数据的依赖性提高流水线的利
为了将访问OCM的延迟降低到最小,来自SCU的一个专用主 设备端口提供了处理器和ACP到OCM地直接访问,其访问延迟甚
至小于L2高速缓存。
14
Zynq-7000应用处理单元
--系统级视图
所有到DDR的APU的访问,通过L2缓存控制器进行连接。
为了改善DDR访问延迟,提供了一个来自L2缓存控制器到 DDR存储器控制器的专用主端口,允许所有的APU-DDR的交易不 经过和其它主设备共享的主互联。 来自APU的其它访问,这些访问既不绑定OCM,也不绑定
18
Zynq-7000应用处理单元
--Cortex-A9处理器
Cortex-A9处理器实现必要的硬件特性
用于程序调试和跟踪调试生成支持。
硬件计数器
用于处理器和存储器系统操作时搜集统计数据。
Cortex-A9内的主要子模块
是中央处理单元CPU、L1指令高速缓存和数据高速缓存器、 存储器管理单元、NEON协处理器和内核接口。

Zynq-7000 All Programmable SoC工业自动化方案

Zynq-7000 All Programmable SoC工业自动化方案

P r o g r a m m a b l e解 决 方 案 ,以应 对 高 赛 灵 思 与其 联 盟 汁 划 成 员 QDE S YS 以太 网套件结 合使 用 ,开发 出业 界一
级 运 动 控 制 、实 时 工 业 网 络 、机 器 公 司 提 供 了 基 于 Z y n q . 7 0 0 0 Al l 流的双 核锁步 马达控 制应 用的企 业 。 视 觉 以及 其 他 新 一 代 工 业 自动 化 应 P r o g r a mma b l e S o C智能 驱动 平 台 的 该 应 用 将 帮 助 设 计 者 实 现 其 系 统 的 用 的 挑 战。 赛 灵 思 以 Z y n q - 7 0 0 0 Al 高性能运 动控 制应用 ,可 以实 现千 兆 I l E C6 1 5 0 8功能安全认证 。
随 着设 备综合效 率 ( OE E)的 模 型 ( C OM)接 口的支持下 ,设计 人 计 ,可加 速工业 嵌入式 控制 系统 的设 不 断提 高 ,工业 自动化 市场需 要实现 员能对运动系统进行深入分析和控制 , 计与 实现进程 。该平 台非常适 合要 求 S P解决方 案而 言实 单芯 片高性能 马达控 制和 工业 网络功 更高生产 力 ,降低总拥 有成本 ,同时 相对于传 统 的 AS 还 需要提 高安 全性和 系统功 能 。要满 现了性能的提 升。 足上述 要求 ,系统 的计 算性能 必须 更 能的设 计。赛灵思提 供 Z y n q - 7 0 0 0 A l l
P r o g r a mma b l e S o C为 核 心 的系统 开 位 以太 网紧密 集成 网络 、采用 创新型
赛 灵 思 与 其 联 盟 成 员共 同 推 出
发软 / 硬 件技 术 ,不 仅能 加 速设 计生 低 E MI 功率调制 方案 的高级 马达和运 的 新 Z y n q 一 7 0 0 0 Al l P og r r a mma b l e 产 力 ,同时还 可通 过单 芯片系统 集成 动控制 。在面 向 Wi n d o ws 应用 的图形 S o C智能驱 动器平 台提供 了必要 的硬 提升 系统 的性能和安全性 。 用户 界面 ( GU I )和 强大 的组 件 对 象 件 、设计 工具 、马达 、I P核和 参考 设

Zynq-7000可扩展处理平台

Zynq-7000可扩展处理平台
以看 到 A MS的 硬 核 ,这 部 分是 端 点 控制 器 ,可 以 引到 外面 上 市时 间 、灵活性 、可扩展 性方 面 ,Z n 一0 0同时具 备 y q7 0 的处 理 器 子 系 统 里 去 。
可扩 展性和 F G P A的可扩 展性 ,在管理风 险上有优势 ,总
Z n . 0 0处 理 器 是 一 套 完 整 的 系 统 ,硬 核 的 部 分 和 体 来看 ,Z n .0 0会有 比较长 的生命周 期 ,是 比较 新的 yq70 y q7 0 软核 的部 分是互相 协同的工 作方式 ,由于 存在可编程 逻辑 解 决 方 粟 。
设计环境 , 具有 完整的软件编程模型 ,
SCs 案来搭 建下一 代的处理 器系统 。多芯 同时 A I 有 技术风险 和生产方面 的 还 有大家 非常熟悉 的软件 和硬件 的设
片方案 成本较 高 ,功耗 大 ,占用更多 风 险 ,研发 周期相 对 比较长 ,在 上市 计 流程。它们具有 灵活 的加 速器
的部件 ,大 家在应对下 一代 的应 用需求或 者对现有需 求进
行延 伸扩展 时有 非常大 的灵活 性 。同时 A RM 的处理 方面
是工业标 准的部件 ,可 以用 以前 的代码和 以前的 设 汁,也 可以 引用很 多业界上 先进的设 计 ,是很好 的处理器 ,希 望 大家可 以从 网站上进行更多深入的了解 。
可编程逻辑 的部分
可编程 逻辑 的部 分通常会包含相
在处理器 子系统框 图的上边的部 当数 量的逻辑单元 ,A I SC设计工程师 分 ,有 S1 D1的 控制 器 ,S1控制 可 能会把 它理解 成最新 配置 ,同时也 和
FG P A的部 分用于扩 展 子系统 ,有 丰 器 或者 说 静态 存储 器 包含 多 个接 口, 包含 了 D B单元大块的 R M ,或者 S A 富 的扩展 能 力 ,有超 过 3 0 0 0个 内部 互联 ,提供 的带 宽非常 丰富 。此 外在 I O整 件 方 面 ,F GA的优 点 是 l P O可 以充 分 自定义 ,可 以在 F G P A部分提 供 集成高速 的 串行 口,执行 多种 串行 标 准。同时在 F GA内集 成了一个硬 P 核 ,即模数 转换器 ,这些总体 部件共

zynq-7000简介

zynq-7000简介

赛灵思Zynq-7000 可扩展处理平台(EPP)将双 ARM Cortex-A9 MPCore 处理器系统与可编程逻辑和硬 IP 外设紧密集成在一起,提供了灵活性、可配置性和性能的完美组合。

围绕其刚刚推出的可扩展处理平台(EPP),赛灵思在今年3月发布了基于Zynq -7000新系列的首批器件。

采用 28 nm制造工艺, Zynq-7000嵌入式处理平台系列的每款产品均采用带有NEON及双精度浮点引擎的双核 ARM Cortex-A9 MPCore 处理系统,该系统通过硬连线完成了包括L1,L2 缓存、存储器控制器以及常用外设在内的全面集成。

(图 1)。

尽管 FPGA 厂商此前已推出过带硬核或软核处理器的器件,但 Zynq-7000 EPP 的独特之处在于它由ARM 处理器系统而非可编程逻辑元件来进行控制。

也就是说,处理系统能够在开机时引导(在FPGA 逻辑之前)并运行各个独立于可编程逻辑之外的操作系统。

这样设计人员就可对处理系统进行编程,根据需要来配置可编程逻辑。

利用这种方法,软件编程模式将与全功能标准 ARM 处理器片上系统(SoC)毫无二致。

过去设计师需要对 FPGA 逻辑进行编程以运行片上处理器。

那就意味着如果想要使用器件,必须得是 FPGA 设计师。

但现在使用 Zynq-7000 EPP,则完全不必担心这一问题。

图 1 ——不同于以往在 FPGA 架构中嵌入 MPU ,赛灵思全新 Zynq-7000 EPP 系列使用ARM 处理器而非可编程逻辑来进行控制。

图1中文字:Multi Gigabit Transceivers 多个千兆位收发器新产品系列消除了延迟和从头设计芯片的风险,这意味着系统设计团队可以利用其先进的高级软硬件编程多功能性简便快速创建创新型片上系统,而这是其他任何半导体器件都无法实现的。

这样,Zynq -7000 EPP 能够为广大的创新者带来无法比拟的益处,无论是专业的硬件、软件、系统设计师或仅是单纯的“制造商”,他们都可以探讨处理能力与编程逻辑结合的可能性,进而创建出从未想象过的创新应用。

Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧

Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧

Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑摘要:本文介绍与XILINX的EPP平台成员, ZYNQ芯片相关的缩写术语和含义. 与简单翻译术语不同,本文对每个缩写在本行业其他公司的展开含义也略作介绍, 避免混淆. 对术语的技术功能也作简单介绍.8月份学校放暑假, 大学计划这边紧急的事不多, 因此通常是俺的充电和学习时间.本月的学习任务嘛, 当然是ZYNQ. 资料不多,一个是今年3月份出来的UG804, 是一个简介性质的东东, 24页, 另一个是UG585, 技术手册,目前有1804页. 目前都还是保密的, 合作伙伴需要签NDA才能看到.去年ZYNQ刚出来的时候,文档还没有,俺只有对着仅有的一个框图,对其中的缩写瞎猜了一番. 当时还写了博客. 信马由缰-XILINX的ARM 芯片初探(之一). 看到UG804,终于有机会验证俺当时猜的缩写展开到底对不对.看了之后才发现, 框图中那点看不懂的缩写, 比起UG804中引入的各种缩写, 简直是小巫见大巫. 为了给你一个概念, 假设你3年后碰到一个用过ZYNQ的工程师, 和你说了下面一句话, 你能听懂多少: 经理啊, 我的PS启动了,可是PL还没加载, 这时,APU复位检查了没问题, MIO连得好好的, EMIO看上去也工作正常,你说我该查GIC呢, 还是AFI呢 ?坑爹啊!比火星文还火星文的话听了伤不起啊~~~.下面,开始逐个解释新出现的,或者冷僻的缩写,继续看文档时看见了,才能反映上来是啥意思.假设你3年后碰到一个用过ZYNQ的工程师, 和你说了下面一句话, 你能听懂多少:经理啊, 我的PS启动了,可是PL还没加载, 这时,APU复位检查了没问题, MIO连得好好的, EMIO看上去也工作正常,你说我该查GIC呢, 还是AFI呢 ?PS:处理系统(Processing System) , 就是与FPGA无关的ARM 的SOC的部分。

浅谈XilinxZYNQ-7000平台的应用【文尾有福利】

浅谈XilinxZYNQ-7000平台的应用【文尾有福利】

浅谈XilinxZYNQ-7000平台的应⽤【⽂尾有福利】Xilinx Zynq-7000 全可编程 SoC (AP SoC) 系列集成 ARM处理器的软件可编程性与 FPGA 的硬件可编程性,不仅可实现重要分析与硬件加速,同时还在单个器件上⾼度集成 CPU、DSP、ASSP 以及混合信号功能。

Zynq-7000 器件配备双核ARM Cortex-A9 处理器,该处理器与基于28nm Artix-7 或 Kintex-7 的可编程逻辑集成,可实现优异的性能功耗⽐和最⼤的设计灵活性。

这种集成在⼀起的CPU与FPGA之间的通讯总线,通讯速度更快,信息传递结构更简单。

简单来说,就是Xilinx的这款芯⽚既能节省成本⼜能提⾼性能,还有这种好事?还真有,下⾯我来举个例⼦。

⿍阳(SIGLENT)SDS1000X-E系列以及电商专供SDS1000X-C系列超级荧光⽰波器2/4通道,最⾼带宽200MHz图1 SDS1000X-E(X-C)中集成了Zynq-7000SDS1000X-E(X-C)中采⽤的XC7Z020 SoC芯⽚,具有双核ARM Cortex-A9处理器(PS)+基于Artix-7架构的FPGA(PL),其中处理器部分⽀持的最⾼主频为866MHz,FPGA部分则包含85k逻辑单元、4.9Mb Block RAM和220个DSP Slice,并提供对常⽤外部存储器如DDR2/DDR3的⽀持,⾮常契合数字⽰波器中对数据进⾏采集、存储和数字信号处理的需求。

同时,Zynq-7000的PS(处理器系统)和PL(可编程逻辑)部分之间通过AXI⾼速总线互连,可以有效解决传统数字存储⽰波器中CPU与FPGA间数据传输的带宽瓶颈问题,有利于降低数字⽰波器的死区时间,提⾼波形捕获率。

⽤单⽚SoC芯⽚替代传统的CPU+FPGA的分⽴⽅案,也可以减少硬件布板⾯积,有利于将⾼性能处理系统向紧凑型的⼊门级⽰波器中集成。

数据采集与存储图2 ⽤Zynq-7000构架的SPO引擎SDS1000X-E(X-C)中采⽤的⾼速模-数转换(ADC)芯⽚,其数据接⼝为LVDS差分对形式,每对LVDS的速率为1Gbps。

我与赛灵思FPGA的故事” ZYNQ-7000使用总结(1)——概述

我与赛灵思FPGA的故事” ZYNQ-7000使用总结(1)——概述

"30年---我与赛灵思FPGA的故事”: ZYNQ-7000使用总结(1)——概述2015-01-21 15:07 3496人阅读评论(0) 举报分类:FPGA(15)由allan于星期四, 06/19/2014 - 17:03 发表因为马上要离职的原因,需要将一些东西整理一下做交接。

就将Xilinx ZYNQ-7000的使用经验做一下总结,希望对刚接触的人有一点帮助。

需要说明的是,在接触到ZYNQ-7000之前,我并没有做过FPGA的设计,这一部分的基础可以说是零。

而这一年的工作重心也并不是FPGA设计,所以这一系列文章的重点是工具的使用,以及ZYNQ-7000的设计流程,而不是具体如何设计。

该系列文章的硬件平台是:ZC702(XC7Z020-1CLG484CES )。

所用软件包括:PlanAhead、Xilinx Platform Studio、Xilinx Software Development Kit,版本均为14.4。

串口工具为Tera Term。

ZYNQ-7000是Xilinx推出的一款全可编程片上系统(All Programmable SoC),该芯片集成了ARM Cortex A9双核与FPGA,所以ZYNQ是一款SoPC芯片。

其架构如下图:图中的Processing System(一般简称为PS)即为处理器(ARM Cortex A9 MPCore)部分,里面资源非常的丰富,具体可参看Xilinx官方文档。

Programmable Logic(一般简称为PL)即可编程部分(FPGA),该部分的资源随SoC芯片级别高低不同而不同,最低的是Artix-7(Zynq-7010和Zynq-7020),最高的是Kintex-7(Zynq-7030和Zynq-7045)。

当然,后续可能SoC中的FPGA会使用更高的Virtex系列,这个就不得而知了。

PS和PL的关系:PS的实质就是一个ARM Cortex A9 MPcore,所以如果我们不使用可编程部分,我们完全可以只使用PS部分。

基于ZYNQ-7000开发板的摄像头采集与处理系统实验设计与实现

基于ZYNQ-7000开发板的摄像头采集与处理系统实验设计与实现
图 3 中描述了 4 个 VDMA 在 HDMI 显示器 上的分布,在 ARM 中,将写 VDMA1 写入的数
据 通 过 读 VDMA1 显 示, 将 写 VDMA2 写 入 的 数 据 通 过 读 VDMA2 显 示, 读 VDMA3 显 示 的 是写 VDMA1 写入内存中的数据在 ARM 中实现 边缘检测之后的输出,读 VDMA4 显示的是写 VDMA2 写入内存的数据在 FPGA 中实现边缘检 测之后的输出。虽然读 VDMA3 与读 VDMA4 显 示的均为边缘检测之后的结果,但是两者实现边 缘检测的硬件平台不同,分别为基于 ARM 的软 件算法以及基于 FPGA 的硬件算法。
摘 要:为了充分发挥 ZYNQ-7000 系列嵌入式处理器 FPGA+ARM 异构架构的优势,提出双路 OV5640 驱动实验的设计方案,具体说明如何完成图像处理算法的基于软硬件两种方法的实验设计与 实现,最后通过图像处理运行结果说明该系统为嵌入式教学提供有力支撑。 关键词:ZYNQ-7000 ;协同设计;OV5640 ;双目摄像头
Ⴟପത ས๰
协议,在相应的时序控制下,依次转换
为 DVI 数据输出到 HDMI 显示器中。
2.2 摄像头驱动 在图 1 中,硬件直接接收来自 OV5640 的视
频流数据输入,需要对摄像头完成相应的时序操 作。由于 Xilinx 公司提供的软核 IP 并没有驱动 OV5640 芯片,因此需要单独编写驱动程序,形 成相应的硬件电路,满足摄像头工作的时序要 求。OV5640 芯片硬件系统如图 2 所示。
:VILS तࠚႁሸແĻ





.x
.y
图 4 Sobel 边缘检测算子
4 图像处理系统运行结果
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Zynq-7000 All Programmable SoC Software Developers GuideUG821 (v10.0) March 10, 2015Revision HistoryThe following table shows the revision history for this document.Date Version Revision04/01/201510.0Added miscellaneous references throughout the document.Updated BIF File Attributes, page 59Added Bootgen Command Options, page 63.Updated Partition Attribute Bits, page 66.06/04/20149.0Updated Bootgen to remove the -i option in Bootgen Command Options, page 63.Throughout document, added cross-references and updated links in Appendix D,Additional Resources and Legal Notices.Added definitions for RSA and SHA-2.Removed reference to UG652.Changed AP to PS on page 23.04/02/20148.0Initial release for 2014.1.Table of ContentsChapter 1: Introduction to Programming with Zynq-7000 AP SoC Devices Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Architectural Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Operating System (OS) Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Chapter 2: Software Application Development FlowsIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Software Tools Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Bare-Metal Device Driver Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Bare-Metal Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Linux Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Additional Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Chapter 3: Boot and ConfigurationOverview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Boot Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Boot Stages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Boot Image Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 BootROM Header Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Chapter 4: LinuxIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Git Server and Gitk Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Linux BSP Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 U-Boot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Appendix A: Using BootgenIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 BIF File Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Initialization Pairs and the INT File Attribute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Encryption Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Authentication Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Bootgen Command Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Image Header Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Image Header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Appendix B: LibXil SKey for Zynq-7000 AP SoC Devices (v2.0)Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 SDK Project File and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 User-Configurable PS eFUSE Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 User-Configurable PL eFUSE Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 AES and User Key Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 User- Configurable BBRAM Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 MIO Pins Used for PL JTAG Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 MUX Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 AES Key and Related Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Error Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Status Code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Creating an SVF File using XMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 eFUSE Writing Procedure Running from DDR as an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 eFUSE Driver Compilation Procedure for OCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 LibXil SKey Library APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 BBRAM API Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Appendix C: LibXil RSA for Zynq-7000 AP SoC Devices (v1.1)LibXil RSA Library Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 SDK Project Files and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 LibXil RSA APIs and Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Appendix D: Additional Resources and Legal NoticesSolution Centers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Xilinx Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Please Read: Important Legal Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Chapter 1 Introduction to Programming withZynq-7000 AP SoC DevicesOverviewThis document summarizes the software-centric information required for designing with Xilinx® Zynq®-7000 All Programmable SoC devices. It assumes that you are:•Experienced with embedded software design•Familiar with ARM® development tools•Familiar with Xilinx FPGA devices, intellectual property (IP cores), development tools, and tool environments.IntroductionThe addition of extensibility of the SoC for both hardware and software programmability imposes new requirements on design flows for both hardware and software.Certain hardware features are unique to Xilinx, such as hardware co-simulation andco-debug functionality that make it possible to verify custom logic implemented onZynq-7000 AP SoC devices or in a logic simulation environment while applications execute on a Zynq-7000 AP SoC processor on a physical board or an emulator.For a step-by-step explanation on designing a Zynq-based embedded system, see thefollowing documents:•Vivado Design Suite Tutorial: Embedded Processor Hardware Design (UG940)[Ref 6].•Vivado Design Suite User Guide: Embedded Processor Hardware Design (UG898) [Ref 11] describes the process of embedded hardware design.•Vivado Design Suite Tutorial: Zynq-7000 All Programmable SoC Embedded Design (UG1165) [Ref 16].VIDEO: See Enabling Smarter Systems for quick-take videos on the Zynq-7000 AP SoC devices.Architectural DecisionsYou must make several architectural decisions before beginning embedded development on applications to run on the Zynq-7000 AP SoC.Because the Zynq-7000 AP SoC devices have dual-core ARM Cortex™-A9 processors, you must determine whether to use Asymmetric Multiprocessing (AMP) or Symmetric Multiprocessing (SMP).The same decision must be made for all embedded software projects: which operating system(s) to use (if any). This introduction defines both AMP and SMP, and provides an assessment of the trade-offs and concerns with each method. Multiprocessing ConsiderationsThe following subsections describe the two multiprocessing considerations. Asymmetric MultiprocessingAsymmetric multiprocessing (AMP) is a processing model in which each processor in a multiple-processor system executes a different operating system image while sharing the same physical memory. Each image can be of the same operating system, but more typically, each image is a different operating system, complementing the other OS with different characteristics:• A full-featured operating system, such as Linux, lets you connect to the outside world through networking and user interfaces.• A smaller, light-weight operating system can be more efficient with respect to memory and real-time operations.A typical example is running Linux as the primary operating system along with a smaller, light-weight operating system, such as FreeRTOS or a bare-metal system, which is described in Chapter 4, Linux, as the secondary operating system.The division of system devices (such as the UART, timer-counter, and Ethernet) between the processors is a critical element in system design. In general:•Most devices must be dedicated to their assigned processor.•The interrupt controller is designed to be shared with multiple processors.•One processor is designated as the interrupt controller master because it initializes the interrupt controller.Communication between processors is a key element that allows both operating systems to be effective. It can be achieved in many different ways, including inter-processor interrupts, shared memory, and message passing.Symmetric MultiprocessingSymmetric multiprocessing (SMP) is a processing model in which each processor in a multiple-processor system executes a single operating system image. The scheduler of the operating system is responsible for scheduling processes on each processor.This is an efficient processing model when the selected single operating system meets the system requirements. The operating system uses the processing power of multiple processors automatically and is consequently transparent to the end user. Programmers can:•Specify a specific processor to execute a process•Handle interrupts with any available processor•Designate one processor as the master for system initialization and booting other processorsOperating System (OS) ConsiderationsBare-Metal SystemBare-metal refers to a software system without an operating system. This software system typically does not need many features (such as networking) that are provided by an operating system. An operating system consumes some small amount of processor throughput and tends to be less deterministic than simple software systems. Some system designs might not allow the overhead and lack of determinism of an operating system. As processing speed has continued to increase for embedded processing, the overhead of an operating system has become mostly negligible in many system designs. Some designers choose not to use an operating system due to system complexity.Operating System: LinuxLinux is an open-source operating system used in many embedded designs. It is available from many vendors as a distribution, or it can be built from the open-source repositories. Linux is not inherently a real-time operating system, but it has taken on more real-time characteristics.It is a full-featured operating system that takes advantage of the Memory Management Unit (MMU) in the processor, and is consequently regarded as a protected operating system. Linux also provides SMP capabilities to take advantage of multiple processors.Real-Time Operating SystemSome system designers use a Real-Time Operating System (RTOS) from Xilinx third-party partners.An RTOS offers the deterministic and predictable responsiveness required by timing sensitive applications and systems. For information on the latest third party tools, contact your nearest Xilinx office.Zynq-7000 Operating Systems From PartnersYou can choose you own favorite embedded solutions based on past experience, new standards, unique requirements, and legacy designs, as well as corporate agreements. For a detailed list of operating systems supported on Zynq-7000 devices from Xilinx partners, see the Zynq-7000 Ecosystem page.Chapter 2 Software Application Development FlowsIntroductionThe Zynq®-7000 All Programmable (AP) SoC software application development flows let you create software applications using a unified set of Xilinx® tools, and leverage a broad range of tools offered by third-party vendors for the ARM® Cortex™-A9 processors.This chapter focuses on Xilinx tools and flows; however, the concepts are generallyapplicable to third party tools, and the Zynq-7000 AP SoC device solutions incorporatefamiliar components such as an Eclipse-based integrated development environment (IDE) and the GNU compiler toolchain.This chapter also provides an overview of bare-metal and Linux software applicationdevelopment flows using Xilinx tools, which mirror support available for other Xilinxembedded processors, with differences as noted. This chapter also references boot, device configuration, and OS usage within the context of application development flows. Those topics are covered in-depth in other chapters and references to other material.Chapter 2: Software Application Development FlowsFigure 2-1 shows a block diagram of the Zynq-7000 AP SoC processor.Software Tools OverviewThe coupling of ARM-based Processing System (PS) and Programmable Logic (PL) createsunique opportunities to add custom peripherals and co-processors. Custom logicimplemented in the PL can be used to accelerate time-critical software functions, reduce application latency, reduce system power, or provide solution-specific hardware features.The addition of hardware programmability to the hardware and software interface imposes new requirements on design flows. Certain hardware features are unique to Xilinx, such as hardware co-simulation and co-debug functionality that make it possible to verify custom logic implemented on Zynq-7000 AP SoC devices or in a logic simulation environment while applications execute on a Zynq-7000 AP SoC processor on a physical board or an emulator.Figure 2-1: Zynq-7000 AP SoC Processing System High-Level DiagramXilinx provides design tools for developing and debugging software applications for Zynq-7000 AP SoC devices, that include:•Software IDE•GNU-based compiler toolchain•JTAG debugger•Associated utilitiesThese tools let you develop both:•Bare-metal applications that do not require an OS•Applications for the open source Linux OSCustom logic and user software can run various combinations of physical hardware or simulation, with the ability to monitor hardware events. For example:•Custom logic running in hardware or in a simulation tool•User software running on the target or in a software emulator•PL and processor cross-triggering on eventsSoftware solutions are also available from third-party sources that support Cortex-A9 processors, including, but not limited, to:•Software IDEs•Compiler toolchains•Debug and trace tools•Embedded OS and software libraries•Simulators•Models and virtual prototyping toolsThird party tool solutions vary in the level of integration and direct support for Zynq-7000 AP SoC devices. Xilinx does not provide tools that target Kernel development and debug, but those tools can be obtained from third party vendors.The following subsections provide a summary of the available Xilinx development tools. Tools are available on 32- and 64-bit Windows and x86 Linux host computing platforms.Hardware Configuration ToolXilinx provides the Vivado IP integrator which lets you use a block diagram to configure IP that is related to the PL and the Zynq-7000 processor.The Vivado Design Suite IP integrator provides a block diagram for the Zynq-7000 AP SoC wherein you can set Programmable Logic (PL) information in an XML file, INIT files(.h,.c, and .tcl), which are then used by software design tools to create and configure Board Support Package (BSP) libraries, infer compiler options, define JTAG settings, and automate other operations that require information about the hardware.For more information, see the following documents:•Vivado Design User Guide: Embedded Processor Hardware Design (UG898)[Ref 5]•Vivado Design Suite Tutorial: Embedded Processor Hardware Design (UG940) [Ref 6]•Vivado Design Suite User Guide: Using the Vivado IDE (UG893) [Ref 7]•Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994) [Ref 8]Software Development KitThe Xilinx Software Development Kit (SDK) provides a complete environment for creating software applications targeted for Xilinx embedded processors. It includes a GNU-based compiler toolchain (GCC compiler, GDB debugger, utilities, and libraries), JTAG debugger, flash programmer, drivers for Xilinx IPs and bare-metal board support packages, middleware libraries for application-specific functions, and an IDE for C/C++ bare-metal and Linux application development and debugging. Based upon the open source Eclipse platform, SDK incorporates the C/C++ Development Toolkit (CDT). Features include:•C/C++ code editor and compilation environment•Project management•Application build configuration and automatic makefile generation•Error navigation•Integrated environment for debugging and profiling embedded targets •Additional functionality available using third-party plug-ins, including source code version controlSDK AvailabilitySDK is available as a download with the Vivado Design Suite, and as a standalone application. SDK also includes an application template for creating a First Stage Bootloader (FSBL), as well as a graphical interface for building a boot image.SDK contains a complete help system that describes concepts, tasks, and reference information. See the Xilinx Software Development Kit Help (UG782) [Ref 14], for more information.You can launch SDK from Vivado when you export a hardware definition, as shown in Figure 2-2.System Performance AnalysisThe Xilinx Software Debugger (XSDB) uses a System Performance Monitor (SPM) for debugging.See the following links for more information regarding SPM [Ref 15]: •“Chapter 3” in the Xilinx Software Development Kit (SDK): System Performance (UG1145)•“Chapter 5” in the Xilinx Software Development Kit (SDK): System Performance (UG1145)Also, see System Performance Analysis of an All Programmable SoC (XAPP1219) [Ref 17].Sourcery CodeBench Lite Edition for Xilinx Cortex-A9 Compiler ToolchainSDK includes the Sourcery CodeBench Lite Edition for Xilinx Cortex-A9 compiler toolchain for bare-metal Embedded Application Binary Interface (EABI) and Linux application development.Figure 2-2: Export Hardware for SDK Dialog BoxThe Xilinx Sourcery CodeBench Lite toolchain in SDK contains the same GNU tools, libraries and documentation as the standard Sourcery CodeBench Lite Edition EABI and Linux compiler toolchains, but adds the following enhancements:•Default toolchain settings for the Xilinx Cortex-A9 processors•Bare-metal (EABI) start up support and default linker scripts for the Xilinx Cortex-A9 processors•Vector Floating Point (VFP) and NEON™ optimized librariesAnalysis ToolsVivado Lab ToolThe Vivado IDE has integrated debugging capability. See Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 11] for more information.System Generator for DSPThe System Generator™ for DSP tool can be used to develop DSP and data flow-centric, hardware-based coprocessors, working within the MATLAB®/Simulink® environment. System Generator supports rapid simulation of the DSP hardware, reducing overall development time, and automates the generation of co-processors that can be connected to the PS. The SDK co-debug feature lets you run and debug programs running on the processor in SDK, while retaining visibility and control over the hardware under development in System Generator.Bare-Metal Device Driver ArchitectureThe bare-metal device drivers are designed with a layered architecture as shown in Figure 2-3, page 15. The layered architecture accommodates the many use cases of device drivers while at the same time providing portability across operating systems, toolsets, and processors.The layered architecture provides seamless integration with:• A Layer 2 (RTOS Adapter) an abstract device driver interface that is full-featured and portable across operating systems•Processors Layer 1 (Device Driver)• A direct hardware interface for simple use cases or those wishing to develop a custom device driverThe following subsections describe the layers.Figure 2-3: Bare-Metal Drivers ArchitectureLayer 2 (RTOS Adapter)Layer 2 is an adapter between an RTOS and a device driver. It converts a Layer 1 device driver to an interface that matches the requirements of the driver model for an RTOS. Unique adapters might be necessary for each RTOS.Adapters typically:•Communicate directly to the RTOS as well as the Layer 1 interface of the device driver •Reference functions and identifiers specific to the RTOS. This layer is therefore not portable across operating systems•Can use memory management•Can use RTOS services such as threading and inter-task communication•Can be simple or complex depending upon the RTOS interface and requirements for the device driverLayer 1 (Device Driver)Layer 1 is an abstract device driver interface that shields you from potential changes to the underlying hardware. It is implemented with macros and functions and designed to allow you to use all features of a device. The device driver is independent of operating systems and processors, making it highly portable.This interface typically has:•Consistent API that gives you an “out-of-the-box” solution. The abstract API helps isolate the your project from hardware changes.•Lack of RTOS or processor dependencies makes the device driver highly portable •Run-time error checking such as assertion of input arguments that provides the ability to compile away asserts•Device feature support•Support for device configuration parameters to handle FPGA-based parameterization of hardware devices•Support for multiple instances of a device while managing unique characteristics on a per instance basis•Polled and interrupt-driven I/O•Non-blocking function calls to aid complex applications• A potentially large memory footprint•Buffer interfaces for data transfers as opposed to byte interfaces. This makes the API easier to use for complex applications.•No direct communication to Layer 2 adapters or application software, by using asynchronous callbacks for upward communicationDirect Hardware InterfaceThe interface that is contained within the Layer 1 device driver is a direct hardware interface. It is typically implemented as macros and manifest constants, and is designed so you can create a small applications or create a custom device driver. This interface typically has:•Constants that define the device register offsets and bit fields•Simple macros that provide access to the hardware registers• A small memory footprint•Little to no error checking•Minimal abstraction so the API typically matches the device registers. The API is therefore less isolated from hardware device changes.•No support of device configuration parameters•Support of multiple instances of a device with base address input to the API•No, or minimal state•Polled I/O only•Blocking functions for simple use cases•Byte interfaces typically providedBare-Metal Application DevelopmentXilinx software design tools facilitate the development of embedded software applications for many runtime environments.Xilinx embedded design tools create a set of hardware platform data files that include:•An XML-based hardware description file describing processors, peripherals, memory maps, and additional system data• A bitstream file containing optional Programmable Logic (PL) programming data• A block RAM Memory Map (BMM) file•PS configuration data used by the Zynq-7000 AP SoC First Stage Bootloader (FSBL). The bare-metal Board Support Package (BSP) is a collection of libraries and drivers that form the lowest layer of your application.The runtime environment is a simple, semi-hosted and single-threaded environment that provides basic features, including boot code, cache functions, exception handling, basic file I/O, C library support for memory allocation and other calls, processor hardware access macros, timer functions, and other functions required to support bare-metal applications.Using the hardware platform data and bare-metal BSP , you can develop, debug, and deploy bare-metal applications using SDK.Figure 2-4 is an overview flowchart for bare-metal application development.To develop bare-metal applications using SDK, typical steps include:1.Importing Hardware Platform Information 2.Creating Bare-Metal BSP 3.Creating Bare-Metal Application 4.Building the Application Project5.Programming the Device and Running the Application6.Debugging the Application7.Adding Custom IP Driver Support8.Deploying the ApplicationThe following subsections summarize these SDK development flow steps. See the SDK online help, for more details and examples of SDK tool usage.Figure 2-4: Bare-Metal Application Development Overview。

相关文档
最新文档