历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2021年03月08日 | 基于Zynq的图形生成电路设计与实现

2021-03-08 来源:eefocus

1引言


在飞机座舱显示系统中图形显示占据重要地位[1].主显示器尺寸不断加大,分辨率不断提高,并日益朝着大屏幕化、综合化、信息化和智能化方向发展[2].随着分辨率的提高,要显示的信息量也大幅增加,座舱图形综合显示系统是一个对实时性要求很高的系统[3],军用飞机在做战术动作时,画面变换速度快,要求图形的更新速度也必须很快,至少要比帧或场的刷新速度快,才可以避免画面的断续[4G5].采用DSP+FPGA 的图形硬件加速架构,或者使用专用GPU 图形生成芯片,都可以生成高分辨的机载显示器图形,但随之而来的是产品成本的急剧增加以及功耗的不断上升[6].为机载图形显示系统配置更合理的硬件设计和软件架构变得尤为迫切。


Xilinx最新平台Zynq将处理器的软件可编程能力与FPGA 的硬件可编程能力实现完美结合,以低功耗和低成本等系统优势实现良好的系统性能、灵活性和可扩展性[7].本文提出一种基于Zynq可扩展处理平台的实时图形生成电路,利用Zynq内部集成的ARM 处理器以及可编程逻辑资源,实现了机载显示器图形画面的实时生成与显示。


2Zynq简介


2.1Zynq构成


Zynq构架将内部结构分为处理器系统(ProcessingSystem,PS)与可编程逻辑(ProgrammableLogic,PL)两部分[8].PS部分包括双ARM CortexGA9内核、存储器接口以及通用外设接口等资源.PL部分也即常规的FPGA,通过PL生成的IP核可以作为ARM 内核的扩展外围设备或者ARM 内核的加速部件.Zynq器件内部结构图如图1所示。



图1Zynq内部结构图


Zynq架构可以对PL和PS中运行的自定义逻辑和软件方便地进行管理和规划,PS和PL的单芯片综合使其在I/O 数据带宽、功能耦合、功耗预算等方面的性能表现大大超越了以往ASSP和FPGA 双芯片解决方案。


PS和PL可以通过多种途径实现互联,包括GPIO端口、AXI总线端口、EMIO 端口、中断、DMA 等等.其中AXI总线是ARM 系统中连接各个模块的主要通道,各个功能部件通过AXI总线实现互联.在PL中可以通过工具自动生成带有AXI接口的IP 核,和PS 端进行高速数据交互。


2.2DDR Memory控制器


Zynq内部集成的DDR memory控制器支持DDR2、DDR3、LPDDR2等多种存储器类型,包含了3个主要模块:AXI存储器端接口DDRI、带有传输调度机制的中央控制器DDRC 和物理层控制器DDRP[9].DDRmemory控制器框图如图2所示。



图2DDR Memory控制器框图


DDRI端口符合AXI总线标准,包含4个64位的同步AXI接口,分别为S0、S1、S2、S3,用于接收多个AXI主端的访问请求,其中S0和S1端口接收PS部分CPU 的访问请求;S2和S3端口接收PL部分逻辑端的访问请求.DDRC对来自多个AXI主端的访问请求按照其调度策略进行裁决,裁决实施的依据是主控端访问的优先级、等待时长计数器和紧急信号.DDRP 处理来自于DDRC的读写请求,并将其转换成符合DDR 存储器时序要求的特定信号。


2.3AXI 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中的图形数据进行清屏处理。



图3Zynq图形生成原理框图


3.1.2Zynq硬件平台设计


本文通过Xilinx 的ISE14.2 软件集成的XPS开发环境完成Zynq图形生成电路的硬件平台设计.利用XPS可以快速地对Zynq系统内的各种硬件资源进行定制设计,包括存储器、外设、ARM 处理器、系统IP和用户IP等.Zynq硬件平台结构图见图4所示.



图4Zynq硬件结构图


本文在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.1Zynq系统软件


系统绘图时,根据双口RAM 提供的画面内容要求,启动绘图任务,并将绘图结果保存下来.显示工作完全由PL内部的显示逻辑负责,显示逻辑从显存中读取显示数据,按照标准时序送至显示接口.图形软件的接口关系如图5所示.



图5图形生成软件接口示意图


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所示.



图8Zynq平台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,满足机载显示器实时显示需求。


推荐阅读

史海拾趣

AZ Displays公司的发展小趣事

随着公司规模的扩大和市场份额的提升,AZ Displays开始实施全球化战略。公司在全球范围内建立销售网络和分支机构,积极开拓国际市场。通过与国际知名企业的合作,AZ Displays成功将产品打入国际市场,进一步提升了公司的品牌影响力和市场竞争力。

Apx-Crystal公司的发展小趣事

在快速发展的同时,Apx-Crystal公司始终坚持创新驱动的发展理念。公司投入大量资金用于研发创新和技术升级,不断推出具有市场竞争力的新产品。同时,公司还注重品牌建设和市场推广,通过参加行业展会、举办技术研讨会、开展线上线下营销活动等方式,提升品牌知名度和影响力。这些举措使得Apx-Crystal在行业内树立了良好的品牌形象,成为电子元件领域的佼佼者。

Hantronix公司的发展小趣事

