购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 Zynq-7000 SoC的功能和结构

本节对Zynq-7000 SoC的功能和结构进行概述,以帮助读者从整体上把握基于Zynq-7000的全可编程SoC提供的功能。

1.3.1 Zynq-7000 SoC产品的分类及资源

Zynq-7000 SoC产品的分类及资源如表1.4所示。

表1.4 Zynq-7000 SoC产品的分类及资源

续表

1.3.2 Zynq-7000 SoC的功能

Zynq-7000系列基于Xilinx公司全可编程的可扩展处理平台(Extensible Processing Platform,EPP)结构,该结构在单个芯片内集成了基于Arm公司的Arm Cortex-A9多核处理器的处理系统(Processing System,PS)和基于Xilinx公司可编程逻辑资源的可编程逻辑(Programmable Logic,PL)系统,如图1.3所示。同时,该结构基于最新的高性能低功耗(High Performance Low Power,HPL)的28nm、高K金属栅极(High-K Metal Gate,HKMG)工艺,这就保证了该器件在高性能运行的同时,具有比同类Cortex-A9双核处理器更低的功耗。

图1.3 Zynq-7000 SoC的内部结构

在该全可编程SoC内,两个Arm Cortex-A9多核CPU是PS的心脏,它包含片上存储器、外部存储器接口和具有丰富功能的外设。

与传统的FPGA和SoC相比,Zynq-7000 SoC不但提供了FPGA的灵活性和可扩展性,而且提供了与ASIC和专用标准产品(Application-Specific Standard Product,ASSP)相关的性能、功耗、易用性。Zynq-7000 SoC使得设计人员能够使用工业标准工具在单个平台上实现高性能和低成本的应用。可扩展处理平台中的每个芯片都包含了相同的PS,不同芯片包含的PL和I/O资源是不同的。基于Zynq-7000的硬件平台可以应用在很多领域,包括汽车驾驶员辅助系统、驾驶员信息系统和娱乐系统,广播级的摄像机,工业电机控制、工业组网和机器视觉,IP和智能相机,LTE的无线和基带,医疗诊断和成像,多功能打印机,视频和夜视装备。

Zynq-7000 SoC结构便于将定制逻辑和软件分别映射到PL与PS中,这样就可实现独一无二的系统功能。带有PL的PS可扩展处理平台的系统集成提供了两个芯片(如ASSP和FPGA)由于I/O带宽、松散耦合和功耗预算而不能达到的性能。

与传统配置FPGA的方法不同的是,Zynq-7000 SoC总是最先启动PS内的处理器,这样就允许PS上运行的软件程序用于启动系统并配置PL。这样,可以将配置PL的过程设置成启动过程的一部分或在将来的某个时间单独配置PL。此外,这样还可以实现PL的完全重配置或部分可重配置(Partional Reconfiguration,PR)。

注:部分可重配置允许动态地重新配置PL中的某一部分,这样能够对设计进行动态修改。

1.3.3 Zynq-7000 SoC内的PS的构成

本节对处理器系统内的各个模块进行简单介绍,用于帮助读者了解PS可以实现的功能。

1.应用处理器单元(APU)

应用处理器单元提供了大量的高性能特性和兼容标准Arm处理器的能力,主要表现在以下几方面。

(1)两个Arm Cortex-A9多核CPU(Armv7)。

(2)实时运行选项,允许单个处理器,以及对称或非对称的多处理(Symmetrical Multi-Processing,SMP)配置。

(3)Armv7 ISA,提供标准的Arm指令和Thumb-2指令,以及Jazelle RTC和Jazelle DBX JAVA加速功能。

(4)每个Cortex-A9 CPU都有独立的NEON,可以实现128位SIMD协处理器和VFPv3。

(5)每个Cortex-A9 CPU都包含带有校验功能的32KB L1指令高速缓存和32KB L1数据高速缓存。

(6)双核Cortex-A9共享带有校验功能的512KB L2高速缓存。

(7)每个Cortex-A9都有私有看门狗定时器和定时器。

(8)系统级的控制寄存器(System-Level Control Registers,SLCRs)。这是一组不同的控制器,用来控制PS的行为。

