利用verilog实现屏幕方块移动
代码如下:
```
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2017/05/12 20:29:36
// Design Name:
// Module Name: vga_test
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: //
// Create Date: 2014/09/22 22:18:12 // Design Name: // Module Name: a1 // Project Name: // Target Devices: // Tool Versions: // Description: //
// Dependencies: //
// Revision:
// Revision 0.01 - File Created // Additional Comments: //
//////////////////////////////////////////////////////////////////////////////////
//640*480@60HZ,时钟像素:25MHZ module a1(
module vga_test(
nclk,rst_n, hsync,vsync, vga_r,r0,r1,r2,vga_g,g0,g1,g2,vga_b,b0,b1,b2
);
input nclk; //内部100M时钟输入
input rst_n; //复位键
output reg hsync,vsync; //场同步,行同步信号
output vga_r,vga_g,vga_b,r0,r1,r2,g0,g1,g2,b0,b1,b2; //颜色信号输出
reg[10:0] x_cnt; //行坐标计数,为后面行的0或者1及具体像素点的位置做准备
reg[9:0] y_cnt; //列坐标计数,为后面列的0或者1及具体像素点的位置做准备
reg clk; //实现4分频后的像素点频率 //100M到25M分频器设计
reg[2:0]clk_cnt;
reg[8:0]flag1;
reg[8:0]flag2;
reg[26:0]count;
initial //寄存器变量赋初值
begin
clk=<