/Verilog-VGA-game

A simple game written in Verilog HDL language and display on the VGA screen.

Primary LanguageVerilog

Verilog-VGA-game

A simple game written in Verilog HDL language and display on the VGA screen.

这是个简单的游戏,相信都玩过的,一个挡板,一个直线飞的小球,挡板需要左右移动挡住小球,小球通过了就算输一分。 在VGA上显示小球和挡板,Basys2开发板的BTN3和BTN0分别控制挡板左右移动,输的分数会在数码管上显示。 速度可以控制,通过SW3~SW0控制,一共16档,最低的是静止档。

SBgame.v是顶层文件

sbgame.bit是最后生成的比特流文件,可以直接烧到板子上,如果有Basys2开发板的可以直接烧。

Basys2Bist.ucf是引脚约束文件,是板子例程里的约束文件删删改改出来的,连名字都懒得改...

这是集成电路设计实验的作业,搞了一两天吧,也挺麻烦的,毕竟是第一次接触。 有几个要注意的点:

  • 用的是 Digilent 公司的 Basys2 开发板
  • 开发板自带的时钟是50MHz,VGA显示模块里先做了二分频处理,是因为600480的分辨率需要25MHz的频率;800600的需要40MHz,比较难弄出来,精度也不太好,有兴趣的话可以试一下。
  • 数码管显示模块里对时钟做了128分频处理,是因为有4个数码管,但是选通脚只有一个,意味着需要快速刷新4个数码管,利用视觉暂留效果做出常亮的样子,而数码管本身不能支持很高的刷新频率,LED电压的rising time和falling time太长,频率一旦高就会出现残影,所有数码管的显示全部叠加,结果就是全部显示8
  • 球和挡板的颜色都是彩色的,颜色是坐标的函数,我觉得其实挺难看的,可以自行把它们改成纯色的。

欢迎各位给这个小小小小小游戏添加各种各样有趣的新特色或者脑洞。