基于FPGA的VGA控制器實現(xiàn)
本設計以640x480且刷新頻率為60Hz為例,其顯示器每秒掃描60場,VGA在實際工作時并不是每行掃描640個點,每場掃480行,由圖及表1可知,由于行消隱和場消隱的存在,實際是每行800個像素,每場525行。每行800個像素中包括行消隱前肩d(16個點)、行同步信號a(96個點)、行消隱后肩b(48個點)和有效點數(shù)c(640個)。每場525行中包括場消隱前肩k(10行)、場同步信號h(2行)、場消隱后肩i(33行)和有效行數(shù)j(480行)。所以,點像素的時鐘頻率為800x525x60=25.175MHz。
1.2 VGA時序控制信號的產(chǎn)生
VGA時序控制信號的產(chǎn)生包括行點計數(shù)器h_cnter、場行計數(shù)器v_enter、行同步狀態(tài)機和場同步狀態(tài)機。h_enter是800進制計數(shù)器,v_ cnter是525進制計數(shù)器。行同步狀態(tài)機有a(行同步)狀態(tài)、b(行消隱后肩)狀態(tài)、c(數(shù)據(jù)有效)狀態(tài)和d(行消隱前肩)狀態(tài),4種狀態(tài)可根據(jù)h_ enter的值進行狀態(tài)翻轉(zhuǎn)。場同步狀態(tài)包括h(場同步)狀態(tài)、i(場消隱后肩)狀態(tài)、j(數(shù)據(jù)有效)狀態(tài)和k(場消隱前肩)狀態(tài),4種狀態(tài)也可根據(jù)v_enter的值進行狀態(tài)轉(zhuǎn)換。其狀態(tài)轉(zhuǎn)移圖如圖2所示。本文引用地址:http://cafeforensic.com/article/191277.htm
當狀態(tài)機上電復位后,行狀態(tài)機進入a狀態(tài),此時HSYNC輸出為低,行計數(shù)器h_enter開始對25MHz的點時鐘計數(shù),當計數(shù)到95時,轉(zhuǎn)移到b狀態(tài),而當計數(shù)到143時,從b狀態(tài)轉(zhuǎn)移到c狀態(tài),當計數(shù)到783時,從c狀態(tài)轉(zhuǎn)移到d狀態(tài)。在b、c、d三狀態(tài)時,HYNC輸出為高。當狀態(tài)機上電復位后,場同步狀態(tài)機進入h狀態(tài),每當行計數(shù)器h_cater=7991時場行計數(shù)器v_enter加1,當v_enter=1時,狀態(tài)機從h狀態(tài)轉(zhuǎn)移到i狀態(tài),當v_enter=34時,狀態(tài)機轉(zhuǎn)移到j狀態(tài),當v_enter=514時,狀態(tài)機轉(zhuǎn)移到h狀態(tài),此時場同步信號VSYNCS輸出為低,其他狀態(tài)輸出為高。只有當行同步狀態(tài)機在c狀態(tài)且場同步狀態(tài)機在j狀態(tài)時,才能向RGB輸入數(shù)據(jù)。
評論