一、VGA原理
参见博文VGA(一)
二、黑白棋盘
2.1 棋盘显示算法
根据棋盘中每个小方格行列坐标之和的奇偶性来显示不同的颜色,和是奇数显示白色,偶数显示黑色。
2.2 显示原理
每个小方格包括40X40个像素点,640X480总共可以形成16X12个小方格。在同一个小方格内的像素点应该具有相同的属性,即它们的行列坐标应该相同。具体实现,水平计数器和垂直计数器分别除40,将得到的结果最低位进行异或运算,结果为1显示白色,为0显示黑色。特别注意cnt_hs和cnt_vs要减去无效显示区域的坐标后,再进行除法运算。
三、代码
1、顶层代码如下:
module vga_chessboard (
input wire clk,
input wire rst_n,
output wire [7:0] vga_rgb,
output wire vga_hs,
output wire vga_vs
);
wire clk_25m;
wire pll_locked;
pll pll_inst (
.areset ( ~rst_n ),
.inclk0 ( clk ),
.c0 ( clk_25m ),
.locked ( pll_locked)
);
vga_ctrl vga_ctrl_inst (
.clk (clk_25m ),
.rst_n (pll_locked ),
.