基于FPGA的VGA控制器实现
本设计以640x480且刷新频率为60Hz为例,其显示器每秒扫描60场,VGA在实际工作时并不是每行扫描640个点,每场扫480行,由图及表1可知,由于行消隐和场消隐的存在,实际是每行800个像素,每场525行。每行800个像素中包括行消隐前肩d(16个点)、行同步信号a(96个点)、行消隐后肩b(48个点)和有效点数c(640个)。每场525行中包括场消隐前肩k(10行)、场同步信号h(2行)、场消隐后肩i(33行)和有效行数j(480行)。所以,点像素的时钟频率为800x525x60=25.175MHz。
1.2 VGA时序控制信号的产生
VGA时序控制信号的产生包括行点计数器h_cnter、场行计数器v_enter、行同步状态机和场同步状态机。h_enter是800进制计数器,v_ cnter是525进制计数器。行同步状态机有a(行同步)状态、b(行消隐后肩)状态、c(数据有效)状态和d(行消隐前肩)状态,4种状态可根据h_ enter的值进行状态翻转。场同步状态包括h(场同步)状态、i(场消隐后肩)状态、j(数据有效)状态和k(场消隐前肩)状态,4种状态也可根据v_enter的值进行状态转换。其状态转移图如图2所示。本文引用地址:https://www.eepw.com.cn/article/191277.htm
当状态机上电复位后,行状态机进入a状态,此时HSYNC输出为低,行计数器h_enter开始对25MHz的点时钟计数,当计数到95时,转移到b状态,而当计数到143时,从b状态转移到c状态,当计数到783时,从c状态转移到d状态。在b、c、d三状态时,HYNC输出为高。当状态机上电复位后,场同步状态机进入h状态,每当行计数器h_cater=7991时场行计数器v_enter加1,当v_enter=1时,状态机从h状态转移到i状态,当v_enter=34时,状态机转移到j状态,当v_enter=514时,状态机转移到h状态,此时场同步信号VSYNCS输出为低,其他状态输出为高。只有当行同步状态机在c状态且场同步状态机在j状态时,才能向RGB输入数据。
评论