zynq基础知识学习(1)

Zynq和FPGA区别------快速认识Zynq开发-CSDN博客

zynq的结构

什么是ZYNQ?ZYNQ简介-CSDN博客

ZYNQ简介-CSDN博客

ZYNQ基础知识-CSDN博客

ZYNQ相关的常见概念-CSDN博客

zynq:组合了一个双核ARM Cortex-A9处理器和一个现场可编程门阵列(FPGA)逻辑部件。

PL和PS端通过AXI接口连接。

PL端

可编程输入/输出单元

基本可编程逻辑单元:查找表(LUT)和寄存器(Register)组成。查找表一般完成纯组合逻辑功能,FPGA依赖寄存器完成同步时序设计。

嵌入式块RAM(Block RAM)

布线资源:连通FPGA内部的所有单元。连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。

底层嵌入功能单元:通用程度较高的嵌入式功能模块,如PLL、DLL、DSP、CPU等。

内嵌专用硬核:通用性相对较弱,不是所有FPGA器件都包含硬核。zynq的PL端有一个数模混合模块XADC,就是一个硬核。XADC包含两个模数转换器(ADC),一个模拟多路复用器,片商温度和片上电压传感器等。可以利用该模块监测芯片温度和供电电压,也可以用来测量外部的模拟电压信号。

PS端

是以处理器为核心的系统。其中集成了内存控制器和大量的外设,使Cortex-A9处理器可以完全独立于可编程逻辑单元。

在zynq中,PS和PL端的供电电路是独立的。

使用FPGA的可编程逻辑资源搭建的处理器称之为"软核"处理器。zynq中是一颗"硬核"处理器。

可以使用PL的逻辑资源搭建一个Microblaze软核处理器,和ARM迎合处理器协同工作

系统中除了ARM外,还有一个应用处理单元(APU),扩展外设接口、Cache存储器、存储器接口、互联接口和时钟发生电路等。

PL-PS通信

【干货分享】ZYNQ开发基本流程-CSDN博客

PS和PL的通信通过两个通路完成:GP(General Purpose) Ports 和HP(High Performance) Ports。

GP Ports包含两个Master和两个Slave接口,AXI协议数据位宽32bit。

HP Ports包含四个接口,均是PL为Master。有两个专用的连接到DDR Controller的接口和一个连接到OCM(On-chip Memory)的接口。

HP与GP相比,有额外的FIFIO作为Buffer,可以提高传输效率和数据吞吐量。

因此,GP主要用于寄存器的读写以及小数据量的传输;HP用于大量数据的传输,主要是Memory数据的读写。

设计思路

zynq最常用的设计思路是将主程序放在PS中,PL作为PS的外设,设计相应的逻辑功能

将逻辑设计封装成IP,且每个IP都包含一个标准的AXI-Lite接口。

PS对于逻辑设计的控制是通过控制逻辑设计的功能寄存器,进而控制逻辑设计进行相应的操作,同时将工作情况通过状态寄存器返回给PS端。

运行zynq

zynq启动模式详解及启动过程详解_zynq fsbl-CSDN博客

FSBL

first stage boot loader

fsbl.elf是zynq启动第一阶段的加载程序。经过这一阶段,才可以运行裸奔程序或者引导操作系统的u-boot。

zynq的启动流程

(Stage 0) BootROM阶段 --> (Stage 1) FSBL阶段 --> (Stage 2) SSBL阶段

Stage 0

Stage 0:在ARM核上电后,第一时间读取BootROM中固化的程序,完成对芯片的最初始化的配置。 (Read-only Memory)

zynq由MIO[6:2]配置,其中MIO[2]配置JTAG,MIO[5:3]选择启动方式(SD、QSPI Flash等),MIO[6]是PLL使能控制。

BootROM先对SD等进行初始化,然后要通过读取MIO[6:2]的引脚配置情况,决定如何加载Stage 1需要的启动镜像。之后再将启动镜像加载到OCM(片上内存)中。

BootROM阶段不对PL进行配置。

Stage 1

Stage 1:PS初始化 --> 加载PL的bit流文件,配置PL --> 加载SSBL引导程序 / ARM的裸跑程序到DDR --> 跳转执行SSBL / 裸跑程序

初始化PS:包括DDR、MIO等。

非JTAG模式下,PL无法自行配置。

SSBL是运行操作系统时才进行加载

Stage 2

Stage 2(可选):操作系统在启动过程中的引导程序boot loader。

对linux而言,zynq的SSBL阶段核u-boot 的作用相同。是将zynq所需要的操作系统加载到DDR内存中

其他

AXI

ZYNQ-嵌入式系统开发学习笔记-概况篇_zynq嵌入式开发-CSDN博客

AXI接口:实现PS-PL的高速便捷交互。

【学累了,休息会~~】

串口

万变不离其宗之ZYNQ串口介绍_zynq串口通信-CSDN博客

相关推荐
西岸行者1 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意1 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码1 天前
嵌入式学习路线
学习
毛小茛1 天前
计算机系统概论——校验码
学习
babe小鑫1 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms1 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下1 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。1 天前
2026.2.25监控学习
学习
im_AMBER1 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J1 天前
从“Hello World“ 开始 C++
c语言·c++·学习