(9)侦听控制单元(Snoop Control Unit,SCU),包含了L1高速缓存和L2高速缓存的一致性要求。

(10)从PL(主设备)到PS(从设备)的加速器一致性端口(Accelerator Coherency Port,ACP)。

(11)提供带有校验功能的256KB片上存储器OCM,它提供了两个访问端口。Zynq-7000 SoC内的Cortex-A9处理器、PL及中央互联均可访问OCM。与PS内的L2高速缓存处于同一层次,但没有提供缓存能力。

(12)PS内提供的64位高级可扩展接口(Advanced Extended Interface,AXI)的从端口,提供了访问L2高速缓存和OCM的能力,以及保证了在数据交易时与L1和L2高速缓存的数据一致性。

(13)DMA控制器。其中4个通道用于PS,实现存储器与系统内任何存储器的数据交换;另外4个通道用于PL,实现存储器到PL及PL到存储器的数据交换。

(14)通用的中断控制器(General Interrupt Controller,GIC)。它们有各自独立的中断屏蔽和中断优先级。其中包含5个CPU私有外设中断(Private Peripheral Interrupt,PPI)、16个CPU软件中断(Software Generated Interrupt,SGI),以及分配来自系统、PS和PL剩余部分的共享外设中断(Shared Peripheral Interrupt,SPI)(其中20个来自PL)。

此外,APU支持由CPU发送到PL的等待中断(Wait For Interrupt,WFI)和等待事件(Wait For Event,WFE)信号,以及扩展的安全特性支持TrustZone技术。

2.存储器接口

存储器接口提供对不同存储器类型的支持。

1)DDR控制器

(1)支持DDR3、DDR2、LPDDR-2类型的存储器,由芯片的速度和温度等级决定其工作速度。

(2)提供16/32位数据宽度。

(3)支持16位ECC。

(4)使用最多73个专用的PS引脚。

(5)模块(不是DIMM)。对32位数据宽度来说,可选配置包括4×8位、2×16位、1×32位;对16位数据宽度来说,可选配置包括2×8位、1×16位。

(6)根据可配置的空闲周期,自动进入DDR低功耗状态及自动退出DDR低功耗状态。

(7)数据读选通自动标定。

(8)写数据字节使能支持每拍数据。

(9)使用高优先级读(High Priority Read,HPR)队列的低延迟读机制。

(10)支持发送给每个端口的特殊紧急信号。

(11)在64MB边界上可编程TrustZone区域。

(12)对两个不同的ID来说,每个端口都提供了互斥的访问能力,但不支持锁定交易功能。

2)四-SPI控制器

(1)提供连接1个或2个SPI设备的能力。

(2)支持1位和2位数据宽度的读操作。

(3)用于I/O模块100MHz的32位APB 3.0接口,允许包括编程、读和配置的全设备操作。

(4)100MHz 32位AXI线性地址映射接口用于读操作。

(5)支持单个芯片选择线。

(6)支持写保护信号。

(7)提供可用的4位双向I/O信号线。

(8)支持读速度为×1、×2和×4,写速度为×1和×4。

(9)主模式下最高的SPI时钟频率可以达到100MHz。

(10)252字节入口FIFO深度,用于提高四-SPI读效率。

(11)支持四-SPI芯片的存储容量最大为128MB。

(12)支持双四-SPI芯片(并列的两个四-SPI芯片)。

3)静态存储器控制器(Static Memory Controller,SMC)

SMC提供了对NAND存储器和并行SRAM/NOR存储器的读/写控制功能。

(1)对NAND存储器控制器来说,它提供了以下功能:支持8/16位的I/O数据宽度,提供一个片选信号,支持ONFI规范1.0,提供16个字读和16个字写数据FIFO的能力,提供8字命令FIFO,用户可通过配置界面修改I/O周期的时序,提供ECC辅助功能,支持异步存储器工作模式。

