blob: cb01800606287b1ae8d87a1952a903a6ae29172a [file] [log] [blame]
`default_nettype none
`timescale 1ns/10ps
module boot_logo(
input [9:0] hpos,
input [9:0] vpos,
output pixel,
input [9:0] loading_offset
);
localparam SCALE = 1;
localparam LOGO_WIDTH = 16*SCALE;
localparam LOGO_HEIGHT = 19*SCALE;
localparam LOGO_START_H = (640-LOGO_WIDTH)/2;
localparam LOGO_START_V = (480-LOGO_HEIGHT)/2;
wire [9:0] hlogo = (hpos - LOGO_START_H)/SCALE;
wire [9:0] vlogo = (vpos - LOGO_START_V)/SCALE;
wire [9:0] vlogo_with_offset = (vlogo > 0 && vlogo<8) ? vlogo + loading_offset*SCALE : vlogo;
wire in_logo_area = (hpos >= LOGO_START_H) & (hpos < (LOGO_START_H+LOGO_WIDTH)) & (vpos >= LOGO_START_V) & (vpos < (LOGO_START_V+LOGO_HEIGHT));
assign pixel = in_logo_area ? ~LOGO[ ( ((LOGO_HEIGHT/SCALE-vlogo_with_offset)<<4) - hlogo)] : 1;
// reg [15:0] logo [0:17] = {
parameter LOGO = {
16'b0111111111111110,
16'b0100000000000010,
16'b0101111101000010,
16'b0100000000000010,
16'b0101010111001010,
16'b0100000000000010,
16'b0101011000011010,
16'b0100000000000010,
16'b0111111111111110,
16'b0000111111110000,
16'b0111111111111110,
16'b0111111111111010,
16'b0111111111111110,
16'b0111111111111110,
16'b0000000000000000,
16'b0101011101101010,
16'b0101010101001100,
16'b0111011101001010,
16'b0101010101101010
};
// wire index =
endmodule
/*
*/