资讯详情

【软件架构文档之SOC篇】

软件架构文档

  • 软件系统设计SOC介绍
    • 总线连接图
    • SOC启动图
    • PS和PL的互联技术
    • ZYNQ芯片开发过程
    • ZYNQ固化程序流程

软件系统设计SOC介绍

ZYNQ 5EV 包含APU4(arm cortex A53),RPU2(arm cortex R5),OCM(内部存储器),PMU, Perepherals,GPU,CSU. 在这里插入图片描述 其中PS系统部分的主要参数如下: ① ARM四核Cortex-A53处理器,速度高达1.2GHz,每个CPU32KB 1级指令和数据缓存MB 2级缓存CPU共享。 ② ARM 双核Cortex-R5处理器的速度高达600MHz,每个CPU 32Kb 1级指令和数据缓存,128K内存紧密耦合。 ③ 图像视频处理器Mail-400 MP2,速度高达600MHz,64KB 2级缓存。 ④ 支持32/64的外部存储接口bit DDR4/3/3L、LPDDR4/3接口。 ⑤ 静态存储器接口,支持NAND,2xQuad-SPI FLASH。 ⑥ 支持高速连接接口PCIe Gen ,USB3.0,Sata 3.1,DisplayPort,Ethernet. ⑦ 普通连接接口,USB2.0,SDIO,UART,CAN,I2C,SPI,GPIO. ⑧ 电源管理:支持 Full/Low/PL/Battery四部分电源的划分。 ⑨ 加密算法:支持RSA,AES和SHA。 ⑩ 系统监控:10位1Mbps 的AD对温度和电压进行监测。 其中PL逻辑部分的主要参数如下: ① 逻辑单元 ② 触发器 ③ 查找表 ④ Block Ram ⑤ 时钟管理单元 ⑥ DSP Silces ⑦ 图像编解码单元 ⑧ PCIE3.0 ⑨ GTH

总线连接图

SOC内部总线具有监控和隔离功能.

SOC启动图

上电先完成PMU与CSU硬件启动,然后完成FSBL软件启动,FSBL可运行在A0核或者R0核。

PS和PL的互联技术

ZYNQ作为高性能ARM Cortex-A53 高性能的系列处理器FPGA在单芯片内紧密结合的产品,为了实现ARM处理器和FPGA高速性能处理器与FPGA互联通道。因此,如何设计高效PL与PS数据交互通道是ZYNQ芯片设计的重中之重,也是产品设计成败的关键之一。

AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的界面协议主要描述了主设备与设备之间的数据传输。AMBA(Advanced Microcontroller Bus Architecture)的一个部分,是一种高性能、高带宽、低延迟的片内总线,也用来替代以前的AHB和APB总线。 AXI协议主要描述了主设备与设备之间的数据传输方式,主设备与设备之间通过握手信号建立连接。当设备准备接收数据时,会发出READY信号。准备好主设备的数据时,会发出和维护VALID表示数据有效的信号。数据只有在VALID和READY当信号有效时,就开始传输。当这两个信号继续有效时,主设备将继续传输下一个数据。主设备可以撤销VALID或从设备中撤销信号READY信号终止传输。 ZYNQ中,支持AXI-Lite,AXI4 和AXI-stream三种总线。 AXI4-Lite: 它具有重量级轻、结构简单的特点,适用于小批量数据和简单控制场合。不支持批量传输,读写时只能读写一个字(32bit)。主要用于控制一些低速外设和外设。 AXI4: 接口和AXI-Lite几乎,只增加了一个功能,即批量传输,可以连续读写一个地址。也就是说,有数据读写burst功能。 AXI4-Stream: 这是一种连续流接口,不需要地址线(很像FIFO,一直读或写)。对于这种。IP,ARM上述内存映射无法控制(FIFO没有地址的概念),必须有一个转换装置,比如AXI-DMA将内存映射转换为流式接口的模块。