(2)对并行SRAM/NOR控制器来说,它提供了以下功能:支持8位数据宽度,以及最多25位地址信号;提供两个片选信号;提供16个字读和16个字写数据FIFO的能力;提供8字命令FIFO;对于每个存储器,都提供用户可配置的可编程I/O周期时序;支持异步存储器操作模式。

3.I/O外设

Zynq-7000 SoC的PS提供了用于满足不同要求的I/O接口。

1)GPIO

(1)PS提供了54个可用的GPIO信号。通过复用I/O模块MIO将这些信号连接到Zynq-7000 SoC芯片的外部引脚,并且可以通过软件程序控制这些信号的三态使能功能。

(2)通过扩展的复用I/O模块EMIO可以将PS内的GPIO信号引入Zynq-7000 SoC内的PL单元,支持最多192个GPIO信号,其中,64个为输入信号,另外128个为输出信号。

(3)可以基于单个或组对每个GPIO的功能进行动态编程,即实现使能、按位或分组写数据,以及输出使能和方向控制。

(4)根据每个GPIO所配置的中断能力,支持读取中断的状态;支持在上升沿、下降沿、任意边沿、高电平或低电平处产生中断信号。

2)两个三模式以太网控制器

(1)在RGMII模式下,使用MIO引脚和外部的PHY。

(2)额外的接口使用PL内带有额外软核的PL SelectIO和外部的PHY。

(3)在SGMII模式下,使用Zynq-7000 SoC芯片的PL内的GTX收发器模块。

(4)提供可以实现分散-聚集功能的DMA控制器。

(5)支持IEEE 802.3和IEEE 1588 V2.0协议。

(6)支持唤醒功能。

3)两个USB控制器

(1)使用相同硬件的USB 2.0高速OTG(On The Go)实现双重角色USB主机控制器或USB设备控制器操作。

(2)只提供MIO引脚。

(3)内建DMA控制器。

(4)支持USB 2.0高速设备。

(5)可作为USB 2.0高速主机控制器。它提供的寄存器和数据结构遵循扩展主机控制器接口(Enhanced Host Controller Interface,EHCI)规范。

(6)支持USB收发器低引脚数接口(UTMI Low Pin Interface,ULPI)。ULPI支持8位。

(7)要求使用外部的PHY。

(8)支持最多12个端点。

4)两个SD/SDIO控制器

(1)可以作为Zynq-7000 SoC基本的启动设备。

(2)内建DMA控制器。

(3)只支持主模式。

(4)支持SD规范2.0。

(5)支持全速和低速设备。

(6)支持1位和4位数据接口。

(7)支持低速时钟范围(0~400kHz)。

(8)支持高速接口。全速时钟的频率为0~50MHz,最高吞吐量为25MB/s。

(9)支持存储器、I/O和组合卡。

(10)支持电源控制模式。

(11)支持中断。

(12)1KB数据FIFO接口。

5)两个SPI控制器

(1)提供4根信号线,即MOSI、MISO、SCLK、SS。

(2)支持全双工模式,该模式具有同时接收和发送数据的能力。

(3)在主机模式下,支持以下功能:手工或自动开始数据传输,手工或自动从设备选择SS模式,支持最多3根从设备选择线,允许使用外部3-8译码选择设备,软件可控制的发送延迟。

(4)在从模式下,软件可配置开始检测模式。

(5)在多个主设备的环境下,如果没有使能,则驱动为三态;如果检测到多个主设备,则识别出一个错误条件。

(6)通过MIO模块,该控制器支持最高50MHz的外部SPI时钟。当通过EMIO到PL的SelectIO引脚时,支持最高25MHz的时钟频率。

(7)可选择所使用的主时钟。

(8)支持可编程的主波特率分频器。

(9)支持独立的128B的读FIFO和128B的写FIFO,每个FIFO的宽度为8B。

(10)具有软件程序可控制的FIFO门槛。

(11)支持可编程的时钟相位和极性。

(12)作为驱动中断设备时,软件能轮询状态或功能。

(13)可编程产生中断。

6)两个CAN控制器

(1)遵守ISO 11898-1、CAN2.0A和CAN2.0B标准。

(2)支持标准(11位标识符)帧和扩展(29位标识符)帧。

