FPGA学习笔记(3)——正点原子ZYNQ7000简介

1 ZYNQ-7000简介

ZYNQ 是由两个主要部分组成的:一个由双核 ARM Cortex-A9 为核心构成的处理系统(PS,Processing System),和一个等价于一片 FPGA 的可编程逻辑(PL,Programmable Logic)部分。两者之间通过AXI高速接口连接。
在这里插入图片描述

1.1 ZYNQ PL简介

PL(可编程逻辑)就是FPGA,FPGA基本结构:
在这里插入图片描述
1、可编程I/O单元:
FPGA上的每一个通用输入输出功能(IOB)都有一个焊盘,与芯片外部 连接用作信号的输入输出。
在这里插入图片描述

2、基本可编程逻辑单元:
FPGA基于SRAM工艺,基本可编程逻辑单元几乎都是由查找表(LUT)和寄存器(Register)组成。Xilinx 7系列的FPGA为6输入查找表。

Xilinx 7系列的FPGA中的可编程逻辑单元称为CLB(可配置逻辑块),每个CLB中包含两个逻辑片(Slice)。每个 Slice 由 4 个查找表、8 个触发器和其他一些逻辑所组成的。
CLB示意图如下:
CLB示意图

3、嵌入式块RAM:
目前大多数 FPGA 都有内嵌的块 RAM(Block RAM),FPGA 内部嵌入可编程 RAM 模块。绿色的长条方块就是Block RAM。
在这里插入图片描述

除了块 RAM,还可以灵活地将 LUT 配置成 RAM,ROM,FIFO 等存储结构,这种技术被称为分布式 RAM。

4、丰富的布线资源:
布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而划分为4 类不同的类别:
第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;
第二类是长线资源,用以完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;
第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;
第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。

5、底层嵌入功能单元:
PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP、CPU 等。

6、内嵌专用硬核:
数模混合模块(XADC),就是一个硬核。XADC包含两个模数转换器(ADC),一个模拟多路复用器,片上温度和片上电压传感器等。我们可以利用这个模块监测芯片温度和供电电压,也可以用来测量外部的模拟电压信号。

PL架构示意图:
在这里插入图片描述

1.2 ZYNQ PS简介

PS为双核 ARM Cortex-A9 为核心构成的处理系统,形成了一个应用处理器单元(Application Processing Unit,APU),另外还有扩展外设接口、cache 存储器、存储器接口、互联接口和时钟发生电路等。

在 ZYNQ 中,PL 和 PS 两部分的供电电路是独立的,这样 PS 或 PL 部分不被使用的话就可以被断电。

PS系统示意图如下:

在这里插入图片描述

1、APU:
一致性控制单元(SCU)在ARM核心、二级Cache缓存和OCM存储器之间形成了桥接。SCU还部分负责与PL 对接,图中没有标明这个接口。
在这里插入图片描述

2、外部接口:
SPI、I2C、CAN、UART、GPIO、SD、USB、GigE。

3、存储器接口:
包含一个动态存储器控制器和几个静态存储器接口模块。动态存储器控制器可以用于 DDR3、DDR3L、DDR2 或 LPDDR2。静态存储器控制器支持一个 NAND 闪存接口、一个 Quad-SPI 闪存接口、一个并行数据总线和并行 NOR 闪存接口。

4、片上存储器:
片上存储器包括 256kB 的 RAM(OCM)和 128kB 的 ROM(BootROM)。OCM 支持两个 64 位 AXI 从机接口端口,一个端口专用于通过 APU SCU 的 CPU/ACP 访问,而另一个是由 PS 和 PL 内其他所有的总线主机所共享的。BootROM 是 ZYNQ 芯片上的一块非易失性存储器,它包含了 ZYNQ 所支持的配置器件的驱动。BootROM 对于用户是不可见的,专门保留且只用于引导的过程。

5、AXI接口:
AXI 的英文全称是 Advanced eXtensible Interface,即高级可扩
展接口,它是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)协议的一部分。
在 PS 和 PL 之间的主要连接是通过一组 9 个 AXI 接口,每个接口有多个通道组成。这些形成了 PS 内部的互联以及与 PL 的连接,如下图所示:

在这里插入图片描述

PS 和 PL 之间的 9 个 AXI 接口可以分成三种类型:
1、通用 AXI(General Purpose AXI):一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。接口是透传的不带缓冲。总共有四个通用接口:两个 PS 做主机,另两个 PL 做主机。
2、加速器一致性端口(Accelerator Coherency Port):在 PL 和 APU 内的 SCU 之间的单个异步连接,总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性。PL 是做主机的。
3、高性能端口(High Performance Ports):四个高性能 AXI 接口,带有 FIFO 缓冲来提供“批量”读写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在所有四个接口中 PL 都是做主机的。