S_AXI_HP{0:3}_FPD高性能/带宽接口AXI总共有四个标准接口,PL主设备连接模块。PL访问PS上的存储器(DDR和FPDMain Switch)。 S_AXI_LPD接口,高性能端口,连接PL到LPD。低延迟访问OCM和TCM,访问PS端DDR。 S_AXI_HPC{0,1}_FPD接口,连接PL到FPD,可连接到CCI,访问L1和L2Cache,由于通过CCI,访问DDR控制器延迟较大。 M_AXI_HPM{0,1}_FPD接口,高性能总线,PS为master,连接FPD到PL,可用于CPU, DMA, PCIe等从PS将大量数据推到PL。 M_AXI_HPM0_LPD接口,低延迟接口总线,PS为master,连接LPD到PL,可直接访问PL端的BRAM,DDR也常用于配置PL终端寄存器。 只有M_AXI_HPM{0,1}_FPD和M_AXI_HPM0_LPD是Master Port,即主机接口,其余为Slave Port(从机接口)。主机接口有权启动读写,ARM可主动访问两个主机接口PL逻辑,其实就是把PL映射到某个地址,读写PL寄存器就像读写自己的存储器。其他从机接口属于被动接口PL读写,逆来顺受。在PS与PL互联网应用最常用的接口是S_AXI_HP{0:3}_FPD、M_AXI_HPM{0,1}_FPD和M_AXI_HPM0_LPD。 AXI严格地说,该协议是一个点对点的主接口协议。当多个外设需要相互交互数据时,我们需要添加一个AXI interconnect IP也就是模块AXI作用是提供一个或多个互联矩阵AXI主设备连接到一个或多个AXI从设备的交换机制出发。 AXI Interconnect基本连接模式如下: 1.多对一的情况 2.一对多的情况 3.多读多写地址通道 4.多对多读写数据通道

ZYNQ的内部AXI接口设备通过互联矩阵互联,既保证了传输数据的效率,又保证了连接的灵活性。

ZYNQ芯片开发过程

由于ZYNQ将CPU与FPGA集成在一起,开发人员需要设计ARM还需要设计操作系统应用程序和设备驱动程序FPGA硬件逻辑设计的一部分。既要了解开发Linux还需要构建操作系统和系统框架FPGA和ARM硬件设计平台之间的系统。所以ZYNQ开发需要软件人员和硬件人员的协同设计和开发。这既是ZYNQ所谓开发"软硬件协同设计。 Vivado实现设计套件FPGA部分设计开发、管脚和时间限制、编译和模拟,实现RTL比特流的设计过程。 Xilinx SDK(Software Development Kit),SDK是Xilinx软件开发套件(SDK),在Vivado在硬件系统的基础上,包括工具和库路径、编译选项、JTAG与闪存设置,调试器已连接到裸机板支撑包(BSP)。SDK所有的支持Xilinx IP硬核提供驱动程序。SDK支持IP硬核(FPGA我们可以使用高级C或处理器软件进行协同调试C 开发和调试语言ARM和FPGA测试硬件系统是否正常工作。 ZYNQ开发也是软件前硬件的方法。具体流程如下:

  1. ,添加嵌入式源文件;
  2. 在Vivado 添加和配置PS和PL一些基本外设,或需要添加自定义外设; 
  3. 在Vivado里生成顶层HDL并添加约束文件。再编译生成比特流文件(*.bit);
  4. 导出硬件信息到SDK软件开发环境,在SDK一些调试软件验证硬件和软件可以在环境中编写,结合比特流文件单独调试ZYNQ系统;
  5. 在SDK里生成FSBL文件;
  6. 在sdk里通过FSBL文件,比特流文件system.bit和u-boot.elf生成一个文件BOOT.bin文件;

ZYNQ固化过程

普通的FPGA一般是从flash启动,或被动加载,ZYNQ的启动是由ARM主导,包括FPGA加载程序,ZYNQ MPSoc启动通常有三个步骤: Pre-configuration stage:预加载阶段由PMU控制,执行PMU ROM中间的代码设置系统。PMU处理所有复位和唤醒过程。 Configuration stage :下一步最重要的一步,当BootRom(CSU ROM代码的一部分)处理FSBL到OCM之后,处理器开始执行FSBL代码,FSBL主要有以下功能:

  1. 初始化PS端配置,MIO,PLL,DDR,QSPI,SD等
  2. 如果有PL端程序,加载PL端bitstream
  3. 处理用户程序到ddr,并执行跳转执行 Post-configuration stage:FSBL开始执行后,CSU ROM代码进入Post-configuration负责系统干预响应,CSU为验文件正确性、通过PCAP加载PL、存储管理安全密钥、解密等提供持续的硬件支持。 第一个文件一定是BootLoader,就是fsbl.elf;第二个文件就是FPGA的配置文件,bitstream;第三个程序就是应用程序。

标签: interface传感器mb

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台