(3)支持的最高速度为1Mbit/s。

(4)带有64个消息深度的发送消息FIFO。

(5)发送优先级贯穿一个高优先级发送缓冲区。

(6)Tx FIFO和Rx FIFO支持水印中断。

(7)在普通模式下,当出现错误或丢失仲裁时,自动重新发送。

(8)可保存64个消息深度的接收消息FIFO。

(9)提供最多4个接收滤波器,用于对接收消息进行过滤。

(10)支持带有自动唤醒功能的休眠模式。

(11)支持侦听模式。

(12)提供闭环模式,用于诊断应用。

(13)使能可屏蔽的错误和状态中断。

(14)用于接收消息的16位时间戳。

(15)可读的错误计数器。

7)两个UART控制器

(1)可编程的波特率发生器。

(2)提供最多64B的接收和发送FIFO。

(3)可选择的6、7或8个数据位。

(4)可选择的1、1.5或2个停止位。

(5)可选择的奇、偶、空格、标记或无奇偶校验。

(6)可选择的奇、偶、帧和溢出错误检测。

(7)支持换行符生成和检测功能。

(8)支持自动呼应、本地环路和远程环路通道模式。

(9)支持产生中断。

(10)支持通过MIO和EMIO模块提供Rx与Tx信号。

(11)通过EMIO模块,可以提供CTS、RTS、DSR、DTR、RI和DCD等调制解调器控制信号。

8)两个I2C控制器

(1)支持16B FIFO。

(2)支持I2C总线规范V2。

(3)支持可程序控制的普通/快速总线数据传输速率。

(4)支持主设备模式。在该模式下,支持写传输、读传输、地址扩展,以及用于慢速处理器服务的HOLD。

(5)支持从设备监控程序模式。

(6)支持从设备模式。在该模式下,支持从设备发送器和从设备接收器、地址扩展、软件可编程的从设备响应地址。

(7)支持HOLD,防止溢出条件。

(8)支持TO中断标志,避免停止条件。

(9)作为中断驱动设备时,软件能轮询状态或功能。

(10)可通过软件控制产生中断。

9)PS一侧的MIO引脚(总共54个)

(1)这54个引脚分成两组:第0组包括16个引脚,引脚范围为0~15;第1组包括38个引脚,引脚范围为16~53。

(2)通过配置可以选择支持LVTTL 3.3V、LVCMOS 3.3V、LVCMOS 2.5V、LVCMOS 1.8V或HSTL 1.8V标准。

注:由于MIO引脚的个数为54,因此以上这些I/O外设不能同时有效,这在后面的设计中将详细说明。

1.3.4 Zynq-7000 SoC内的PL的构成

PL提供了用户可配置的丰富结构。

1)可配置逻辑块(Configurable Logic Block,CLB)资源

(1)6输入查找表(Look-UP Table,LUT)。

(2)具有LUT内的存储器能力。

(3)具有寄存器和移位寄存器功能。

(4)支持级联的加法器。

2)36KB容量的BRAM资源

(1)提供双端口访问能力。

(2)支持最多72位数据宽度。

(3)可配置为双端口18KB的存储器。

(4)具有可编程的FIFO逻辑。

(5)内建错误校准电路。

3)数字信号处理DSP48 E1资源

(1)提供25×18(单位为位)宽度的二进制补码乘法器/累加器,可以实现高达48位的高分辨率信号处理器功能。

(2)提供25位的预加法器,用于降低功耗及优化对称滤波器应用。

(3)提供高级特性,用于可选的可级联流水线,以及可选的ALU和专用总线。

4)时钟管理单元

(1)用于低抖动时钟分布的高速缓冲区和布线。

(2)支持频率合成及相位移动。

(3)支持低抖动时钟生成和抖动过滤。

5)可配置的I/O资源

(1)支持高性能的SelectIO技术。

(2)封装内提供高频去耦合电路,用于扩展信号的完整性。

(3)数字控制的阻抗DCI能处于三态,用于最低的功耗和高速I/O操作。其中,高范围(High Range,HR)I/O支持的电压范围为1.2~3.3V,高性能(High Performance,HP)I/O支持的电压范围为1.2~1.8V(仅对Z-7030和Z-7045芯片有效)。

