使用工具:Xilinx ISE 14.7
VGA驱动的设计与实现主要就在于数据时序的解析,VGA的数据分为行数据与帧数据,两者的解析原理是一致的,在这里对行数据进行解析:
行数据时序是指显示一行的数据的时序。从上图我们可以看出行同步信号就是一个脉冲信号,它一个时间周期长度e = a + b + c + d;a为低电平时间。a、b、c、d均为时间信号,这4个数据会根据VGA显示的分辨率和频率的需要进行相应的改变。在上图中不难看出行数据时序是按顺序叠加的,其中显示有效数据区域为c所在的区域。
下面是VGA帧数据时序与常见刷新率时序表:
以800*600分辨率 75Hz为例。其中显示有效数据区域的行区间为[240,1040],帧区间为[34,624]。其中当行时序大于1056时代表一行扫描结束,此时换行,帧数加一,当帧时序大于625时代表一次完整扫描结束,帧时序置零,进入下一次扫描。
在这里值得注意的是是设计时要时钟使用二分频,具体为什么我也不清楚,但是不使用二分频时无法正常显示
以下给出800*600分辨率 75Hz的VGA驱动的设计工程项目的链接:点击打开链接
本文详细介绍了如何使用Verilog在FPGA中设计和实现VGA驱动,重点在于理解数据时序,特别是行数据时序。通过解析VGA的行数据时序,展示了在800*600分辨率75Hz下的有效显示区间,并指出在设计时需使用二分频的时钟。提供了800*600@75Hz VGA驱动的工程示例链接。

3961

被折叠的 条评论
为什么被折叠?



