1 复杂可编程逻辑器件概述
复杂可编程逻辑器件(CPLD)最早出现于80年代后期,由于其高速、设计灵活、成本低、延时可预测等特点,一经面世便得到广泛的应用。世界各主要PLD厂商都纷纷推出了自己的 CPLD产品,如 Altera公司的 MAX系列,Xilinx的XC9500和Spartan系列,Lattice公司的ispLSI系列等。
1.l 复杂可编程逻辑器件的特点
与传统的FPGA相比,CPLD最大的特点在于其延时可预测性。在互连特性上,CPLD采用连续互连方式,即用固定长度的金属线实现逻辑单元之间的互连,避免了分段式互连结构中的复杂的布局布线和多级实现问题,能够方便地预测设计时序,同时保证了CPLD的高速性能。用户的仿真与实际系统集成后无太大的时间差异,不会给系统造成性能的波动,即系统具有稳定的可编程性,这使得软件控制下硬件的改变不受器件的影响。
1.2 isp LSI简介
Lattice 公司研制的在系统可编程大规模集成电路(ispLSI)系列芯片具有高密度、高速度和在线可编程等特点[2],使设计变得容易,并且不需要更改线路板就可以立即更改设计,代表了大规模可编程逻辑器件的发展方向。ispLSI包括以下几个主要部分:GLB(通用逻辑块),GRP(集总布线区),ORP(输出布线区),I/O单元和时钟分配网络。
(1) GLBispLSI的基本单元是GLB。每个GLB有18个输入,4个输出,以及实现标准逻辑功能的必要逻辑。GLB的输入来自GRP和专门输入端,GLB的输出反馈回GLB,以便它们能连接到任何别的GLB的输入端。
(2) GRPispLSI芯片中部有一个集总布线区,该布线区在连线延时恒定且可预知的前提下,提供了完善的片内逻辑互连性能。
(3) ORPORP提供了GLB输出与芯片输出引脚之间灵活的连接途径。
(4) I/O单元每一个I/O单元直接连接到一个I/O引脚。每个I/O都可编程为输入、输出和双向单元,并可根据所需要编程为锁存或寄存功能。每16个I/O Cell分为一组。8个GLB,16个I/O Cell,一个ORP和2个专用输入连在一起,组成一个 Megablock(组合模块)。8个GLB的输出通过ORP连到16个I/O Cell。每个Megablock共享一个OE信号。
(5) 时钟分配网络以1032 为例,时钟分配网络有4个专用的时钟输入端:Y0,Y1,Y2和Y3;另外的一个专用时钟输入来自GLB的输出。5个时钟输出:CLK0,CLK1, CLK2,I/O CLK0和I/O CLK1,用来提供到GLB和I/O单元的时钟线路。CLK0,CLK1和CLK2用作GLB的时钟信号;I/O CLK0和I/O CLK1则用作I/O Cell的时钟信号。
2 LED大屏幕视频显示系统原理
LED大屏幕视频显示系统由于具有亮度高、视角广、寿命长、性价比高,因此在银行、交通、广场、体育场馆等公共场合得到了广泛的应用。笔者用按位分时显示的方法研制了256×256灰度级的LED大屏幕视频显示系统,画面清晰稳定,颜色丰富,取得了良好的视觉效果。
视频控制系统是LED大屏幕视频显示系统的核心,它负责产生各种显示控制信号,对视频数据进行分割、存储、灰度扫描并按特定的方式输出数据到显示屏体供驱动显示。从电路组成看,视频控制系统包括计算机箱体内的预处理卡及显示屏体内的可级联的视频控制器单元;视频控制器单元(或预处理卡)由控制单元 (CPLD)和存储器单元(SRAM组)以及I/O接口单元等部分组成。计算机屏幕上每8×16行单色数据对应两片SRAM存储器(1024列×8×16 行为1个存储器单元)8×1位数据口,所有存储器的地址和控制信号由一片控制芯片(ispLSI1032E)产生。它们在显示系统中的关系如图1所示。
大屏幕显示范围为1024列×768行,时钟频率65MHz,整个显示区域分为6个存储器单元,每个存储器单元对应1024列×128行数据,2个存储器单元及1片控制芯片共同组成一个视频控制器单元(3个视频控制器单元可以级联控制1024列×768行)。计算机视频数据经过预处理卡(如γ反校正)后输出到视频控制器单元,视频控制器单元根据时钟和行、场同步信号对数据进行分割并分时写入到2个存储器单元内,视频控制器的存储器单元同时读出的数据经灰度调制后变成串行数据流,并行输出到显示屏体驱动电路经移位后以1行为周期打入到屏体显示,同时行扫描信号以19行数据刷新时间为周期进行垂直扫描。
设计中考虑到帧频与LED屏体显示效率的折中,采用td=h/16,即存储器读出速率等于1/2数据输入速率,显示基本时间单位为1/16 倍行周期。灰度扫描通过对灰度数据按位分时显示的方法实现,即计算机屏幕图像以每像素24bit输出(红、绿、蓝各8bit)时,通过给每种颜色8bit 字节的不同位分配不同的显示时间达到灰度显示的目的。比如,最低位(第8位)对应1/16行显示时间,第7位对应1/8行显示时间,…,第2位对应4行显示时间,最高位对应8行显示时间。屏体数据更新时间以行周期为单位,最低位对应更新时间为1行时间,其中显示1/16行时间,其余15/16行时间里,由控制电路产生消隐信号进行消隐,其余位类同。
3.2 视频控制器单元设计
根据上述256级灰度视频数据灰度扫描的原理设计了256级灰度视频控制器,原理(单个颜色通道)如图4所示。
按功能来分,设计的视频控制器单元可以分为四个部分:控制单元、存储器单元(SRAM)、数据缓冲器和接口单元。视频控制器单元的核心是存储器单元,计算机屏幕上每128行数据对应一个存储器单元,显示屏所要实时显示的内容(即计算机屏幕图像数据)都存放在存储器单元中。控制单元产生存储器单元的地址信号和分时选通控制信号及灰度扫描控制信号如扫描地址信号、消隐、移位、锁存脉冲等。数据缓冲器用于实现视频数据的读写(输出输入)缓冲。接口单元用于产生符合显示屏驱动电路接口格式的信号。当一个帧存储器进行数据写入时,另一个帧存储器进行数据扫描读出,这样两组存储器可以分别交替工作于视频数据高速扫描和高速写入两种方式,因而可以提高数据读写的速率和显示屏的帧频,播放出来的图像更加稳定。
3.3 视频控制器单元设计
视频图像信号频率高、数据量大,要求实时处理,加之LED大屏幕的数字逻辑相当复杂,采用复杂可编程逻辑器件(CPLD)设计系统中的关键控制电路,可以简化系统结构,便于调试。笔者利用Lattice公司的CPLD器件,用按位分时显示的方法设计了256级灰度*256级灰度(红、绿双基色)视频控制器单元的控制单元部分,经测试画面清晰稳定,颜色丰富,取得了预期的效果。以下是设计的大致过程。
首先是器件选型。为了提高器件的利用率,从结构化观点出发,统计出视频控制器存储单元、数据缓冲器和接口单元需要的控制信号数目为56,决定采用1片Lattice的ispLSI1032作为控制芯片。该芯片包含32个GLB,192个寄存器,I/O口及输入数为72,门
数为6000,速度为70MHz,具有在系统编程功能,能够比较高效地满足应用要求,同时还可兼顾系统今后的重构。
按照设计要求,控制芯片用于产生读、写地址信号、扫描地址信号、分时选通控制信号和一些显示控制信号如消隐、移位、打入脉冲等。在设计中采用了“自顶向下,逐步细化”的策略。
设计中开发软件采用Lattice公司的EDA工具ispEXPERT7.0,设计输入采用了原理图和硬件描述语言混合输入的方法,并对设计结果进行了仿真。定时分析结果为最小时钟周期为26.7ns,时钟周期计算公式为时钟周期=路径延时+时钟到输出端延时+建立时间
存储单元采用双总线结构的高速SRAM,每行数据对应19行时间读出,读出后帧频为103.6Hz。计算机视频工作频率为65MHz,行频48.4kHz,帧频60Hz。
4 结束语
本文讨论了LED大屏幕视频控制器单元中的灰度扫描方法,提出了256级灰度扫描时的实现方案,并用CPLD器件实现其控制电路。由于采用了EDA工具,降低了设计难度,缩短了开发周朗,同时由于只需一片集成电路即可实现过去需要几十片中规模集成电路的控制功能,印刷板的面积大大缩小,系统抗干扰能力显著增强,此外ISP功能给电路板的调试和系统的维护带来了很大的方便,并且有利于系统今后的升级和重构。
|