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

相关推荐
Ace'1 小时前
每日一题&&学习笔记
笔记·学习
IM_DALLA1 小时前
【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
学习·fpga开发·verilog学习
丶Darling.1 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
z樾3 小时前
Github界面学习
学习
道爷我悟了4 小时前
Vue入门-指令学习-v-html
vue.js·学习·html
计算机学姐5 小时前
基于SpringBoot+Vue的在线投票系统
java·vue.js·spring boot·后端·学习·intellij-idea·mybatis
彤银浦5 小时前
python学习记录7
python·学习
少女忧5 小时前
51单片机学习第六课---B站UP主江协科技
科技·学习·51单片机
邓校长的编程课堂6 小时前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
missmisslulu7 小时前
电容笔值得买吗?2024精选盘点推荐五大惊艳平替电容笔!
学习·ios·电脑·平板