Menu Close

FPGA图像处理之四:VGA显示数字时钟

前面我们做过用数码管来显示数字时钟,这篇我们将时钟数字投射到VGA显示器上,让显示器来显示时钟。实现的效果:

VGA显示部分主要要做的是:

1、取得字模,包括0-9,和“:” 共10个字符

2、将字模按一定格式存入ROM。我在工程里使用的是128X64(高X宽)的字模,ROM中每个地址存字符的一行,也即ROM的位宽是64bit。但为了查询方便,并没有直接将字模依次存放进去,而是采用了如下的存放方法:

%title插图%num

 

工程中我们取字模的时候,首先判断需要取哪个字符的字模,然后先查询到字模的首地址,再根据首地址依次加1来取出其他行的字模。这是因为VGA输出的时候,是一行行扫描的,也就是说字模需要一行行给出。这部分是整个项目的重难点,朋友们可以参考 《lookup_rom》模块的内容。

3、改动VGA模块,使得可以输出显示区域的坐标XY值。也就是,当VGA扫描到显示区域的时候,把显示区域,也就是显示屏,的当前坐标输出出来。

4、控制模块。控制模块要根据VGA输出的XY值,以及字符想要显示的初始位置,确定要从rom中取哪个字符哪一行的字模。代码中当扫描到需要显示字符的那一行时,依次取出8个字符的所有该行要显示的字模,(比如,要显示的时间是 23:59:59,vga显示某一行时只需取8个字模里的同一行,其他行在vga扫描其他行的时候再取)。取出的字模拼接在一起,当X坐标到达位置的时候给出颜色值。

5、工程顶层框图如下,其他模块比较简单不再一一介绍。

%title插图%num

 

工程代码见附件。

[content_control]

clock_vga_7seg_quartus_pra006.zip

[/content_control]

Posted in FPGA 教材教案, 教材与教案, 集成电路