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博客

相关推荐
知识分享小能手6 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao9 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT9 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa10 小时前
HTML和CSS学习
前端·css·学习·html
看海天一色听风起雨落11 小时前
Python学习之装饰器
开发语言·python·学习
speop12 小时前
llm的一点学习笔记
笔记·学习
非凡ghost12 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空12 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人12 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习