6)低功耗的吉比特收发器(仅Z-7030和Z-7045芯片存在)

(1)具有高性能收发器,其速率最高达到12.5Gbit/s(GTX)。

(2)具有低功耗模式,用于芯片和芯片的连接。

(3)提供高级发送预加重和后加重能力,接收器线性(CTLE)和判决反馈均衡(Decision Feedback Equalization,DFE)包含自适应均衡,用于额外的裕量。

7)模拟到数字的转换器(XADC)

(1)具有两个12位的ADC,采样速率高达1MSPS。

(2)提供最多17个用户可配置的模拟输入端口。

(3)用户可以选择片上或外部参考源。

(4)提供用于检测温度的片上温度传感器,最大误差为±4℃。

(5)提供用于检测芯片各个供电电压的电源供电传感器,最大误差为±1%。

(6)JTAG连续地访问ADC的测量结果。

8)用于PCI-E设计的集成接口模块(仅Z-7030和Z-7045芯片可用)

(1)兼容PCI-E基本规范2.1,提供端点和根端口能力。

(2)支持Gen1(2.5Gbit/s)和Gen2(5.0Gbit/s)速度。

(3)提供高级配置选项、高级错误报告(Advanced Error Report,AER)、端到端的CRC(End-to-End CRC,ECRC)高级错误报告及ECRC特性。

1.3.5 Zynq-7000 SoC内的互联结构

Zynq-7000 SoC内的互联结构用于实现Zynq-7000 SoC的PS内各个功能模块的连接,以及PS和PL的连接。

1.PS内模块的互联

在PS内,用于连接各个功能模块的互联单元主要包含OCM互联单元和中央互联单元。

1)OCM互联单元

(1)提供来自中央互联单元和PL的访问,用于对256KB OCM进行访问。

(2)CPU和ACP接口。当通过SCU访问OCM时,有最低的延迟。

2)中央互联单元

(1)中央互联单元为64位数据宽度,通过它可以将I/O端口和DMA控制器连接到DDR控制器与OCM。此外,它还可以连接到用于互联PL的AXI_GP接口。

(2)用于连接以太网、USB和SD/SDIO控制器内的本地DMA单元。

(3)用于将PS内的主设备与I/O端口连接在一起。

2.PS-PL接口

PS-PL接口提供了可用于PL内定制外设的所有可用信号。通过PS-PL接口可以实现PL内定制的外设(也称IP核)与PS内的Cortex-A9双核处理器及相关资源的连接。

在PS和PL之间提供了两种类型的接口:功能接口、配置信号接口。

1)功能接口

功能接口包含AXI互联,用于大多数I/O外设、中断、DMA流控制、时钟和调试接口的EMIO。这些信号可用于连接PL内用户设计的IP模块。PL AXI接口基于AXI3的接口规范,如AXI-GP、AXI-HP和AXI-ACP,每个接口都由多个AXI通道构成。PL AXI接口如表1.5所示。下面对这些接口进行详细说明。

表1.5 PL AXI接口

续表

注:对Zynq-7000 SoC内各个功能模块的描述是从PS的角度出发的。例如,PS上的一个到PL的通用从接口表示主设备为PL。一个高性能的从接口表示高性能的主设备位于PL中。一个通用的主接口表示PS是主设备,从设备位于PL中。

(1)AXI_ACP接口,它是PL内的一个64位高速缓存一致性主端口。

(2)ACI_HP,它是PL内的4个高性能/带宽主设备端口,其主要特性如下。

①支持32/64位数据宽度的主设备接口。

②在32位从接口配置模式下,高效地调整数据宽度及扩展到64位数据宽度,用于实现非对齐的32位数据传输。

③通过AxCACHE[1]动态地实现在32位和64位接口之间数据宽度的转换。

④分开的R/W可编程发布能力,用于读和写命令。

⑤在PS和PL之间,提供异步时钟穿越所有AXI接口的能力。

