1 - ZYNQ 概述

0 前言

本文来自于博主徐晓康的博文 ZYNQ-7000概述,仅作为个人学习记录。

1 ZYNQ SOC简介

SOC:System On Chip,也称为All Programmable SOC,称为全可编程片上系统.。.

Xilinx的SOC有4个系列:

  • ZYNQ-7000,此系列是Xilinx于2015年发布的第一代SOC架构的芯片,也是世界上首个SOC芯片系列
  • ZYNQ UltraScale+ MPSoC,性能强劲
  • ZYNQ UltraScale+ RDSoC,性能强劲
  • Versal ACAP,Xilinx最新发布的芯片,性能也最强

在这里插入图片描述
SOC内部集成了单/多个ARM处理器核心与1个FPGA,将软件可编程的硬核处理器与硬件可编程的FPGA集成在一个芯片中;软硬件均可编程也是SOC被称为全可编程片上系统的原因。

SOC中的ARM处理器被称为PS(Processing System,处理系统),而FPGA被称为PL(Progarmmable Logic,可编程逻辑)。SOC = PS + PL,以PS为主,与单独的ARM芯片(如ST公司的STM32系列)一样,PS配备了多个外设,如串口,CAN口,GPIO等,PL部分可以看做是PS的一个"可编程外设"。

SOC的优点:

  • 灵活
  • 成本低(一个芯片比两个芯片便宜)
  • 性能高(在同一芯片中,ZYNQ中PS与PL可进行低延时高速片内通信)

SOC的缺点:

  • 开发难度大,开发人员最好同时会FPGA和ARM

2 ZYNQ-7000产品简介

2.1 7000S与7000的区别

ZYNQ-7000 SOC分为ZYNQ-7000S 与 ZYNQ-7000两类产品,7000S中的S是Single(单个)的缩写,指的是7000S芯片中只集成了一个ARM Cortex-A9 CPU,而7000是两个,如下图所示:
在这里插入图片描述

2.2 资源概览

在这里插入图片描述

7000系列芯片不同型号间的主要区别在于:

  • 处理器核心数量
  • 处理器主频
  • PL资源

7000系列芯片各型号外设保持一致。

2.3 速度等级与温度等级

在这里插入图片描述

速度等级共分3级:

  • -1 最慢
  • -2 中等
  • -3 最快
  • L 表示Low Power(低功耗)

温度等级共分3级:

  • C:Commerical,商业级,0~85℃
  • E:Extended,扩展级,0~100℃
  • I:Industrial,工业级,-40~+100℃

2.4 芯片命名规则

在这里插入图片描述
如 XC7Z020-2CLG484I,表示芯片是ZYNQ-7020、速度等级-2、封装CLG、484个引脚的工业级芯片。

3 ZYNQ-7000产品详述

3.1 ZYNQ-7000产品特点

Zynq-7000系列基于Xilinx第一代SoC架构,在单个设备中集成了功能丰富的基于单/双ARM Cortex-A9 CPU的处理系统(PS)和28nm Xilinx可编程逻辑(PL)。

Zynq-7000系列特点:

  • 提供了FPGA的灵活性和可扩展性,同时提供了与的ASIC(Application Specific Integrated Circuit,专用集成电路)和ASSP(Application Specific Standard Parts,专用标准产品)同等的性能、功耗和易用性;
  • 提供了行业标准设计工具(Vivado,SDK,Vitis等),使设计人员可以使用单一平台开发成本敏感以及高性能的应用程序;
  • 集成了PS与PL,在PS中实现自定义软件,在PL中实现自定义逻辑,两者组合实现多种功能(两芯片解决方案(如FPGA + ASSP)因I/O带宽、延迟和功耗等原因,无法达到同等性能水平);
  • PS和PL位于单独的电源域上,两者可独立工作,当不使用PL时可关闭PL电源,以节省系统功耗;
  • PS可以跑操作系统(如Linux)或裸机程序(bare-metal program);
  • PS始终首先启动,从而允许PS对PL进行配置。

3.2 ZYNQ-7000产品架构

ug585 Zynq 7000 SoC产品架构如下图所示:

在这里插入图片描述

Vivado ZYNQ7 Processing System IP架构如下图所示:

