1VGA的一些参数
摘抄自:http://group.chinaaet.com/273/4100029440
VGA的接口时序如图所示,场同步信号VSYNC在每帧(即送一次全屏的图像)开始的时候产生一个固定宽度的高脉冲,行同步信号HSYNC在每行开始的时候产生一个固定宽度的高脉冲,色彩数据在某些固定的行和列交汇处有效。
如前所述,我们通常以一个基准时钟驱动VGA信号的产生,用这个基准时钟为时间单位来产生的时序如图所示。
对于一个刷新频率为60Hz,分辨率为640X480的标准VGA显示驱动,若它的基准驱动时钟为25.175MHz,它的脉冲计数表如下所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即25.175MHz时钟脉冲数。VGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
2 |
33 |
480 |
10 |
525 |
行 |
96 |
48 |
640 |
16 |
800 |
而对于640*480在75hz的刷新频率下的驱动参数如下,其中驱动时钟是31.5M,
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
16 |
480 |
1 |
500 |
行 |
64 |
120 |
640 |
16 |
840
|
对于一个刷新频率为72Hz,分辨率为800X600的SVGA显示驱动,若它的基准驱动时钟为50MHz,它的计数脉冲参数如表所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即50MHz时钟脉冲数。SVGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
6 |
23 |
600 |
37 |
666 |
行 |
120 |
64 |
800 |
56 |
1040 |
而对于800*600@60HZ,驱动时钟为40MHZ,参数如下:
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
4 |
23 |
600 |
1 |
628 |
行 |
128 |
88 |
800 |
40 |
1056
|
而对于800*600@75HZ,驱动时钟为49.5MHZ,参数如下:
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
21 |
600 |
1 |
625 |
行 |
80 |
160 |
800 |
16 |
1056
|
对于一个刷新频率为60Hz,分辨率为1024X768的显示驱动,若它的基准驱动时钟为65MHz,它的计数脉冲参数如表所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即65MHz时钟脉冲数。
SVGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
6 |
29 |
768 |
3 |
806 |
行 |
136 |
160 |
1024 |
24 |
1344 |
对于1024*768@75HZ,驱动时钟为78.8MHZ,参数如下:
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
28 |
768 |
1 |
800 |
行 |
176 |
176 |
1024 |
16 |
1312
|
对于1280*800@60HZ,驱动时钟为83.46MHZ,参数如下:
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
24 |
800 |
1 |
828 |
行 |
136 |
200 |
1280 |
64 |
1680
|
对于一个刷新频率为60Hz,分辨率为1280X960的显示驱动,若它的基准驱动时钟为108MHz,它的计数脉冲参数如表所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即108MHz时钟脉冲数。
SVGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
36 |
960 |
1 |
1000 |
行 |
112 |
312 |
1280 |
96 |
1800 |
对于一个刷新频率为60Hz,分辨率为1280X1024的显示驱动,若它的基准驱动时钟为108MHz,它的计数脉冲参数如表所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即108MHz时钟脉冲数。
SVGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
38 |
1024 |
1 |
1066 |
行 |
112 |
248 |
1280 |
48 |
1688 |
对于1440*900@60HZ,驱动时钟为106.47MHZ,参数如下:
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
3 |
28 |
900 |
1 |
932 |
行 |
152 |
232 |
1440 |
80 |
1904
|
对于一个刷新频率为60Hz,分辨率为1920X1080的显示驱动,若它的基准驱动时钟为130MHz,它的计数脉冲参数如表所示。注意列的单位为“行”,而行的单位为“基准时钟周期数”,即130MHz时钟脉冲数。
SVGA驱动时序参数表
行/列 |
同步脉冲 |
后沿脉冲 |
显示脉冲 |
前沿脉冲 |
帧长 |
列 |
4 |
18 |
1080 |
3 |
1105 |
行 |
12 |
40 |
1920 |
28 |
2000 |
将其前端make extr的时钟也修改为130MHz,不然会报错。
(2)在vga.test里面将原来的clk25或者clk65全部修改为clk130,这里面要修改大概四处地方
(3)在vga_test.v里面对每列显示的颜色或者间隔进行修改,之前是1024,要用1024/8=128,现在变成了1920,所以要1920/8=240,
修改为always@(posedge clk130)
case(pixel_count)
240*4:{Rr ,Gr ,Br}<={4'b000,4'b000,4'b000};
240*3:
240*2
(4)在my_vga_syn.v函数里面对VGA的一些参数进行修改
'define H_ACTIVE 1920
'define H_FRONT_PORCH 28
'define H_SYNCH 12
'define H_BACK_PROCH 40
'define H_TOTAL ('H_SYNCH+'H_BACK_PROCH+H'FRONT_PROCH+'H_ACTIVE)
'define V_ACTIVE 1080
'define V_FRONT_PORCH 3
'define V_SYNCH 4
'define V_BACK_PORCH 18
3在进行这样修改后,就可以正常的显示了
不过这需要一个调整好分辨率的显示屏,怎么调整呢
控制面板----------显示---------调整分辨率(1920*1080)