You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.6 KiB
Verilog

module data_gen(
input wire clk_25 ,
input wire vga_rst_n ,
input wire [9: 0] pixel_x ,
input wire [9: 0] pixel_y ,
output reg [15: 0] rgb_data
);
parameter RED = 16'hF800 , //红色
ORANGE = 16'hFC00 , //橙色
YELLOW = 16'hFFE0 , //黄色
GREEN = 16'h07E0 , //绿色
CYAN = 16'h07FF , //青色
BLUE = 16'h001F , //蓝色
PURPPLE = 16'hF81F, //紫色
BLACK = 16'h0000 , //黑色
WHITE = 16'hFFFF , //白色
GRAY = 16'hD69A ;
always @(posedge clk_25 or negedge vga_rst_n)begin
if(!vga_rst_n)begin
rgb_data <= 16'h0000;
end
else if((pixel_x >= 0) && (pixel_x < 47))begin
rgb_data <= RED;
end
else if((pixel_x >=48) && (pixel_x < 95))begin
rgb_data <= ORANGE;
end
else if((pixel_x >= 96) && (pixel_x < 143))begin
rgb_data <= YELLOW;
end
else if((pixel_x >= 144) && (pixel_x < 192)) begin
rgb_data <= GREEN;
end
else if((pixel_x >= 192) && (pixel_x < 240)) begin
rgb_data <= CYAN;
end
else if((pixel_x >= 240) && (pixel_x < 288)) begin
rgb_data <= BLUE;
end
else if((pixel_x >= 288) && (pixel_x < 336)) begin
rgb_data <= PURPPLE;
end
else if((pixel_x >= 336) && (pixel_x < 384)) begin
rgb_data <= BLACK;
end
else if((pixel_x >= 384) && (pixel_x < 432)) begin
rgb_data <= WHITE;
end
else if((pixel_x >= 432) && (pixel_x < 480))begin
rgb_data <= GRAY;
end
else begin
rgb_data <= 16'h0000;
end
end
endmodule