在这里插入图片描述

如上述图所示,PS侧主要包含四部分:

  • Application processor unit (APU),应用处理器单元
  • Memory interfaces,存储器接口
  • I/O peripherals (IOP),输入/输出外设
  • Interconnect,内部互联

注意: ZYNQ-7000系列芯片的PS架构均相同。

3.2.1 PS组成

3.2.1.1 APU(应用处理器单元)

APU包括:

  • 单/两个ARM Cortex-A9 CPU,每个CPU都有各自的:
    • FPU and NEON Engine(Float Point Unit,浮点运算单元 与 NEON引擎)
    • MMU(Memory Management Unit,内存管理单元)
    • 32KB I-Cache(Instruction Cache,指令缓存)
    • 32KB D-Cache(Date Cache,数据缓存)
  • SCU(Snoop Controller Unit,监听控制单元)
    • SCU位于CPU与L2 Cache之间,负责连接多个CPU到存储器子系统,并管理L1 Cache与L2 Cache之间的数据一致性;
    • 当某个处理器修改其L1 Cache中的数据时,SCU会确保这些修改能够传播到L2 Cache中,并通知其他可能使用该数据的处理器,以保持数据的一致性;
  • AWDT(CPU Watch Dog Timer,CPU看门狗定时器)
    • 每个CPU都有一个独立的看门狗定时器,且只能由各自的CPU进行操作,因此被称为私有看门狗定时器;
    • 用于监控各自CPU核心的运行状态,防止程序跑飞或进入死循环,确保系统的稳定运行;
  • SWDT(System Watch Dog Timer,系统看门狗定时器)
    • 能够监控包括处理系统(PS)和可编程逻辑(PL)在内的整个Zynq-7000系统的运行状态,具有更广泛的监控范围和更高的可靠性;
    • 能够在系统遇到灾难性故障时及时触发复位,防止系统崩溃;
  • TTC(Triple Timer/Counter,3重定时器/计数器),包含三个独立的定时器/计数器,每个定时器/计数器可以独立配置和操作,可实现:
    • 定时功能:TTC可以用作定时器,在达到设定的计数值时产生中断或执行其他操作,这使得TTC在需要精确时间控制的场景中非常有用,如系统调度、任务同步等;
    • 波形生成:TTC能够生成具有设定占空比的波形,如PWM(脉冲宽度调制)波形,这种波形在多种应用中都非常有用,包括电机控制、LED亮度调节、音频信号生成等;
    • 信号测量:TTC还可以配置为事件定时器,用于测量外部信号的脉冲宽度或持续时间,这对于需要精确测量外部事件的应用来说非常关键;
  • Timer
    • CPU Private Timer,CPU私有定时器
      • 专为每个CPU设计的独立定时器资源
      • 用于产生中断信号、实现延时函数、作为计数器检测程序执行时间等
    • Global Timer,全局定时器
      • 供所有处理器共享的一个定时器资源
      • 用于实现跨核心的同步和计时任务
  • OCM(On-Chip Memory,256KB片上静态随机存储器),是集成在芯片内部的一种高速存储器,用于:
    • 启动流程:在Zynq-7000的启动过程中,BootROM首先运行,识别启动模式,并将FSBL从启动介质(如SD卡、QSPI等)中加载到OCM中;随后,FSBL在OCM中执行,完成PS端的配置数据初始化、PL端程序的加载等工作,并最终跳转到第二阶段引导加载程序或用户程序执行;
    • 程序加速:用于存储CPU频繁访问的程序代码和数据,可以减少对较慢的外部存储器(如DDR)的访问次数,从而加速程序的执行和数据处理;
  • GIC( General interrupt controller,通用中断控制器),是一种功能强大的中断处理单元
    • 通过仲裁、分发、配置和管理中断,为系统提供高效、可靠的中断处理机制
  • DMA(Direct Memory Access,8通道直接内存访问),是一种高效的数据传输机制
    • 允许数据在内存和外设之间,或内存的不同区域之间直接传输,而无需CPU的干预
  • SLCR(System-Level Control Regs,系统级控制寄存器)
  • L2 Cache(512KB 2级缓存与控制器)