⑥对于读和写操作,提供1KB(128×64位)容量的数据FIFO,用于消除高延迟传输。

⑦可选择使用来自PL端口的QoS信号。

⑧对命令FIFO和数据FIFO的填充计数值可用于PL内定制的外设。

⑨支持标准的AXI3.0接口。

⑩在14~70个命令(根据猝发长度)范围内,从接口可以接受更多的读操作。

⑪在8~32个命令(根据猝发长度)范围内,从接口可以接受更多的写操作。

(3)AXI_GP,提供4个通用端口。

①包含两个32位的主接口和两个32位的从接口。

②在PS和PL之间,异步时钟域可以穿越所有AXI接口。

③支持标准的AXI3.0接口。

(4)AXI_ACP,提供64位的从接口。

它连接到SCU,用于实现CPU和PL之间的高速缓存一致性。

2)配置信号接口

配置信号接口包含处理器配置访问端口(Processor Configuration Access Port,PCAP)、配置状态、单个事件翻转(Single Event Upset,SEU)和Program/Done/Init(编程/完成/初始化)。在PL配置块内的这些信号连接到固定的信号,用于PS控制。

1.3.6 Zynq-7000 SoC的供电引脚

PS和PL的供电是相互独立的。然而,需要强调的是,在给PL供电以前,必须先给PS供电。Zynq-7000 SoC内的信号、接口和引脚如图1.4所示,表1.6列出了Zynq-7000 SoC供电引脚的正常电压和描述。

图1.4 Zynq-7000 SoC内的信号、接口和引脚

表1.6 Zynq-7000 SoC供电引脚的正常电压和描述

1.3.7 Zynq-7000 SoC内MIO到EMIO的连接

MIO是连接I/O外设的基础。在Zynq-7000 SoC内,前面提到,MIO引脚的个数是有限的,总共有54个。通过配置,可以将I/O信号连接到MIO引脚。此外,通过EMIO接口,可以将PS内的I/O外设连接到PL中(包含PL一侧的引脚)。如图1.5所示,允许PS内的I/O外设控制器与PL内的用户定制逻辑相连接,这对于访问更多的器件引脚(PL引脚)是非常有用的。

图1.5 MIO到EMIO的连接

I/O外设控制器的I/O多路复用信号是不同的,即一些I/O接口信号仅能使用MIO引脚,而不能使用EMIO接口,即这些I/O接口信号不能通过EMIO接口引入PL。

注:PS内的USB接口信号、四-SPI接口信号和SMC接口信号不能通过EMIO接口引入PL。

在Zynq-7000 SoC中,绝大多数I/O接口的引脚可以使用MIO引脚或EMIO接口,而一些接口信号仅可以通过EMIO接口来访问。I/O外设MIO-EMIO接口布线如表1.7所示。

表1.7 I/O外设MIO-EMIO接口布线

续表

通过MIO,I/O外设的端口映射可以出现在不同位置,如图1.6所示。使用来自多个端口的映射信号能实现对每个信号的布线,甚至可以通过EMIO接口将PS引脚和PL引脚进行混合来构建信号。

图1.6 I/O系统的结构

除千兆以太网外,大多数外设在MIO和EMIO之间保持相同的功能。对PS内的千兆以太网控制器来说,为了减少所使用引脚的个数,当它工作在RGMII模式时,使用4位MIO引脚,其速率为250MHz;当它工作在GMII模式时,使用8位的EMIO引脚,其速率为125MHz。在通过EMIO的8个引脚实现数据交换前,必须通过LVL_SHFTR_EN使能PL电平转换器。

在互联端,USB、以太网和SDIO外设连接到中央互联单元,用于为6个DMA通道提供服务。通过PS内提供的AHB互联接口,软件程序可以访问从模式下的四-SPI外设和SMC外设。此外,通过PS内提供的APB互联接口,软件程序还可以访问GPIO、SPI、CAN、UART和I2C从控制器。除SDIO控制器(有两个AHB接口)外,通过APB互联接口,软件程序可以访问所有控制寄存器和状态寄存器。上述访问方法是为了在每个控制器接口所需的带宽之间进行权衡。

