第一章:赛灵思(Xilinx)的Zynq的多处理器片上系统(MPSoC)入门综述

  • 引言
  • Zynq的多处理器片上系统(MPSoC)简介
  • Xilinx 片上系统(SoCs)发展简介
  • 设计方法

引言

本专栏对赛灵思(Xilinx)的Zynq的多处理器片上系统(MPSoC,Multi-Processor System on Chip)器件进行介绍。它是一个集成片上系统器件,其前身正是Zynq-7000。
Zynq多处理器片上系统MPSoC由多个不同的处理器元件组成,每个处理器原件针对特定的目的进行了优化。比如,MPSoC通常包含一组应用处理器、实时处理器、图形处理器以及现场可编程门阵列(Field Programmable Gate Array, FPGA)的可编程逻辑。
除了Zynq MPSoC架构之外,设计方法和软件工具也非常重要。适当的设计方法使得我们能够利用Zynq MPSoC设备来解决实际设计问题。与以前的设备相比,通过一系列扩展的处理单元,设计人员可充分利用Zynq MPSoC的功能,以达到在系统性能、可靠性、成本、功耗、安全性、上市时间等方面上的预期结果。出于这个原因,本专栏也重点概述了系统开发设置,包括可以部署在处理核心上的设计工具和操作系统。在Xilinx SDx工具中包含了一个特定功能,它允许用户完全使用软件代码来描述系统,然后在各种可用的处理单元之间进行分区。SDx中的SD表示软件定义(Software Defined, SD
Zynq MPSoC器件的应用多种多样,在Zynq-7000研发经验和MPSoC扩展设备的基础上,我们可以开展一些前沿领域研究。比如,先进自动驾驶系统(ADAS,Advanced Driver Assistance Systems)、计算机视觉(CV,Computer Vision)、软件无线电(SDR,Software Defined Radio)、工业物联网(IIoT,Industrial Internet of Things)。

Zynq的多处理器片上系统(MPSoC)简介

近年来,系统集成已成为一个热门领域。对于像Zynq和Zynq MPSoC这样的片上系统(SoC,System-on-Chip),它们包括可编程逻辑,微处理器和存储器——一个嵌入式系统通常需要的主要部件。实际上,这些设备还包括一些模拟电路,以及支持数字信号处理(DSP,Digital Signal Processing)应用的算术引擎,类似于DSP处理器器提供的功能。如图1所示,Zynq MPSoC器件的基本构成包括处理系统(PS,Processing System)与FPGA可编程逻辑(FPGA Programmable Logic)。这两个部分通过许多高级可扩展接口(AXI,Advanced eXtensible Interface)连接。这种高级结构与Zynq-7000芯片非常相似。

图1 Zynq MPSoC架构的简化图 与Zynq相比,Zynq MPSoC的主要区别在于更进一步的集成化,后者通过扩展处理系统中处理器的选择和数量,并扩展了FPGA的可编程逻辑部分的大小,以及增加了PS和PL之间AXI连接的数量和带宽。另外,后续还会进一步介绍更过的增强项。 在快速发展的应用领域,为了实现快速上市的目的驱使了对片上系统(SoC)的需求;另外,为了减少系统中集成组件开发所需要的工程量、最小化物理尺寸以及降低功耗,也驱使了对SoC的需求。由于软件设计工具和方法的发展,这些相对复杂的SoC器件必须易于进行系统设计,并且易于不断地升级。Xilinx和合作伙伴支持多种设计输入方法和语言,并继续引入新功能以实现快速开发,包括快速评估不同实现选项地功能。

Xilinx 片上系统(SoCs)发展简介

Xilinx传统上是一家可编程逻辑公司,专注于FPGA技术和复杂编程逻辑器件(CPLDs,Complex Programmable Logic Devices)。自2011年推出Zynq-7000以来,随着它向SoC地转变,其他构建模块也开始集成进来,因此Xilinx现在生产的设备不仅由可编程逻辑组成,而且还包括与处理器、内存、接口等相结合的可编程逻辑。
自从三十多年前Xilinx发明了FPGA以来,尤其是最近,人们对基于FPGA的灵活嵌入式系统产生了兴趣。这是因为“软”处理器的可用性,它可以借由FPGA的通用可编程逻辑进行搭建(而不是使用专用处理芯片)。以上述方式实现嵌入式系统仍然有效,并且具有相当大的灵活性,相反的,基于处理器的嵌入式开发则受到一定的局限性。
在某些应用场景,应用程序需要将单独的处理器芯片整合到系统中,并于FPGA建立适当的接口。这促使了Zynq-7000芯片在2010年初的出现,该芯片将FPGA的可编程逻辑于内置芯片中的专用“硬”处理器相结合,并在两个部件之间提供快速互联。Zynq-7000系列芯片的结构示意图如图2所示。本例中的处理器是双核Arm Cortex-A(“A” 表示应用处理器),与只能收集中的处理器类型相同。与之前采用的“软”处理器方法相比,该设备具有增强处理器能力的优势,这意味着一个完整的系统可以在单个芯片上实现。

图2 Zynq-7000芯片结构示意图 现在,Zynq MPSoC通过扩展处理系统中的处理器类型与功能,进一步拓展了SoC的概念。这里以Zynq Ultrascale + MPSoC处理系统为例(如图3所示),其与双核应用处理器(Zynq-7000系列)不同,现在可以选择32位或64位的双核或四核(而A9则是32位的双核处理器)。Zynq Ultrascale + MPSoC处理系统还包括基于两个Arm Cortex-R5内核的实时处理系统、一个图形处理单元(Graphics Processing Unit,GPU)等单元。添加这些额外类型处理单元的理由是,通过使用针对特定任务进行优化的处理器,可以获得更高的性能。

图3 Zynq Ultrascale + MPSoC处理系统示意图

设计方法

下面我们简介一个非常重要的问题!当我们具有了这些复杂的片上系统芯片后,我们如何利用它开发想要的智能系统?也就是我们的设计方法是什么?
简单来说,赛灵思(Xilinx)的Zynq的多处理器片上系统(MPSoC)的设计方法包括:(1)硬件设计、(2)软件设计。硬件设计主要负责SoC设备上可用物理资源的映射,而软件则运行在一个或者多个部署在芯片上的处理器。因此如图4所示,考虑到硬件设计与软件设计的根本性不同,在设计中分别使用不同的专用工具设计硬件和软件系统。

图4 基于Zynq MPSoC的简化设计流程(左:传统的“硬件/软件”设计流程; 右:“软件定义”设计工具,使用SDx)

在这个设计流程中,硬件和软件开发基本上可以独立进行,然后是集成阶段,而不是一个依赖于另一个的完成。设计人员使用他们选择的工具生成硬件系统的单元,使用Xilinx Vivado开发环境进行系统集成,并在目标设备上实现。软件开发人员可以使用Xilinx软件开发工具包(SDK,Software Development Kit)。最近,出现了向面向软件、硬件/软件协同设计的重大转变。简单地说,这些工具允许使用软件代码或基于块的设计方法,以高抽象级别描述整个系统的功能。然后在设计人员的指导下,考虑可用资源的能力,在SoC的硬件和软件组件之间划分功能。

第一章:赛灵思(Xilinx)的Zynq的多处理器片上系统(MPSoC)入门综述相关推荐

  1. 前端H5怎么切换语言_第一章 产品经理必懂的前端技术- 上

    产品经理为什么要懂一些前端技术? 当前端H5工程师说CSS时,你是否知道他在表达什么? 当andriod工程师说这个文本要用TextView时,你是否明白TextView是什么? 当ios工程师说这个 ...

  2. Nacos源码系列——第一章(Nacos核心源码主线剖析上)

    在讲具体的源码之前,我有几点想说明下,很多开发可能觉得源码不重要,甚至觉得互联网 的知识,目前够用就可以,也不需要多么精通.的确,在大多数的公司中,你能用你的知识 解决问题就可以,不一定非要涉及到源码 ...

  3. 第一章:前端视角——js运行环境之node.js基础入门

    1.为什么使用node.js 大部分情况下,我们写的js代码都是直接运行在浏览器中,由浏览器进行执行与渲染.但是随着前端工程化的发展,我们写的js代码越来越复杂,所以对我们的代码进行预处理已成为了必要 ...

  4. 趣学算法【第一章:算法之美】感悟(上)

    14天阅读挑战赛 前言 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! 1.什么是算法,为什么要学习? 其实算法是一个比较模糊的概念,简单来说,算法就是将解决一件事的 ...

  5. c语言编程指法输入,C语言 课件 第一章引论.pdf

    C语言 课件 第一章引论 我很高兴为同学们上C语言课 我希望同学们有 良好的课堂纪律,给老师一个好心情: 让我先谢谢同学们的良好合作: 师生共努力,教好学好C语言; 学会编程更有利于数学的应用; 学习 ...

  6. 清华大学数据挖掘课程幕课习题(第一章)

    第一章第二节 1."教育不是灌输,而是点燃火焰" 这一思想出自于:苏格拉底. 2.如何学好数据挖掘技术?认真学习幕课视频:充分利用课后阅读材料:勤于动手,实践出真知:主动思考,知其 ...

  7. 软件工程技术--第一章 概述

    第一章 软件 操作系统本身就是一个软件,一个系统可以理解为系统软件. 什么是软件? 软件是计算机系统的"思维中枢",它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能. 软 ...

  8. 不完全性定理 元数学和自然数_开读哥德尔原著第一章——哥德尔读后之十

    不完全性定理 元数学和自然数_开读哥德尔原著第一章--哥德尔读后之十 把R.B.B的导论弄完,终于轮到读哥德尔原著的英译文本了,今天开读原著的第一章.R.B.B的导言给了人很多哥德尔定理的背景知识,但 ...

  9. 【正点原子MP157连载】第一章 Ubuntu系统安装-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

最新文章

  1. MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署
  2. input输入系统中是如何实现按键重复
  3. ElementUI中对el-table的某一列的时间进行格式化
  4. 乐视手机android流量,乐视手机流量不能用怎么办
  5. GALV_maptravel研究分析(1)
  6. 解决Django静态文件配置pycharm高光问题
  7. linux mailbox模型
  8. android照片添加gps,如何利用Exif为图片文件添加GPS坐标信息
  9. project不显示里程碑标志_在Project中设置里程碑
  10. java actionsupport_struts2 中 action 跟 actionsupport 的区别
  11. 前端对接海康威视监控
  12. 普林斯顿微积分读本-[美]阿德里安·班纳著-修订版;杨爽, 赵晓婷, 高璞译
  13. 次世代3D游戏建模视频教程百度云分享
  14. matlab可达矩阵 结果,matlab可达矩阵
  15. 入门机器学习(西瓜书+南瓜书)神经网络总结(python代码实现)
  16. 基因表达谱热图的绘制
  17. C语言:输出大写的三角形字母表(进阶)
  18. 我决定开始一段非凡事业--IOS开发
  19. matlab中set position,Matlab中set函数
  20. TypeScript 泛型T使用整理

热门文章

  1. Flink 算子Operators总结
  2. AutoCAD新建图层时卡了,怎么重启图层
  3. Copytranslator 设置默认字体大小
  4. 个人目标日历定制制作小工具微信小程序源码
  5. 零基础编程学习的6个常用网站,包含课程和项目
  6. 毕业设计 基于stm32的人体健康监护系统 - 单片机 嵌入式 物联网
  7. 高频电路中的电阻衰减网络
  8. 为什么GPS定位器需要搭配流量卡使用?
  9. 洛谷 P1803题解 java 贪心
  10. 制作linux启动镜像内核,Linux使用mkisofs制作启动镜像