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