注:AHB和APB是ARM AMBA规范的一部分,相关内容将在本书第2章进行详细介绍。

PS内的外设可分配的MIO引脚图如图1.7所示,给出了设计人员在MIO的54个引脚上为PS内的外设分配引脚时的快速分配参考。

图1.7 PS内的外设可分配的MIO引脚图

注:设计人员在为PS一侧的外设分配可用的MIO引脚时,必须遵循这些规则;否则会出现MIO分配错误,以及PCB设计错误。

1.MIO引脚分配需要考虑的因素

通常,给每个引脚分配一个功能。但是下面要讨论一些例外的情况。当使用EMIO作为布线的另一个选择时,PS内外设的最高时钟频率将降低。

注:Zynq-7000 SoC数据手册给出了使用MIO的每个接口时钟频率。

1)两个MIO电压组

将MIO引脚分割成两个独立配置的I/O缓冲区集合。

(1)第0组(Bank0),引脚范围为MIO[15:0]。

(2)第1组(Bank1),引脚范围为MIO[53:16]。

注:通过配置界面,用户可以设置每个引脚的工作电压,可选的配置为1.8V、2.5V或3.3V。

2)启动模式引脚

用于设置启动模式的MIO引脚可以分配给PS内的I/O外设使用。在可用的MIO引脚中,引脚MIO[8:2]用于确定启动Zynq-7000 SoC的外设,使能/旁路PLL时钟,确定MIO组使用的电压模式。

当释放PS_POR_B复位信号后,Zynq-7000 SoC将对启动模式引脚采样PS_CLK个周期,用于确定Zynq-7000 SoC的启动模式。

注:在设计PCB时,使用20kΩ的上拉或下拉电阻将这些信号连接到VCC或GND。

3)I/O缓冲区输出使能控制

由MIO_PIN[TRI_ENABLE]寄存器位控制每个MIO I/O缓冲区的输出使能,以及MIO_MST_TRI寄存器中的位选择信号类型(输入或不是)。当满足下面的条件时,使能输出MIO_PIN_xx[TRI_ENABLE]=0,MIO_MST_TRIx[PIN_xx_TRI]=0,并且信号为输出或I/O外设希望驱动一个I/O信号。

4)选择从SDIO设备启动Zynq-7000 SoC

当选择从SDIO设备启动Zynq-7000 SoC时,BootROM希望将外部的SDIO设备(如MICRO SD/Mini SD卡)通过SD卡卡槽连接到Zynq-7000 SoC器件的MIO[40:45]引脚。

注:MIO[40:45]引脚分配给SDIO 0外设。

5)静态存储器控制器(SMC)接口

在使用Zynq-7000 SoC实现嵌入式系统设计时,PS一侧的MIO只提供一个SMC接口。这是由于SMC会消耗大量的MIO引脚,并且Zynq-7000 SoC不提供将SMC接口信号通过EMIO引入PL的功能。

在基于Zynq-7000 SoC的嵌入式系统设计中,当使用MIO为SMC分配引脚实现连接外部一个8位的NAND Flash时,由于占用了Zynq-7000 SoC为四-SPI控制器分配的MIO引脚,因此在该设计中,不可以使用PS内的四-SPI控制器,并且测试端口限制为8位。如果要实现一个16位的NAND Flash,则需要消耗额外的引脚,不可以使用以太网0。SRAM/NOR接口消耗了大约70%的MIO引脚。

注:(1)在通过MIO连接外部SRAM/NOR时,可选择使用Busy信号和高地址位。

(2)当使用SMC接口连接外部SRAM时,MIO为其分配的信号引脚将跨越两个MIO电压组。

6)四-SPI接口

如果在基于Zynq-7000 SoC的嵌入式系统设计中使用了PS内的四-SPI子系统,则必须使用引脚较少的存储器四-SPI接口(QSPI_0);另一个SPI接口(QSPI_1)是可选的,四-SPI接口用于两个存储器的布局(并行或堆叠)。

注:在Zynq-7000 SoC的嵌入式系统设计中,不要单独使用QSPI_1。

