zynq基础知识学习(1)

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

zynq的结构

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

ZYNQ简介-****博客

ZYNQ基础知识-****博客

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

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开发基本流程-****博客

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

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嵌入式开发-****博客

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

【学累了,休息会~~】

串口

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

上一篇:02.3 基于Verilog控制多个LED灯以不同频率闪烁


下一篇:Rust语言入门:系统编程的未来