ZYNQ-7000概述

article/2025/11/8 10:02:39

摘要

Xilinx推出的ZYNQ-7000被称为全可编程片上系统(SOC),它由FPGA与ARM组合构成,硬件可编程,软件也可编程,在众多应用场合有一定优势。本文根据Xilinx官网的介绍并结合ZYNQ-7000的多份数据手册总结了此产品的一些基本信息,包括产品简介、资源概览、速度等级、温度等级、命名规则、架构概览等,为大家入门ZYNQ提供帮助。

关键词:ZYNQSOCPLPS片上系统

一. SOC简介

参考:Xilinx自适应SOC简介

SOC:System On Chip,也称为All Programmable SOC,称为全可编程片上系统.。.

Xilinx的SOC有4个系列:

  • ZYNQ-7000,此系列是Xilinx于2015年发布的第一代SOC架构的芯片,也是世界上首个SOC芯片系列
  • ZYNQ UltraScale+ MPSoC,性能强劲
  • ZYNQ UltraScale+ RDSoC,性能强劲
  • Versal ACAP,Xilinx最新发布的芯片,性能也最强

SOC内部集成了单/多个ARM处理器核心与1个FPGA,将软件可编程的硬核处理器与硬件可编程的FPGA集成在一个芯片中。软硬件均可编程也是SOC被称为全可编程片上系统的原因。

SOC中的ARM处理器被称为PS(Processing System,处理系统),而FPGA被称为PL(Progarmmable Logic,可编程逻辑)。SOC = PS + PL,其中,PS为主,与单独的ARM芯片(如ST公司的STM32系列)一样,PS配备了多个外设,如串口,CAN口,GPIO等,PL部分可以看做是PS的一个"可编程外设"。

有人也许有疑问,既然SOC = PS + PL,那么用一个ARM芯片和一个FPGA组合的方式,不考虑面积成本等问题,在性能方面是不是就和SOC一样了呢?答案是不行,因为在同一芯片中,ZYNQ中PS与PL可进行低延时高速片内通信,而两个芯片间的片间通信就难以实现低延时和高速,这是SOC的主要优势之一。

SOC的优点:1.灵活,2.成本低(一个芯片比两个芯片便宜)

SOC的缺点:1.开发难度大,开发人员最好同时会FPGA和ARM

二. ZYNQ-7000系列产品简介

参考:Xilinx ZYNQ-7000产品简介与技术文档

2.1 7000S与7000的区别

ZYNQ-7000 SOC分为ZYNQ-7000S 与 ZYNQ-7000两类产品,7000S中的S是Single(单个)的缩写,指的是7000S芯片中只集成了一个A9核,而7000是两个。

2.2 资源概览

参考:ZYNQ-7000产品选型手册.pdf

可见7000系列芯片不同型号间的主要区别在于:1.处理器核心数,2.处理器主频,3.PL资源,而外设没区别。

2.3 速度等级与温度等级

可见,速度等级共分3级,-1最慢,-2中等,-3最快。带L表示Low Power(低功耗)

温度等级共分3级:

  • C,Commerical,商业级,0~85℃

  • E,Extended,扩展级,0~100℃

  • I,Industrial,工业级,-40~+100℃

2.4 芯片命名规则

如 XC7Z020-2CLG484I,表示芯片是ZYNQ-7020,速度等级-2,封装CLG484的工业级芯片。

三. ZYNQ-7000数据手册:概览

参考:ds190 ZYNQ-7000-概览.pdf

3.1 ZYNQ-7000描述

Zynq-7000系列基于Xilinx的第一代SoC架构。这些产品在单个设备中集成了功能丰富的基于双核或单核ARM Cortex-A9的处理系统(PS)和28nm Xilinx可编程逻辑(PL)。ARM Cortex-A9 CPU是PS的核心,此外还包括片上存储器,外部存储器接口以及丰富的外围接口。