接口名接口描述主机从机
M_AXI_GP0通用AXI(AXI_GP)PSPL
M_AXI_GP1通用AXI(AXI_GP)PSPL
S_AXI_GP0通用AXI(AXI_GP)PLPS
S_AXI_GP1通用AXI(AXI_GP)PLPS
S_AXI_ACP加速器一致性端口(ACP),缓存一致性交互PLPS
S_AXI_HP0带有读写FIFO的高性能端口(AXI_HP)PLPS
S_AXI_HP1带有读写FIFO的高性能端口(AXI_HP)PLPS
S_AXI_HP2带有读写FIFO的高性能端口(AXI_HP)PLPS
S_AXI_HP3带有读写FIFO的高性能端口(AXI_HP)PLPS

1.3 正点原子ZYNQ7000核心板及底板简介

ZYNQ 芯片采用 Xilinx 公司的 ZYNQ7000 系列芯片,ZYNQ-7020 核心板的 ZYNQ 芯片型号为 XC7Z020CLG400-2,PL 逻辑单元多达 85K,BRAM 存储资源为 4.9Mbit;
ZYNQ-7010核心板的 ZYNQ 芯片型号为 XC7Z010CLG400-1,PL 逻辑单元多达 28K,BRAM 存储资源为2.1Mbit;
两种 ZYNQ 芯片的处理器系统均为双核 Cortex-A9 结构。

需要注意的是,ZYNQ-7020核心板主控芯片的速度等级为“-2”(最高766MHz),ZYNQ-7010 核心板主控芯片的速度等级为“-1”(最高666MHz),因此 ZYNQ-7020 核心板主控芯片的速度等级更高,所支持的频率也更高。

2 片 DDR3 SDRAM,ZYNQ-7020 核心板的 DDR3 型号为NT5CC256M16,每片 4Gbit,总容量为 8Gbit(1GB);
ZYNQ-7010 核心板的 DDR3 型号为 NT5CC128M16,每片 2Gbit,总容量为 4Gbit(512MB)。
组成双路DDR3的原因:提高带宽,增大读写能力。

7020核心板资源:
在这里插入图片描述

7010核心板资源:
在这里插入图片描述

硬件资源:
在这里插入图片描述

在这里插入图片描述

底板电源拓扑结构:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AIGC-3D数字人技术:高效助推各行业数字化水平升级

从“互联网”到“人工智能”,数字员工作为一种全新的交互形式,对企业有着重要的作用,企业、品牌通过数字人的AI语音交互、AI播报等核心功能,可以有效推动企业提升数字水平。 作为3D、AI虚拟数字人技术服务商及方案提供商&#xff…

Quora 首席执行官亚当·德安杰洛 (Adam D’Angelo) 谈论了 AI、聊天机器人平台 Poe,以及 OpenAI 为什么不是竞争对手

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

cmake进阶:目录属性之 INCLUDE_DIRECTORIES说明一

一. 简介 前一篇文章学习了 cmake的一些目录属性,其中最重要的是 头文件搜索路径。文章如下: cmake进阶:目录属性说明一-CSDN博客 本文主要学习 一个目录属性 INCLUDE_DIRECTORIES,即头文件搜索路径。 二. cmake进阶&#xff1…

【React】React-redux多组件间的状态传递

效果(部分完整代码在最底部): 编写 Person 组件 上面的 Count 组件,已经在前面几篇写过了,也可以直接翻到最底部看 首先我们需要在 containers 文件夹下编写 Person 组件的容器组件 首先我们需要编写 index.jsx 文件…

Python文件读取和写入

文件读取和写入是 Python 中常见的操作之一,通过这些操作,我们可以读取外部文件中的数据,对其进行处理,并将处理结果写入到文件中。本文将详细介绍 Python 中的文件读取和写入操作,包括如何打开文件、读取文件内容、写…

stm32之hal库串口中断和ringbuffer的结合

前言 结合hal库封装的中断处理函数使用rt-thread内部的rt-ringbuffer数据结构源码改造hal库串口部分的源码,将内部静态方法变为弱引用的函数,方便重写标志位采用信号量或变量的两种方式,内部数据分配方式采用动态和静态两种方式 hal库部分串…

【免费】虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型【simulink】

目录 主要内容 仿真模型要点 2.1 整体仿真模型 2.2 电压电流双闭环模块 2.3 SVPWM调制策略 2.4 无功电压模块 2.5 自适应控制策略及算法 部分结果 下载链接 主要内容 该模型为simulink仿真模型,主要实现的内容如下: 随着风力发电、光…

HBuilderX uniapp+vue3+vite axios封装

uniapp 封装axios 注:axios必须低于0.26.0,重中之重 重点:封装axios的适配器adapter 1.安装axios npm install axios0.26.0创建api文件夹 2.新建adapter.js文件 import settle from "axios/lib/core/settle" import buildURL…

