基于FPGA的VGA时序彩条信号实现时间:2009-08-2612:40:30来源:现代电子技术作者:郑美芳,高晓蓉,王黎,王泽勇,赵全轲3VGA时序信号及彩条信号产生模块设计3.1VGA时序信号产生模块VGA时序信号产生模块包括行点数计数器h_cnt、场行数计数器v_cnt、行同步产生状态机h_state和场同步产生状态机v_state等。其中,行点数计数器是800进制计数器,场行数计数器是525进制计数器。行同步状态机h_state有h_video,h_front,h_sync,h_back四种状态,它根据行点数计数器的计数值来进行状态转换;场同步状态机v_state有v_video,v_Front,v_sync,v_Back四种状态,它根据场行数计数器的计数值来进行状态翻转。这两个状态机的状态转移图分别如图3和图4所示。当行状态机h_state复位时,即进入h_video状态,它对应每行的有效显示区域。行计数器h_cnt对25MHz的点时钟进行计数,当行计数器h_cnt的计数值到达639时,行同步状态机即进入行消隐前肩h_front状态;当h_cnt的计数值为663时,行同步状态机进入行同步状态h_sync,此时,行同步信号Hs输出低电平。当h_cnt的计数值为759时,状态机即进入行消隐后肩h_back状态;当行状态机为h_front,h_sync,h_back状态时,行消隐信号输出低电平。当h_cnt的计数值为799时,行同步状态机进人h_video状态,同时,行计数器的同步复位信号为高电平,使行计数器复位。场状态机v_state开始时进入v_video状态,对应每场的有效显示行,场计数器v_cnt的计数值每行加1。当场计数器的计数值到达479时,场状态机翻转,进入场消隐前肩v_ront状态;当v_cnt的值为497时,状态机v_state进入场同步状态v_sync,场同步信号Vs此时输出低电平;当v_cnt的值为499时,状态机v_state进入场消隐后肩v_back状态;当v_cnt的值为524时,状态机v_state又翻转进入v_video状态,同时输出高电平到场计数器v_cnt的同步清零端使其清零。当场状态机v_state的状态为v_Front,v_sync,v_Back三种状态时,场消隐信号输出低电平,其余时刻为高电平。行、场消隐信号的逻辑与即为复合消隐信号。3.2VGA彩条信号产生模块彩条信号产生模块包括了彩条模式控制、竖彩条发生和横彩条发生等三个模块。竖彩条发生模块根据行点数器h_cnt的计数值来产生彩条,其流程图如图5所示。它对行点数计数器的数值进行判断,每80条竖线生成一种竖彩条,共8种竖彩条横彩条发生模块与竖彩条发生模块相似。它根据场行数计数器v_cnt的计数值来产生横彩条,流程图如图6所示。每60条扫描线为一个彩条宽度,共8种横彩条模式。计数器mode的值又决定着输出彩条信号的类型,当mode为0时,输出的彩条为竖彩条;当mode为1时,输出的彩条横彩条。