前几日刚入手一款ZYNQ-7000系列的板卡,之前我也没用过FPGA,直接跨越到ZYNQ的原因主要是某宝上这款板卡相较于其他片上仅有一块FPGA的板卡性价比更高。作为入门,在学习过程中,笔者选择先单独学习ZYNQ上的FPGA部分,也就是PL(Programmable Logic)部分,暂且先不管ARM核的部分。

本节概要

目录

1.ZYNQ简介

2.背景:SoC与ASIC

3.ZYNQ-7000系列芯片架构


1.ZYNQ简介

Zynq 的本质特征,是它组合了一个双核 ARM Cortex-A9 处理器和一个传统的现场可编程门阵列 (Field Programmable Gate Array,FPGA)逻辑部件。尽管之前也有过捆绑了 FPGA 的专用处理器,但是还没有出现过完全相同的方案。在 Zynq 上,ARM Cortex-A9 是一个应用级的处理器,能运行完整的像Linux这样的操作系统,而可编程逻辑(PL)是基于Xilinx 7 系列的 FPGA 架构。这个架构实现了工业标准的 AXI 接口,在芯片的两个部分之间实现了高带宽、低延迟的连接。这意味着处理器和逻辑部分各自都可以发挥最佳的用途,而不会有在两个分立的芯片之间的那种接口开销。同时又能获得系统被简化为单一芯片所带来的好处,包括物理尺寸和整体成本的降低。(关于Xilinx 7 系列的 FPGA 架构,感兴趣的读者可以做进一步深入的了解。)

2.背景:SoC与ASIC

我们常把ZYNQ描述成一个片上系统SoC(System on Chip),所谓的Soc又是什么呢?简单来说,就是使用单个硅芯片代替几个不同的物理芯片,来实现整个系统的功能。

  过去,SoC通常指的是ASIC(Application Specific Integrated Circuit),即专用集成电路。它上面可以有数字的、模拟的和射频的元件,和混合信号模块组 合起来来实现模拟 - 数字转换和数字 - 模拟转换 (ADC 和 DAC)。单就数字部分而 言,一块 SoC 可以组合上数字系统所有的功能:处理、高速逻辑、接口、存储器等等。所有这些功能也可以用物理上分立的器件来实现,然后在印刷电路板 (PCB) 的层面上组合起来。SoC 的解决方案成本更低,能在不同的系统单元之间实现更快 更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更 好的可靠性。

目前,随着用户需求更加趋于灵活,可编程片上系统(System-on-Progammable-Chip)的出现,SoC的范围变得更加广。

基于ASIC的SoC(也就是过去人们常说的“SoC”)这种 SoC 类型只 适合于大批量而且将来不需要升级的市场领域。基于 ASIC 的 SoC 的代表性例子包括 在 PC、平板和智能手机上用的集成处理器。这些处理器典型地是由至少两个处理器 核、存储器、图形处理器、接口和其他功能模块组合起来的,而且大批量生产 出来用于寿命有限的产品中。相较于像FPGA、ZYNQ这一类可编程片上系统在灵活性、快速适应市场应用需求方面有着相当大的局限性。

因此,可编程片上系统这种更加灵活的SoC平台应运而生。笔者目前学习的ZYNQ就是一款Xilinx的全可编程 SoC (All-Programmable SoC,APSoC)。

3.ZYNQ-7000系列芯片架构

首先我们来了解一下芯片的高层模型。

从中可以注意到 Zynq 是由两个主要部分组成的:一个由双核 ARM Cortex-A9 构成的处理系统 (PS),和一个等价于一片 FPGA 的可编程逻辑 (PL)部分。它还具有集成的存储器、各种外设和高速通信接口。PL 部分用来实现高速逻辑、算术和数据流子系统是很理想的,而 PS 支持软件 程序和 / 或操作系统,这就意味着任何被设计的系统的整个功能可以恰当地在硬件和软件之间做出划分。PL 和 PS 之间的链接采用了工业标准的高级可扩展接口(Advanced eXtensible Interface,AXI)连接方式。

进一步细化模型如下图。

可以看到,蓝色PS部分(Processing System)具有固定的架构,承载了处理器和系统存储区, 而黄色PL 部分(Programmable Logic)完全是灵活的给了设计者巨大的自由空间来创建定制的外设,或重用标准外设。

这里的外设我们可以理解成知识产权(Intellectual Property,IP)功能模块,也就是我们常说的IP——这些IP可以从Xilinx的库获得(随着设计工具提供)来源,也可以从之前的项目中重用,或是从第三方或是从开源仓库获得,然后再集成起来形成系统的设计。

Zynq 是一块 SoC,具有大量的标准 IP,这表明这些部件就不再需要重新设计了。这也加快了设计者的开发速度。我们需要考虑 IP 的各种来源,包括 Xilinx 库、产生自己的 IP 的机制,和第三方 IP 来源。当然,仅仅只提及这些模块是不够的 —— 它们还得被集成进系统去,建立起恰当的连接和交互。

