基于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所示。本文引用地址:http://www.104case.com/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輸入數據。
評論