定时器资源总结

在这里插入图片描述

在ZYNQ-7000中,定时器的资源是非常丰富的:

  • CPU Private Timer,私有定时器
    • 1个/CPU
    • 32位
    • CPU私有
  • Global Timer,全局定时器
    • 1个
    • 64位
    • 两个CPU共享
  • AWDT,私有看门狗定时器
    • 1个/CPU
    • 32位
    • CPU私有
  • SWDT,系统看门狗定时器
    • 1个
    • 24位
    • 整个系统共享
  • TTC,三重定时器/计数器
    • 2个
    • 每个TTC包含3个独立定时器/计数器
    • 每个定时器/计数器包含1个16位预分频器和1个16位的向上/向下计数器
3.2.1.2 Memory interfaces(存储器接口)

PS侧有两种存储器接口:

  • 静态存储器接口(SMC,Static Memory Controller),包括:
    • Asynchronous SRAM(并口)
    • Nand Flash(并口)
    • Nor Flash
      • BPI Flash(Byte Peripheral Interface Flash,并口)
      • SPI Flash(Serial Peripheral Interface Flash,串口)
        在这里插入图片描述
    • 根据接口信号的不同,可以合并为三类:
      • Quad SPI Flash
        • Single Quad SPI (4bit)
        • Dual Quad SPI (4bit)
        • Dual Quad SPI (8bit)
      • SRAM/NOR Flash
      • NAND Flash
        在这里插入图片描述
  • 动态存储器接口
    • DDR2/3、DDR3L和LPDDR2接口
3.2.1.3 IOP(输入/输出外设)

Input/Output Peripherals,包括:

  • 2路USB(Universal Serial Bus,通用串行总线)
  • 2路GigE(Gigabit Ethernet,千兆以太网)
  • 2路SD SDIO(SD卡接口SDIO,Secure Digital Input and Output,安全数字输入输出)
  • 2路UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器,简称串口)
  • 2路CAN(Controller Area Network,控制器局域网)
  • 2路I2C(Inter-Integrated Circuit Bus,Bus省略了,称为集成电路总线)
  • 2路SPI(Serial Peripheral Interface,串行外设接口)
  • GPIO(General Purpose Input Output,通用输入输出)
3.2.1.4 Interconnect(内部互联)

内部互联主要用于将处理器、存储器接口和外设(包括PL)等连起来,包括:

  • Central Interconnect
  • programmable Logic to Memory Interconnect

3.2.2 PS与PL接口

PS与PL之间的接口包括:

  • AXI
    • AXI_ACP 加速器一致性接口(Accelerator Coherency Port)
      • 只有一个64位从设备接口
      • 提供从PL(可编程逻辑)到PS(处理系统)的高速缓存一致性访问能力
      • 允许PL中的加速器直接访问PS端的缓存系统(如L1和L2 Cache),从而实现低延迟的数据传输,SCU会监视访问请求,并确保数据的一致性
    • AXI_HP 高性能/带宽的AXI接口(High Performance Port)
      • 共有四个32位/64位从设备接口
      • 提供高速的数据传输通道,使得PL能够高效地处理大量数据并存储在PS的存储器中
      • 主要用于PL访问PS上的存储器,如DDR(双倍数据速率)和On-Chip RAM(片上RAM)
    • AXI_GP 通用的AXI接口(General Purpose Port)
      • 共有四个,包括两个32位主设备接口和两个32位从设备接口
      • 既支持PS作为主设备访问PL,也支持PL作为主设备访问PS
      • 通常用于控制命令和状态信息的交换,以及低速数据通信
  • EMIO:扩展MIO接口(Extended Multiplexed I/O)
    • 共64个
  • PCAP:处理器配置接口(Processor configuration access port)
    • PS可通过此接口配置PL
  • XADC:Xilnx Xilinx Analog-to-Digital Converter
    • PS可通过此接口实时监测芯片的工作温度和供电电压
  • IRQ:中断请求(Interrupt Request)
    • 共16个
    • 与PS侧中断控制器GIC相连,PL可通过此接口向PS提交中断请求;
  • 时钟与复位接口,PS向PL提供
    • 4个时钟信号
    • 4个复位信号
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值