互联是通过连接了 PS 和 PL 的 AXI 接口总线来实现的。值得注意的是,这里处理器与外设链接的是单一总线,但其实一个处理器也可以连接多个外设总线。另外,可以看到软件是放在处理器那里的,也就是这里位 于 Zynq 的 PS 里的 ARM Cortex-A9。软件系统由一连串的软件单元组成的。

以上所述简单来说,就是我们可以在PL部分自己设计一个IP模块,再把它与PS部分进行连接交互,集成到整个嵌入式系统中去。而这个IP模块你可以引用一些已经设计好的IP进行重新的组合、拼装,也就是所谓的设计重用。(目前笔者的理解是这样的,欢迎大家指正讨论呀!)

ZYNQ学习笔记(一)---初识ZYNQ-7000系列相关推荐

  1. ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED

    ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED 总体思路 Block Design界面配置IP核并导出硬件配置 在SDK中编写C代码 下载PS和PL的联合工程到开发板 总体思路 首先需 ...

  2. ZYNQ学习笔记_GPIO之输入输出

    ZYNQ学习笔记_GPIO之输入输出 GPIO介绍 MIO介绍 EMIO介绍 控制GPIO接口的寄存器原理_输入输出部分 GPIO介绍 GPIO的英文全称为General-purpose input/ ...

  3. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...

  4. ASM学习笔记1 - 初识ClassVistor ——以ClassReader的应用为例

    ASM学习笔记1 - 初识ClassVistor --以ClassReader的应用为例 1 ASM简介 什么是ASM? Java操纵类字节码的工具.是一个jar包. 如何使用? ASM提供两类API ...

  5. C语言学习笔记-P1 初识C语言(2)

    C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...

  6. C语言学习笔记-P1 初识C语言(1)

    C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...

  7. xilinx srio ip学习笔记之初识srio

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 xilinx srio ip学习笔记之初识srio 前言 IP 设置 总结 前言 因为工作原因,需要对rapidio 的协议进行了解, ...

  8. ZYNQ学习笔记PS部分【基本介绍】

    基于Zynq的嵌入式开发流程 Xilinx Zynq SoC 是集成了FPGA和硬核处理器的特殊SoC,它与一般FPGA的最大不同就是自带了一个ARM Cortex-A系列硬核,根据型号不同从A9到A ...

  9. ZYNQ学习笔记------day1

    ZYNQ第一天学习笔记 1.Zynq-7000 All Programmable SoC ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统,它将处理器的软件可编程性与FPGA的硬件可编 ...

  10. Python3 爬虫学习笔记 C16【数据储存系列 — Redis】

    Python3 爬虫学习笔记第十六章 -- [数据储存系列 - Redis] 文章目录 [16.1]关于 Redis [16.2]使用 Redis [16.3]Key(键)操作 [16.4]Strin ...

最新文章

  1. DbHelperSQL.cs
  2. 2017杭州·云栖大会全纪实
  3. pytorch教程龙曲良26-30
  4. 背包例题【dp练习】
  5. oracle中日期处理方法 汇总
  6. phpstudy下载、安装、配置、网站部署、卸载(windows下php、apache、nginx环境测试)
  7. 设计一算法查找链表的中间结点。要求该算法的时间复杂度为O(n),空间复杂度为O(1)
  8. 巨详细 - Win8 + Hyper-V 虚拟机性能简测与虚拟化技术科普(一)
  9. 双击图片不放大手机php,Android_Android App中实现可以双击放大和缩小图片功能的实例,先来看一个很简单的核心图片 - phpStudy...
  10. 加拿大大学计算机世界排名,加拿大计算机专业大学排名
  11. .netnbsp;C#实现nbsp;中文转Unic…
  12. conda添加清华镜像源
  13. Android Behavior
  14. VC6.0特殊功能-根据汉字转成拼音字符
  15. 逻辑函数表达式的形式与变换
  16. 安装Metasploitable2过程的总结整理Metasploitable2百度云盘链接
  17. 魔法城堡计算机弹奏,魔法城堡钢琴块
  18. 掌握论文中英文断字处理及段落行号设置
  19. android分屏助手,分屏大师助手app_分屏大师app使用教程-多特软件站安卓网
  20. STL(模板库)(string)(vector向量)(2019.3.19晚课习题)

热门文章

  1. cmake中链接系统标准库
  2. c++代码实现我的世界(3)续(2)
  3. Windows之——SECOH-QAD.exe占用CPU太高解决方法
  4. MarkDown如何输入数学公式
  5. 高德离线地图WMS/WMTS服务
  6. 北京、上海、深圳、广州城市手册
  7. 空气动力学笔记——基本概念
  8. 斗破苍穹TXT全集下载暗藏杀机,在线阅读小心中招
  9. DameWare无法远程连接解决办法
  10. 离线包打包工具使用说明