对于多字节的uart接收多字节的数据,传送到rom,再将rom里面的数据给到vga。
问题:通过串口接收,发送到板子的数据,在板子怎么能够取模。取模不是应该在电脑进行图形描述才可以生成对应的数据。
总结:
今天学习了,vga显示模块显示中的黑块移动
https://blog.csdn.net/qq_41467882/article/details/87078721
每次对于黑块的移动,使用了1秒计时器,每一秒,进行(左上角的)坐标点,加减,之后对于在一个规定的范围内显示黑色的区域,每一秒随着(左上角的)坐标点进行变化,形成黑块移动。也对于在vga上的显示,定义对应的坐标,通过对应坐标约束来进行实现不同的显示东西。
在之后的坐标约束,引起了通过一个软件,输入你想显示的东西,得到特定的坐标约束,这就是取模软件(pc to lcd),得到数据来进行约束。
module vga_display2(
vga_clk,
rst_n,
x_pixel,
y_pixel,
pixel_data
);
input vga_clk ;
input rst_n ;
input [9:0] x_pixel ;
input [9:0] y_pixel ;
//---------------------------------
output reg [23:0] pixel_data;
//---------------------------------
//---------------------------------
parameter white = 24'b1111_1111__1111_1111__1111_1111;
parameter black = 24'b0000_0000__0000_0000__0000_0000;
parameter red = 24'b1111_1111__0000_0000__0000_0000;
parameter green = 24'b0000_0000__1111_1111__0000_0000;
parameter bule = 24'b0000_0000__0000_0000__1111_1111;
//---------------------------------
//28*63
reg [15:0] char [15:0];
always@(posedge vga_clk)
begin
char[0 ] <= 16'h0880;//此数据描述第一个显示点位转换为二进制0000 1000 0000 1000 一则为点亮的点
char[1 ] <= 16'h0880;
char[2 ] <= 16'h0880;
char[3 ] <= 16'h11FE;
char[4 ] <= 16'h1102;
char[5 ] <= 16'h3204;
char[6 ] <= 16'h3420;
char[7 ] <= 16'h5020;
char[8 ] <= 16'h9128;
char[9 ] <= 16'h1124;
char[10] <= 16'h1224;
char[11] <= 16'h1222;
char[12] <= 16'h1422;
char[13] <= 16'h1020;
char[14] <= 16'h10A0;
char[15] <= 16'h1040;
end
always@(posedge vga_clk or negedge rst_n)
begin
if(!rst_n)
pixel_data <= black;
else
if(x_pixel <= 320 && y_pixel <= 240)
if(x_pixel <= 63 && y_pixel <= 32)
if(char[y_pixel][16-x_pixel])
pixel_data <= black;
else
pixel_data <= white;
else
pixel_data <= green;
else
pixel_data <= bule;
end
endmodule