Zynq-7000系列提供了FPGA的灵活性和可扩展性,同时提供了与通常使用的ASIC(Application Specific Integrated Circuit,专用集成电路)和ASSP(Application Specific Standard Parts,专用标准产品)同等的性能,功率和易用性。同时, Zynq-7000系列提供了行业标准设计工具(Vivado,SDK,Vitis等),使设计人员可以使用单一平台开发成本敏感以及高性能的应用程序。 Zynq-7000系列中的每个设备都包含相同的PS,但是PL和IO资源在设备之间会有所不同。因此,Zynq-7000和Zynq-7000S SoC能够满足多种应用场景.

Zynq-7000集成了PS与PL,在PL中实现自定义逻辑,在PS中实现自定义软件,两者组合实现多种功能。两芯片的解决方案(FPGA + ASSP)因为I / O带宽,延迟和功耗的原因,无法达到同等性能水平。

Xilinx为Zynq-7000系列提供了大量的软IP。 基于ARM的PS还结合了Xilinx现有的PL生态系统,带来了广泛的第三方工具和IP提供商。

PS和PL可独立工作,也可以在PS上跑操作系统,例如Linux。Xilinx也提供其它标准操作系统。

PS和PL位于单独的电源域上,当不使用PL时可关闭PL电源。 PS中的处理器始终首先启动,从而允许以软件为中心的方法对PL进行配置。 对PL的配置由CPU上运行的软件管理,因此ZYNQ的启动类似于ASSP。

3.2 ZYNQ-7000架构概览

如上图所示,PS包含四大块:

  • Application processor unit (APU),应用处理器单元
  • Memory interfaces,存储器接口
  • I/O peripherals (IOP),输入/输出外设
  • Interconnect,内部互联

注意:ZYNQ-7000系列芯片的PS架构均相同。

四. PS侧架构解析

4.1 APU(应用处理器单元)

APU包括:

  • 单/两个A9核,7000S的APU只有单核,缺少上图右上角虚线框部分
  • SWDT(System Watch Dog Timer,系统看门狗定时器)
  • TTC(Triple Timer/Counter,3重定时器/计数器)
  • System-Level Control Regs(系统级控制寄存器)
  • DMA 8 Channel(Direct Memory Access,8通道直接内存存储)
  • GIC( General interrupt controller,一般中断控制器)
  • Snoop Controller(窥探控制),AWDT(ARM Watch Dog Timer,ARM看门狗定时器),Timer(定时器)
  • 512KB L2 Cache & Controller (Level 2 Cache,2级缓存与控制器)
  • OCM Interconnect 256K SRAM(On-Chip Memory,256KB片上静态随机存储器)

每个A9核包括:

  • FPU and NEON Engine(Float Point Unit,浮点运算单元 与 NEON?不知道是什么缩写,待查)
  • MMU(Memory Management Unit,内存管理单元)
  • A9 CPU(central processing unit,中央处理器)
  • 32KB I-Cache(Instruction Cache,指令缓存)
  • 32KB D-Cache(Date Cache,数据缓存)

4.2 Memory interfaces(存储器接口)

从上图可看到有两处存储器接口,左侧下边与右侧中部

左侧三种接口:

  • SRAM/NOR,SRAM接口

  • ONFI 1.0 NAND(Open Nand Flash Interface,开放与非闪存接口)

  • Q-SPI CTRL(Qual SPI控制,四通道SPI的FLASH接口)

这三种都是接FLASH等非易失存储器的。

右侧接易失存储器的DDR接口,支持DDR2/3,DDR3L,LPDDR2,

4.3 IOP(输入/输出外设)

Input/output peripherals,输入/输出外设,位于上图左侧,从上到下的外设分别是:

  • 2路USB
  • 2路GigE(Gigabit Ethernet,千兆以太网)
  • 2路SD SDIO(SD卡接口SDIO,Secure Digital Input and Output,安全数字输入输出)
  • GPIO(General Purpose Input Output,通用输入输出)
  • 2路UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器,简称串口)
  • 2路CAN(Controller Area Network,控制器局域网)
  • 2路I2C(Inter-Integrated Circuit Bus,Bus省略了,称为集成电路总线)
  • 2路SPI(Serial Peripheral Interface,串行外设接口)

