摘要:主要是根据正点原子视频学习并记录,芯片暂时先跟着视频看一下Zynq-7000 SoC
1. SoC
2. Zynq-7000 SoC
2.1 APU(Application Processor Unit)
两个ARM-CPU(双核)
FPU:用于浮点计算加速
NEON(单指令多数据功能):可以对大量并行算法进行加速,比如FFT
MMU:存储管理单元,实现物理地址到虚拟地址的映射
Cache:(i)指令Cache和(D)数据Cache,这两个结合相当于一级缓存
L2 Cache:二级Cache是两个处理器共用
OCM:片上存储器,interconnect(管理与其它接口的通信,主要是AXI)
Snoop Controller:移植性控制单元,CPU通过这个去访问二级缓存或OCM
DMA:直接存储访问,协助处理器去进行大量数据的搬移
GIC:中断控制器,帮助处理器去接收并管理外部中断
2.2 PS(Processing System)
Central Interconnect:中央互联,管理不同接口之间的通信
Programmable Logic to Memory Interconnect:管理与其他接口的通信,主要是AXI
I/O Peripherals:PS与外部相连的接口,通过MIO与外部连接(MIO对FPGA是不可见的),MIO是可以配置的,比如分配哪个序列号对应哪个接口;其中GPIO可以用来控制一些简单的外设(比如LED、按键);MIO对应着54个引脚,直接与外界交互。如果超过了54个引脚需要通过EMIO去进行扩展。
动态Memory Interfaces:DDR就是动态存储器接口
静态Memory Interfaces:SRAM、Flash就是静态存储器接口;动态和静态的区别就是数据需不需要进行刷新。比如bit代码文件需要存储在静态存储器里面。
Clock Generation:产生PS内部各个模块需要的时钟,最开始的主时钟肯定是由外部晶振提供的,主时钟经由时钟产生模块 产生各个模块所需要的时钟频率,有些I/O外设可能也需要时钟。
Reset:上电复位,案件复位,由看门狗产生的复位
2.3 PL与PS通信
EMIO:扩展MIO,可连接PL,对FPGA可见;EMIO可以通过PL的SelectOP Resources连接PS和PL;EMIO可以跟PL内部编写的模块进行交互
XADC:PL里面的硬核,数模转换
DMA Sync:可以实现PL到PS的直接存储访问
IRQ:PL里面的中断可以传到GIC中断控制器,处理器接受到中断后进行一些处理
Config AES/SHA:FPGA的配置接口,一般情况下PS先启动然后去配置PL,然后实现PL的启动,Zynq是以PS为核心的
2.3.1 PL里面的GP、HP、ACP接口
GP:general purpose interface,通用接口。当然这里面分了Master(主)接口和Slave(从)接口
HP:high performance interface,高性能接口。高性能体现在数据量、数据传输速度。PL作为主机
ACP:控制SCU移植控制单元,实现PL到一二级缓存的访问。(ACP最主要的作用就是实现PL到PS的低时延的访问)(PL作为主机)
2.3.2 AXI接口
AXI(高级可扩展接口)是AMBA总线(高级微控制器总线架构)的一部分
AXI-Memory-Map:存储映射,读写的时候需要有地址
AXI-Stream:读写大量数据,不用给地址
AXI-Lite:MemoryMap的简化版,Lite不支持突发传输(一次传很多比特数据),它可以用来做一些简单的寄存器的配置
参考文章:
UG585
正点原子【第一期】手把手教你学ZYNQ系列视频/FPGA开发篇- 基于启明星V2平台_哔哩哔哩_bilibili