基于Zynq的图形生成电路设计与实现
扫描二维码
随时随地手机看文章
导读: 为了适应机载液晶显示器向低功耗、高集成度发展的趋势,提出了一种基于Zynq可扩展处理平台的图形生成电路实现方法。
摘要:为了适应机载液晶显示器向低功耗、高集成度发展的趋势,提出了一种基于Zynq可扩展处理平台的图形生成电路实现方法。方法以Zynq为核心搭建硬件平台,使用Zynq集成的ARM 处理器执行图形生成算法运算,配合可编程逻辑资源,按照一种三缓冲机制对DDR3SDRAM 帧存数据进行缓冲处理,实现图形的实时生成.采用本设计可以生成多种分辨率的机载图形画面.实验结果表明,当生成分辨率为1024×768的EFIS电子飞行显示系统画面时,帧率可达74fps,能够满足机载液晶显示器高性能实时显示需求。
1 引言
在飞机座舱显示系统中图形显示占据重要地位[1].主显示器尺寸不断加大,分辨率不断提高,并日益朝着大屏幕化、综合化、信息化和智能化方向发展[2].随着分辨率的提高,要显示的信息量也大幅增加,座舱图形综合显示系统是一个对实时性要求很高的系统[3],军用飞机在做战术动作时,画面变换速度快,要求图形的更新速度也必须很快,至少要比帧或场的刷新速度快,才可以避免画面的断续[4G5].采用DSP+FPGA 的图形硬件加速架构,或者使用专用GPU 图形生成芯片,都可以生成高分辨的机载显示器图形,但随之而来的是产品成本的急剧增加以及功耗的不断上升[6].为机载图形显示系统配置更合理的硬件设计和软件架构变得尤为迫切。
Xilinx最新平台Zynq将处理器的软件可编程能力与FPGA 的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现良好的系统性能、灵活性和可扩展性[7].本文提出一种基于Zynq可扩展处理平台的实时图形生成电路,利用Zynq内部集成的ARM 处理器以及可编程逻辑资源,实现了机载显示器图形画面的实时生成与显示。
2 Zynq简介
2.1 Zynq构成
Zynq构架将内部结构分为处理器系统(ProcessingSystem,PS)与可编程逻辑(ProgrammableLogic,PL)两部分[8].PS部分包括双ARM CortexGA9内核、存储器接口以及通用外设接口等资源.PL部分也即常规的FPGA,通过PL生成的IP核可以作为ARM 内核的扩展外围设备或者ARM 内核的加速部件.Zynq器件内部结构图如图1所示。
图1 Zynq内部结构图
Zynq架构可以对PL和PS中运行的自定义逻辑和软件方便地进行管理和规划,PS和PL的单芯片综合使其在I/O 数据带宽、功能耦合、功耗预算等方面的性能表现大大超越了以往ASSP和FPGA 双芯片解决方案。
PS和PL可以通过多种途径实现互联,包括GPIO端口、AXI总线端口、EMIO 端口、中断、DMA 等等.其中AXI总线是ARM 系统中连接各个模块的主要通道,各个功能部件通过AXI总线实现互联.在PL中可以通过工具自动生成带有AXI接口的IP 核,和PS 端进行高速数据交互。
2.2 DDR Memory控制器
Zynq内部集成的DDR memory控制器支持DDR2、DDR3、LPDDR2等多种存储器类型,包含了3个主要模块:AXI存储器端接口DDRI、带有传输调度机制的中央控制器DDRC 和物理层控制器DDRP[9].DDRmemory控制器框图如图2所示。
图2 DDR Memory控制器框图
DDRI端口符合AXI总线标准,包含4个64位的同步AXI接口,分别为S0、S1、S2、S3,用于接收多个AXI主端的访问请求,其中S0和S1端口接收PS部分CPU 的访问请求;S2和S3端口接收PL部分逻辑端的访问请求.DDRC对来自多个AXI主端的访问请求按照其调度策略进行裁决,裁决实施的依据是主控端访问的优先级、等待时长计数器和紧急信号.DDRP 处理来自于DDRC的读写请求,并将其转换成符合DDR 存储器时序要求的特定信号。
2.3 AXI VDMA
AXI VDMA 是Xilinx公司开发的一个软核IP,用于在系统存储器和支持AXI4-Stream 视频类型的目标IP之间提供一个高速的数据存取通道[10].AXI4-Stream 格式数据流不能直接用于驱动显示,还需要将数据流以视频使能信号为界进行分割,配合行场同步信号驱动视频终端显示。
该IP 有两路AXI4-Stream 接口,分别为AXI Memory Map to Stream (MM2S)Stream Master 和AXI4-Stream to Memory Map(S2MM)Stream Slave,其中MM2S为主端口,用于输出转换成AXI4-Stream 格式视频流的系统存储器中数据.S2MM 为从端口,用于接收AXI4-Stream 格式视频流转换成存储器数据.MM2S和S2MM 彼此相互独立,可以并行同时工作.PS端的处理器可通过AXI4-Lite总线对其内部的寄存器进行访问以控制VDMA 工作模式、获取VDMA 工作状态。
3 设计实现
3.1 硬件设计
3.1.1 硬件架构
本文通过Zynq完成图形生成与显示功能,原理框图如图3所示,硬件模块主要包括Zynq、DDR3SDRAM、FLASH、双口RAM 等.正常工作时PS中的ARM 内核根据从双口RAM 中接收到的绘图指令和参数完成绘图算法,将图形数据写入DDR3SDRAM 存储器中.PL 从DDR3中读出图形数据进行显示,并对DDR3SDRAM中的图形数据进行清屏处理。
图3 Zynq图形生成原理框图
3.1.2 Zynq硬件平台设计
本文通过Xilinx 的ISE14.2 软件集成的XPS开发环境完成Zynq图形生成电路的硬件平台设计.利用XPS可以快速地对Zynq系统内的各种硬件资源进行定制设计,包括存储器、外设、ARM 处理器、系统IP和用户IP等.Zynq硬件平台结构图见图4所示.
图4 Zynq硬件结构图
本文在Zynq中的PL 部分应用了VDMA、AXI2XSVI、XSVI2AXI、VTC等几个IP核,其中VDMA 用于从DDR3SDRAM 中读出图形数据,同时向DDR3SDRAM 中写入全零数据以达到清屏目的.AXI2XSVI用于将AXIGStream 数据流用行、场同步信号进行区隔,供外部显示模块进行显示.XSVI2AXI用于将带有行场同步信号的视频数据转换成AXIGStream 数据流.VTC 用于生成系统运行所需时序信号.对VTC根据显示时序进行修改,系统即可产生多种分辨率图形画面。
3.1.3 图形缓冲设计
本文中对DDR3SDRAM 帧存的操作包括3种类型:PS写入、PL读取、PL清零.清零从本质上说也是一种写入操作,写入的是全零数据.读取和写入请求通过DDR 控制器中的调度机制和仲裁策略分别在不同时刻得以响应,得益于DDR3SDRAM 的高速高带宽优势,外部可以同时进行多个通道的读写操作.针对本文中DDR3SDRAM 的3种操作类型,在DDR3帧存中设置了3个缓冲区,分别为buffer0,buffer1,buffer2,相应地,VDMA 中的framebuffer数目也设置为3.buffer的切换机制如表1所示.
这种三缓冲切换机制保证了写入的都是已清零完成的buffer,清零的都是已读出完成的buffer,读出的都是已写入完成的buffer。
根据buffer切换机制,VDMA 中的S2MM和MM2S通道分别以指定的buffer为操作对象.初始化状态下为每个buffer指定默认的操作模式,而后在每个帧周期内启动VDMA 切换buffer操作模式,从而不间断地输出图形数据。
3.2 软件设计
3.2.1 Zynq系统软件
系统绘图时,根据双口RAM 提供的画面内容要求,启动绘图任务,并将绘图结果保存下来.显示工作完全由PL内部的显示逻辑负责,显示逻辑从显存中读取显示数据,按照标准时序送至显示接口.图形软件的接口关系如图5所示.
图5 图形生成软件接口示意图[!--empirenews.page--]
3.2.2 画面显示软件
画面显示软件主要包括初始化模块和主模块,结构如图6所示.初始化模块完成ARM 内核启动;外设初始化信息加载;DDR3SDRAM、UART等设备初始化;VDMA 寄存器配置等初始化工作.运算控制模块由双口RAM 读写模块;PS、PL 通信模块以及绘图模块3部分组成,其中双口RAM 读写模块主要负责从双口RAM中读取绘图指令数据,为绘图模块提供必要的绘图参数;PS、PL通信模块负责ARM 内核与VDMA的通信,切换缓存;绘图模块完成分配的绘图任务,并将相应的计算结果,也即对应的像素点信息写入DDR3SDRAM 中。
图6 图形生成软件结构图
4 实验与对比
4.1 实验过程
在实验验证阶段,分别采用自主开发的Zynq图形生成模块和DSP图形生成模块作为实验和比较对象.其中,Zynq 图形生成模块采用的Zynq器件型号为XC7Z020,集成的ARM 处理器频率为667MHz,采用的DDR3SDRAM 器件型号为MICRO公司的MT41J128M16,时钟频率设置为533MHz.DSP图形生成模块采用的DSP器件型号为AD 公司TigerSHARC 系列的TS201,主频设置为520MHz。
为了全面验证Zynq平台的图形生成性能,本文针对几种常规分辨率机载显示器,对两种平台的图形生成时间和帧率分别进行对比测试.机载显示器常规分辨率有640×480、600×600、1024×768等几种,每种分辨率下具体图形生成时间和帧率与图形内容和复杂度有关,本文选取常用的典型图形作为测试对象,每幅图形均包含了直线、圆弧、矩形、字符、数字、符号等内容,如图7所示。
图7 测试图形
以1024×768 分辨率的EFIS 画面为例,Zynq平台实时生成图形数据并送至外部监视器显示的示意图如图8所示.
图8 Zynq平台1024×768分辨率图形生成示例
4.2 实验结果
针对3种分辨率典型图形画面,Zynq平台和DSP平台图形生成时间和帧率对比分别如图9和图10所示.
图9 图形生成时间对比
图10 图形生成帧率对比
图形生成时间包括图形算法运算时间和图形数据写帧存时间.在进行图形运算处理时,针对Zynq平台的特点采取了一系列的优化算法,图形运算时间小于DSP平台.另外,Zynq平台采用的是DDR3SDRAM 帧存,操作速率远高于DSP平台采用的SRAM 帧存,因此写帧存时间远小于DSP平台.由图9和图10可见,在绘制分辨率相同的同一图形时,Zynq平台图形生成时间均小于DSP平台,帧率均高于DSP平台.在绘制多种分辨率图形画面,Zynq平台帧率均超越60 Hz,满足了机载显示器的实时显示要求。
5 结论
针对机载液晶显示器低功耗、小型化的应用需求,提出了一种基于Zynq的图形生成电路.运用Zynq器件集成的ARM CortexGA9内核作为核心绘图部件,外部高速DDR3存储器作为图形帧存,对帧存采取三缓冲机制进行数据缓冲处理,配合可编程逻辑资源,可完成多种分辨率图形的实时生成.对Zynq平台和DSP平台在多种分辨率下典型画面的图形生成时间和帧率进行了对比测试,测试结果表明,Zynq平台性能优于DSP平台.在生成1024×768分辨率的EFIS图形画面时,Zynq平台图形帧率可达74fps,满足机载显示器实时显示需求。