VGA显示时序及生成行帧有效信号的Verilog代码
1.显示器电子枪扫描方式
显示器的电子枪扫描方式如下:
- 打开显示,扫描坐标从显示器的左上角开始,沿着第一个水平向右的箭头所示的方向逐个像素向右扫描。
- 扫描到第一行最右侧的像素后,关闭显示,扫描坐标沿着第一个虚线的方向从第一行的末尾转移至第二行的行首。
- 打开显示,扫描坐标从第二行的左上角开始,沿着第二个水平向右的箭头所示的方向逐个像素向右扫描。
- 扫描到第二行最右侧的像素后,关闭显示,扫描坐标沿着第二个虚线的方向从第二行的末尾转移至第三行的行首。
- 重复上述步骤,直至扫描至显示器的右下角时,关闭显示,扫描坐标从显示器的右下角转移至显示器的左上角。
从一行的末尾转移至下一行的行首的过程称为行同步(行消隐),从显示器的右下角转移至显示器的左上角的过程称为场同步(场消隐)。
2.VGA的行扫描时序
一个完整的行扫描周期(H_TOTAL)由以上H_SYNC,H_BACK,H_DISP,H_FRONT四个部分组成,一行开始时,先进入行同步(H_SYNC)时期,进行行扫描地址的复位;紧接着进入行消隐后沿(H_BACK)时期,该时期为行扫描地址转移后的稳定等待期;接下来进入行显示有效(H_DISP)时期,该时期的数据有效;最后进入行消隐前沿(H_FRONT)时期,该时期进行扫描地址转移的准备。
3.VGA的帧(场)扫描时序
帧扫描周期与行扫描周期类似,一个完整的帧扫描周期(V_TOTAL)由以上V_SYNC,V_BACK,V_DISP,V_FRONT四个部分组成,一行开始时,先进入帧同步(V_SYNC)时期,进行帧扫描地址的复位;紧接着进入帧消隐后沿(V_BACK)时期,该时期为帧扫描地址转移后的稳定等待期;接下来进入帧显示有效(V_DISP)时期,该时期的数据有效;最后进入帧消隐前沿(V_FRONT)时期,该时期进帧扫描地址转移的准备。
4.不同分辨率的时序表
分辨率 | 时钟(MHz) | 行同步H_SYNC | 行消隐后沿H_BACK | 行有效H_DISP | 行消隐前沿H_FRONT | 行扫描总周期H_TOTAL | 帧同步V_SYNC | 帧消隐后沿 V_BACK | 帧有效V_DISP | 帧消隐前沿V_FRONT | 帧扫描总周期V_TOTAL |
---|---|---|---|---|---|---|---|---|---|---|---|
640*480@60Hz | 25.175 | 96 | 48 | 640 | 16 | 800 | 2 | 33 | 480 | 10 | 525 |
800*600@60Hz | 50 | 120 | 64 | 800 | 56 | 1040 | 6 | 23 | 600 | 37 | 666 |
1024*768@60Hz | 65 | 136 | 160 | 1024 | 24 | 1344 | 6 | 29 | 768 | 3 | 806 |
1280*720@25Hz | 74.25 | 40 | 220 | 1280 | 2420 | 3960 | 5 | 20 | 720 | 5 | 750 |
1280*720@30Hz | 37.125 | 40 | 220 | 1280 | 110 | 1650 | 5 | 20 | 720 | 5 | 750 |
1280*720@30Hz | 74.25 | 40 | 220 | 1280 | 1760 | 3300 | 5 | 20 | 720 | 5 | 750 |
1280*720@50Hz | 74.25 | 40 | 220 | 1280 | 440 | 1980 | 5 | 20 | 720 | 5 | 750 |
1280*720@60Hz | 74.25 | 40 | 220 | 1280 | 110 | 1650 | 5 | 20 | 720 | 5 | 750 |
1280*1024@60Hz | 108 | 112 | 248 | 1280 | 48 | 1688 | 3 | 38 | 1024 | 1 | 1066 |
1920*1080@25Hz | 74.25 | 44 | 148 | 1920 | 528 | 2640 | 5 | 36 | 1080 | 4 | 1125 |
1920*1080@30Hz | 74.25 | 44 | 148 | 1920 | 88 | 2200 | 5 | 36 | 1080 | 4 | 1125 |
1920*1080@50Hz | 148.5 | 44 | 148 | 1920 | 528 | 2640 | 5 | 36 | 1080 | 4 | 1125 |
1920*1080@60Hz | 148.5 | 44 | 148 | 1920 | 88 | 2200 | 5 | 36 | 1080 | 4 | 1125 |
5.产生帧行有效信号的Verilog代码
点击link即可下载产生帧行有效信号的Verilog代码。
6.帧行有效信号的vivado仿真结果
上图的配置参数为:
parameter H_PIXELS = 36; // Number of effective pixels in a row.
parameter H_FRONT = 5; // Row blanking front.
parameter H_BACK = 5; // Row blanking back.
parameter H_SYNCTIME = 5; // Number of row synchronization points.
parameter H_PERIOD = H_PIXELS + H_FRONT + H_BACK + H_SYNCTIME; // Row period value.
parameter V_LINES = 6; // The number of valid rows in a frame.
parameter V_FRONT = 1; // Frame blanking front.
parameter V_BACK = 0; // Frame blanking back.
parameter V_SYNCTIME = 1; // Number of frame synchronization points.
parameter V_PERIOD = V_LINES + V_FRONT + V_BACK + V_SYNCTIME; // Frame period value.