7)MIO[8:7]引脚

MIO[8:7]引脚只能用于输出。GPIO通道7和通道8只能配置为输出通道。

注:读者在自己设计Zynq-7000 SoC系统时,务必注意上面MIO引脚分配的一些限制条件。

2.MIO信号的布线连接

MIO_PIN_[53:0]配置寄存器用于控制MIO内的信号连接。在Zynq-7000 SoC中使用4级复用,用于控制MIO到MIO的各个I/O信号。MIO信号的布线连接如图1.8所示。高速数据信号(如用于吉比特以太网的RGMII和用于USB的ULP1)只通过1级复用,而低速信号线(如UART和I2C)则可以通过4级复用。

图1.8 MIO信号的布线连接

由MIO_PIN寄存器内的每个比特位独立控制每个MIO引脚的布线。

1.3.8 Zynq-7000 SoC内为PL分配的信号

PL接口组在PS和PL之间包含其他接口。一个输入是由PL驱动的,一个输出是由PS驱动的。信号可能带有后缀,后缀“N”表示低有效信号,后缀“TN”表示低三态使能信号,用于连接到PL的输出。连接到PL的输出信号总是处于逻辑高电平或逻辑低电平状态。

1.时钟

在Zynq-7000 SoC内,PS内的时钟模块可以为Zynq-7000 SoC内的PL提供4个时钟——FCLK[3:0],这4个时钟的频率可以通过配置界面进行修改。由于这4个时钟由PS引到PL中,因此可将FCLK连接到PL时钟缓冲区,作为PL内定制外设的时钟源。

注:这4个时钟之间并不保证确定的时序和相位关系。

2.复位

在Zynq-7000 SoC内,PS中的复位模块可以为PL提供4个复位信号——FCLKRESETN [3:0],这4个复位信号的属性可以通过配置界面进行修改。

注:这些信号和FCLK是异步的,通过写slcr.FPGA_RST_CTRL SLCR[FPGA [3:0]_OUT_RST]位进行控制。

3.中断信号

前面提到,在Zynq-7000 SoC内,来自PS的外设可以连接到PL,与FCLK为异步关系。Zynq-7000 SoC的PL可以为PS提供最多20个中断。

(1)16个中断映射到中断控制器作为一个外设中断,为这个中断设置优先级,并映射到PS内的一个或两个Cortex-A9处理器。

(2)剩余4个中断被翻转,并且直接连接到nFIQ和nIRQ,这些中断被连接到中断控制器的私有外设中断(Private Peripheral Interrupt,PPI)单元。Zynq-7000 SoC内的每个CPU都有自己的nFIQ和nIRQ。PS到PL的中断和PL到PS的中断如表1.8所示。

表1.8 PS到PL的中断和PL到PS的中断

4.事件信号

PL支持来自PS或到PS的处理器事件,如表1.9所示。这些信号与PS和FCLK是异步关系。

表1.9 PL事件信号

5.PL空闲AXI、DDR Urgent/Arb、SRAM中断信号

连接到PS内的PL空闲AXI信号用来说明目前在PL内没有活动的AXI交易,该信号由Zynq-7000 SoC内的PL一侧驱动,这个信号是其中的一个条件。当确认所有PL内的总线设备当前为空闲状态时,就会使能关闭PS内的总线时钟,用于降低系统功耗。

DDR Urgent/Arb信号用来发送一个紧急的存储器饥饿条件信号给DDR仲裁,该仲裁用于PS DDR控制器的4个AXI接口,如表1.10所示。

表1.10 PL空闲AXI、DDR Urgent/Arb、SRAM中断信号

6.DMA Req/Ack信号

通过M_AXI_GP接口,这里有4套用于DMA控制器的流控制信号,用于连接最多4个PL从设备。这4套流控制信号对应DMA通道4到DMA通道7,如表1.11所示。

表1.11 PL DMA信号 aUuqY1yTKatzg5O0Q8aw0N1rLP4RSa4+pUf8KGIpHUAEFJP7x8J4+EQErxHg/vdT

点击中间区域
呼出菜单
上一章
目录
下一章
×