4.4 Interconnect(内部互联)

将处理器,存储器接口,外设等连起来。

五. PS与PL的接口

PS与PL间的通讯通过一些接口来进行,如下:

  • AXI接口(见本人其它博客),PS与PL的高速通信口
  • DMA中断
  • EMIO(见本人其它博客)
  • 时钟与复位,PS可以给PL提供时钟和复位信号
  • Processor configuration access port (PCAP) ,处理器配置端口,PS可通过此端口配置PL
  • XADC接口,Xilinx芯片上带的ADC
  • JTAG,烧写程序与在线调试

六. 总结

本博文为ZYNQ的一些基础知识梳理,基本是参照Xilinx官网和芯片数据手册再加上自己的一些理解总结而来,如有疏漏,欢迎评论指出。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。


http://chatgpt.dhexx.cn/article/F9RqCXco.shtml

相关文章

ZYNQ学习笔记(一)---初识ZYNQ-7000系列

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

ZYNQ7000 Vivado详细教学步骤

ZYNQ7000 Vivado开发 ZYNQ7000 Vivado详细教学步骤 ZYNQ7000 Vivado开发1.建立工程项目2.创建Block Design3.配置IO BANK4.配置DDR和CLOCK5.配置PS外设6.测试PS外设7.增加PL外设 1.建立工程项目 Xilinx提供了一系列开发工具,其中包括Vivado平台工具,它是…

mongodb客户端 robo 3T 查询突破50行限制

robo 3T的小bug 这个mongodb客户端,每次查询数据只有50行,虽然有向下翻页的功能 但实际上点击后会被重置,还是只有前50条 解决办法 DBQuery.shellBatchSize 500; 当前窗口最大查询数量修改到500(只有当前窗口生效)…

centos7仅安装mysql/mongodb客户端

1、仅安装MySQL客户端 # 添加rpm源 [rootk8s-master ~]# rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [roottest1 ~]# # 通过yum搜索 [roottest1 ~]# yum search mysql-community [roottest1 ~]# # 安装x64位的 mysql客户端 [roottest1 ~]…

专业级MongoDB桌面客户端:MongoBooster for Mac

mongobooster mac破解版是适用于MongoDB的最智能IDE,也是以shell为中心的跨平台GUI工具,它提供了流畅的查询构建器,SQL查询SQL查询,就地更新,ES2017语法支持和真正的智能感知体验。MongoBooster下载可以帮助用户能够连接到选项卡式用户界面中的多个数据库,并通过shell命令…

mongodb官方客户端可视化工具Compass,免费,官方值得信赖

之前一直用的客户端是nosqlbooster4mongo,基本操作还都是挺好用的,但是有一些命令在这个客户端上运行不了,以后要慢慢的替换到compass上。 下载compass 官方下载:https://downloads.mongodb.com/compass/mongodb-compass-1.26.1…

Centos下mongodb的安装

方法一 可以使用yum命令直接安装MongoDB服务端和客户端。 sudo yum install mongodb-server # 安装MongoDB服务端 sudo yum install mongodb # 安装MongoDB客户端 sudo mongod -f /etc/mongod.conf # 加载配置项,启动mongodb服务器 mongo #启动客户端方法…

linux下MongoDB客户端shell基本操作

MongoDB 是一款NoSql数据库,没有固定的模式,即同一个集合中的不同文档结构可以不同,如:第一条记录{name:”xiaoming”},第二条记录:{name:”xiaoli”,age:15},这在关系型数据库中是无法实现的。…

MongoDB 客户端 MongoVue

直接上图片,图片是按顺序来的 软件下载地址(Windows下的MongoDB客户端MongoVUE 这是最后一个全功能的不收费的版本): http://pan.baidu.com/s/1skYIEq5

