图4-1 整体设计结构图
按照VGA的工作时序计算出合适的频率,通过频率转换模块对原始频率进行倍频产生合适的频率。图像信息存储在芯片内部的ROM模块中,运行时,不断读取ROM模块中的图像信息通过VGA接口将其发送给显示器。整体控制电路可分为以下几部分:频率转换模块、ROM模块、VGA控制模块,整体设计方案如图4-1所示。
图像显示控制器的顶层设计采用原理图输入的形式,顶层工程设计如图4-2所示。
图4-2 图像显示控制器顶层文件
4.2 频率转换模块
系统外界输入时钟频率是20MHz,VGA标准像素的传输频率是25.175MHz,动画显示需要2KHz的时钟,按键去抖动需要10KHz时钟,为此通过宏功能调用,调用嵌入式锁相环产生各路所需的时钟频率,调用过程如图4-3所示,频率转换模块如图4-4。其中c0输出频率25.175MHz,c1输出频率10KHz,c2输出频率2.5KHz。
图4-3 嵌入式锁相环调用
图4-4 频率转换模块 图4-5 ROM模块
4.3 ROM图像信息存储模块
为存储图像的信息可使用宏功能LPM_ROM创建存储器ROM模块用于存储图像的.mif文件。每个ROM模块有时钟(CLOCK)、地址(address)输入信号和一个三位输出信号q,时钟信号频率是25.175MHz,地址信号的位宽根据存储图片分辨率的不同而不同。由于设计中要显示多幅图像,因此共创建了四个ROM模块并将其封装成一个原理图符号元件的形式,如图4-5所示。由于要显示的各个图像大小不同因此地址信号的位宽也不同。
4.4 VGA控制模块
VGA控制模块是该设计的核心,采用VHDL文本描述的方式实现,该模块控制发送RGB色彩信号,同时生成VGA显示的时序信号,行同步信号:HS、场同步信号:VS。另外控制模块通过读取外部按键状态选择不同彩条和不同图像的显示,动画显示和图像的移动也是靠VGA控制模块来实现。VGA控制模块原理框图如图4-6所示。像素位置计时器用于对输入时钟信号计数结果hcnt、vcnt是地址信号、消隐信号产生的基础,控制模块有多路图像信号输入,根据按键输入计数结果选择输出信号。在这一小节中将介绍彩条显示、定位显示、图像重复显示、动画显示、按键控制的实现原理。
图4-6 VGA控制模块框图
要准确输出每个像素点的信息就要知道每一时刻像素点的位置信息,对于VGA标准,每行有800个像素点,共有525行,其中每行前640个为有效显示点,其余像素点用于消隐,包括行同步区间,行消隐前肩,行消隐后肩,一场中480行是有效显示行,其余是场消隐。每个像素传递频率是25.175MHz,行显示位置的产生需对VGA时钟信号计数,行计数到800像素时清空重新计数。列像素点的位置信号通过对行数计数获得,行计数器计满648时,列计数器开始计数,列计数到525时重新计数[9,10]。低电平行同步区定义在656~752像素之间,场同步区在490~492像素点之间。行时序和列时序状态转移分别如图4-7和图4-8所示。
图4-7 行时序 图4-8 场时序
4.4.1 彩条图像的生成
横向和纵向彩条显示,只需分别根据场行计数结果或行点计数结果将屏幕划分。在此划分采用了均分方式,此处只按要求给出8种颜色,要显示横彩条需要对行计数,共480行,每60行一个色彩,利用行计数器产生的vcnt信号,即通过场计数器vcnt将屏幕均匀分为8份,vcnt每增加60色彩信号改变一次 [12]。只要增加划分次数就可得到更多彩条。横彩条产生流程图如图图4-9所示。 VGA图像显示控制器的设计+VHDL代码(5):http://www.751com.cn/zidonghua/lunwen_9119.html