循环链表 -- c语言实现

#pragma once // 带头双向循环链表增删查改实现 #include<stdlib.h> #include<stdio.h> #include<assert.h>typedef int LTDataType;typedef struct ListNode {LTDataType data;struct ListNode* next;struct ListNode* prev; }ListNode;//双链表申请一个新节…

ROS机械臂中Movelt!

Movelt!简介 一个易于集成使用的集成化开发平台 由一系列移动操作的功能包组成 1、运动规划 2、操作控制 3、3D感知 4、运动学 5、控制与导航算法 ....... 提供友好的GUI 可应用于工业、商业、研发和其他领域 ROS社区中使用度排名前三的功能包 Movelt!三大核心功能 …

SQL Server 存储过程中的字符串本身包含单引号的用法

文章目录 引言I 存储过程中的字符串本身包含单引号的用法1.1 问题1.2解决方法引言 使用场景: 字符串类型字段的值比较 I 存储过程中的字符串本身包含单引号的用法 在SQL Server中,单引号用于表示字符串常量。如果你的存储过程中的字符串本身包含单引号,你需要用两个连续的…

三色标记法详解

什么是三色标记法 三色标记法&#xff08;Three-color Marking&#xff09;是一种在垃圾回收&#xff08;Garbage Collection, GC&#xff09;领域广泛使用的算法&#xff0c;尤其是在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;与追踪式垃圾回收相关联。它的核心目的…

线性滤波和预测理论的新成果【1961.Kalman】翻译

线性滤波和预测理论的新成果 New Results in Linear Filtering and Prediction TheoryR. 线性滤波与预测理论的新结果[j]。 E. KALMAN Study, Baltimore, MarylandResearch Institute for AdvancedR. E.卡尔曼研究&#xff0c;巴尔的摩&#xff0c;马里兰州高级研究所。 S. …

【PX4-AutoPilot教程-TIPS】MAVROS2运行px4.launch文件报错ValueError无法启动的解决方法

MAVROS2运行px4.launch文件报错ValueError无法启动的解决方法 问题描述解决方法 环境&#xff1a; Ubuntu &#xff1a;20.04 LTS ROS &#xff1a;ROS2 Foxy PX4 &#xff1a;1.13.0 问题描述 在使用命令ros2 launch mavros px4.launch命令启动MAVROS2与PX4之间的连接时报…

函数—描述现实世界现象的基本工具(二)

在数学和物理学中&#xff0c;函数是描述现实世界现象的基本工具。通过将函数视为对象&#xff0c;数学家和物理学家能够使用代数、几何和分析的技术来研究现实世界问题。这种方法不仅提供了对现象的深入理解&#xff0c;而且也使得复杂问题的求解成为可能。在科学和工程的许多…

FL Studio20.9水果安装及切换修改中文语言教程

前言 喜欢音乐制作的小伙伴千万不要错过这个功能强大&#xff0c;安装便捷的音乐软件哦&#xff01;如果你们已经下载好了这款软件的话&#xff0c;小编今天在这里就为大家详细讲解下如何安装FL Studio软件&#xff0c;一起来学习吧&#xff01; 注意&#xff1a; &#xff0…

关于RN中Image的style下tintColor使用

React Native中Image组件的style属性下面有个tintColor 文档描述如下&#xff1a; tintColor: color Changes the color of all the non-transparent pixels to the tintColor. 改变不透明像素的颜色 比如一个白色背景页面&#xff0c;黑色icon图标&#xff0c;手机切换到暗黑…

游戏开发重要的环节

游戏开发已经成为一项技术和艺术相结合的复杂工程。成功的游戏不仅需要引人入胜的故事情节和精美的视觉效果&#xff0c;还需要无缝的技术实现和令人满意的用户体验。本文将探讨游戏开发中最关键的几个方面&#xff0c;以帮助读者更好地理解游戏开发的核心要素。 创意与设计 …

QT程序简单国际化实验

文章目录 第一步&#xff1a;新建一个QT工程第二步&#xff1a;添加控件第三步&#xff1a;在pro文件中添加内容第四步&#xff1a;更新文件第五步&#xff1a;打开QT的Linguist第六步&#xff1a;添加翻译内容第七步&#xff1a;回到QT Creator中添加文件第八步&#xff1a;给…

Python学习笔记(五)——函数和代码得复用

函数的定义与使用 函数的定义 函数是一段代码的表示&#xff0c;也是一段代码的完整封装 -函数是一段具有特定功能的、可重复使用的语句组 -函数是一种功能的抽象&#xff0c;一般函数表达特定功能 -两个作用&#xff1a;降低编码难度和代码复用 def <函数名>(<…