mongoDB介绍与客户端认证权限

mongoDB简介 Mongo 是 humongous 的中间部分,在英文里是“巨大无比”的意思。所以 MongoDB 可以翻译成“巨大无比的数据库”,更优雅的叫法是“海量数据库”。 Mongodb是一款非关系型数据库,说到非关系型数据库,区别于关系型数据库…

MongoDB客户端Robo 3T安装使用

MongoDB客户端Robo 3T安装使用 MongoDB安装 MacBook解压安装MongoDB Linux解压安装MongoDB Robo 3T下载和安装 官网下载Robo 3T 官网下载地址: https://robomongo.org/download 有解压版本和安装版本 下载成功后,点击安装,这里不多做说明 Robo 3T使用 打开Ro…

linux/centos单独安装mysql、mongodb客户端

安装mysql客户端 下载想要版本mysql客户端 带client https://downloads.mysql.com/archives/community/ rpm卸载已安装mysql rpm -qa | grep -i mysql 查询出来的rpm -e 全部卸载 rpm -e mysql57-community-release-el7-9.noarch rpm -e mysql-community-server-5.7.17-1…

最佳的MongoDB客户端管理工具

《最佳的MongoDB客户端管理工具》 作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一个好的MongoDB客户端管理工具,可以大大提高MongoDB应用的开发效率。MongoDB自带的Shell是一个很好的工具,但是它在操纵大数据集时就没…

CentOS 安装 MongoDB 客户端(命令行shell)

目录 问题 解决 首先,登陆官网 其次,下载对应的安装包 然后,删除安装包 最后,测试命令行 问题 最近公司新申请的CentOS云服务器都缺少MongoBD客户端工具,用命令行登陆MongoBD数据库时,都需要自己安装…

mongodb客户端

查看当前数据库 db切换数据库 通过db变量访问集合 这会返回当前数据库中的 movies 集合。既然可以通过 shell 访问集合,就意味着可以在 shell 中执行大部分数据库操作。 crud操作 新增 insertOne 函数可以将一个文档添加到集合中 查看数量 查看 使用find查看…

安装mongodb客户端

1.从mongodb官网下载安装包 下载路径:MongoDB Shell Download | MongoDB 2.创建存放mongosh服务目录 mkdir /etc/mongodb 3.将此安装包放到mongdb目录下解压 tar -zxvf /etc/mongodb/mongosh-1.8.1-linux-x64.tgz /etc/mongodb 4.mongodb客户端使用 cd /etc/mo…

系列十、MongoDB客户端连接

一、Docker方式连接 说明:Docker安装默认配置了端口映射,直接连接即可。 二、传统方式连接 2.1、传统方式启动后连接 ./mongod --port27017 --dbpath/usr/local/mongodb5/data --logpath/usr/local/mongodb5/logs/mongo.log 2.2、开启远程连接 启动时…

硬卷 NoSQL 数据库系列(十二):MongoDB 客户端管理工具

点关注公众号,回复“1024”获取2TB学习资源! 前面介绍了 WT 存储引擎、复制集、分片技术、集群部署与管理维护、备份与恢复、状态检测与性能追踪等相关的知识点。今天我将详细的为大家介绍一款 MongoDB 客户端管理工具相关知识,希望大家能够从…

mongodb的linux安装和客户端链接步骤

1、登录mongodb的官网(https://www.mongodb.com/home)下载安装包路径,我是安装在了/root/soft路径下面 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.24.tgz 2、将下载的压缩包解压缩(文件也是解压缩在/roo…

MongoDB—— 客户端MongoDB Compass

目录 一、客户端MongoDB Compass下载官方地址二、启动客户端 MongoDB Compass三、客户端MongoDB Compass连接四、数据库中创建集合操作四、集合中文档的操作4.1、集合中创建文档4.2、集合中查询文档 五、集合中文档的其他操作 一、客户端MongoDB Compass下载官方地址 https://…