基于FPGA的VGA控制器實現(xiàn)
本設計以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、行同步狀態(tài)機和場同步狀態(tài)機。h_enter是800進制計數器,v_ cnter是525進制計數器。行同步狀態(tài)機有a(行同步)狀態(tài)、b(行消隱后肩)狀態(tài)、c(數據有效)狀態(tài)和d(行消隱前肩)狀態(tài),4種狀態(tài)可根據h_ enter的值進行狀態(tài)翻轉。場同步狀態(tài)包括h(場同步)狀態(tài)、i(場消隱后肩)狀態(tài)、j(數據有效)狀態(tài)和k(場消隱前肩)狀態(tài),4種狀態(tài)也可根據v_enter的值進行狀態(tài)轉換。其狀態(tài)轉移圖如圖2所示。本文引用地址:http://m.butianyuan.cn/article/191277.htm
當狀態(tài)機上電復位后,行狀態(tài)機進入a狀態(tài),此時HSYNC輸出為低,行計數器h_enter開始對25MHz的點時鐘計數,當計數到95時,轉移到b狀態(tài),而當計數到143時,從b狀態(tài)轉移到c狀態(tài),當計數到783時,從c狀態(tài)轉移到d狀態(tài)。在b、c、d三狀態(tài)時,HYNC輸出為高。當狀態(tài)機上電復位后,場同步狀態(tài)機進入h狀態(tài),每當行計數器h_cater=7991時場行計數器v_enter加1,當v_enter=1時,狀態(tài)機從h狀態(tài)轉移到i狀態(tài),當v_enter=34時,狀態(tài)機轉移到j狀態(tài),當v_enter=514時,狀態(tài)機轉移到h狀態(tài),此時場同步信號VSYNCS輸出為低,其他狀態(tài)輸出為高。只有當行同步狀態(tài)機在c狀態(tài)且場同步狀態(tài)機在j狀態(tài)時,才能向RGB輸入數據。
評論