随着业务的不断增长,HANBIT Electronics意识到全球化布局的重要性。2010年,公司在韩国本土之外的首个生产基地——中国东莞分公司正式成立。这一举措不仅有效降低了生产成本,还大大缩短了产品交付周期,提高了对亚洲市场的响应速度。同时,公司还积极在欧洲和美国等地设立研发中心和销售网络,实现了从研发、生产到销售的全球化布局。这一战略调整极大地增强了HANBIT Electronics在全球电子市场的竞争力。

BEKA Associates Ltd公司的发展小趣事

BCD Semi(Diodes)在电子行业中以其卓越的技术实力和持续的产品创新而闻名。近年来,公司成功研发出一系列高性能的模拟半导体产品,这些产品在市场上取得了显著的成功。通过不断优化生产工艺和设计理念,BCD Semi成功提升了产品的性能和可靠性,赢得了客户的广泛认可。同时,公司还积极开拓新的应用领域,将产品应用于汽车、通信、工业控制等多个领域,进一步扩大了市场份额。

ECI公司的发展小趣事

ECI公司深知人才是企业发展的关键因素。因此,公司高度重视人才的引进、培养和激励。公司建立了完善的人才选拔机制,选拔具有潜力和才华的员工进行重点培养。同时,公司还提供了丰富的培训和发展机会,帮助员工提升自身素质和能力。此外,ECI还建立了科学合理的薪酬制度和激励机制,让员工在为公司创造价值的同时也能获得相应的回报。这种对人才的重视和投入让ECI公司汇聚了一批优秀的员工队伍,为公司的发展提供了有力的保障。

Arco Electronics公司的发展小趣事

随着公司规模的扩大,Arco Electronics开始实施全球化战略。公司先后在多个国家和地区设立了研发中心和生产基地,以便更好地服务当地市场。通过全球化的布局,Arco不仅降低了生产成本,还提高了产品的竞争力。同时,公司还积极与当地的合作伙伴建立战略合作关系,共同开拓市场,实现了互利共赢。

问答坊 | AI 解惑

预热式沐浴水箱水位自控器

此电路结构简单,取材容易,性能可靠,操作方便。工作原理:假设水箱内没有水,需要进水预热,只要将K1合上(见下图),则绿色指示灯亮,电磁阀经J1-2常闭触点得电而开阀进水,待水箱内水升至平面S1时,BG1、BG2组成的复合管得正向偏压而驱动继电 ...…

查看全部问答>

fopen打开的文件,如何实现当文件达到一定大小后,重头进行覆盖写入

我的那个文件要求记录5000条记录,超过5000条时,重头开始写入,用新的记录覆盖掉旧的记录。fopen就那几种打开方式,我试了下,好像都不支持。如果以“a+“的方式打开,然后用seek去定位,然后再写入也不行,仍然会加到文件尾。各位有没有什么好的 ...…

查看全部问答>

usb驱动问题!!!dispatch_level在callusbdi下不可用!!急急急!!

callusbdi windows wdm设备驱动程序开发指南(chris cant) 在dispatch_level调用出现死等,但是在passive_level正常 书上也说只能在Passive_level调用,是什么原因呢,怎样才能在dispatch_level调用呢? 高手快来啊 NTSTATUS CallUSBDI(IN PDEV ...…

查看全部问答>

DOS下启用图形加速卡.

怎样在DOS下不用VGA,启用图形加速卡呢?…

查看全部问答>

【MSP430共享】晶化箱温度控制系统设计

设计了一种基于Ms P 4 3 0处理器的温控系统, 介绍了系统主要硬件, 重点介绍了温度控制系统及其算法的实现, 这里采用的是史密斯一 模糊自调整 P I D控制系统, 该系统通过对传统的史密斯预估器进行改良, 将该模糊自调整P I D控制器引入史密斯控 ...…

查看全部问答>

12864读函数问题

YM12864R读函数为什么读不出正确的数据,总是0xff,调了好久都没弄好,网上也有人有同样的问题,但是好像都没有解决,急求帮助uchar LcdRdata(void){ uchar getdata; RS=1; WRD=1; P0=0xff; E=0; E=1; delay(100); getdata=P0; E=0; return getdata ...…

查看全部问答>

易电源游戏看做事态度

我在早上9点半玩易电源拼图游戏,发现电容电感问题,明显是错误的,而且后来更正过来了,那么在之前得100分的朋友们,你们难道没有发现这个简单的错误吗?如果发现了,为什么还跟着错?难道就为了那100分?为了奖品机会? 作为技术人员,发现问题 ...…

查看全部问答>

瑞萨RL78开发工具_原厂的培训教程

瑞萨RL78开发工具_原厂的培训教程 …

查看全部问答>

基于安卓/苹果的物品防盗管家,用于对随身箱包和贵重物品进行管理

利用手机作为监控终端,既简便又易用,同时如果手机被人拿走的话,通讯断开,手机和开发模块都会报警。 1. 通过蓝牙与手机进行数据互联,若发送报警信息或是“心跳同步”时,通讯没有相应,则发送方进行报警 2. 检测光线有强烈变化时,进行报警 ...…

查看全部问答>

晒WEBENCH设计的过程+DC8-16V转5V/1A车载充电器的设计过程

本帖最后由 a736015 于 2014-5-29 17:14 编辑 一、设计要求:输入DC8-16V,输出5V/1A二、应用:车载手机平板电脑充电器三、设计过程根据论坛窗口或进入TI在线设计工具页面 点击后进入到登陆(注册)界面 注册TI账号后进入WEBENCH在线设计工具在 ...…

查看全部问答>