Files

84 lines
1.9 KiB
Verilog

// This module generates color patherns and rwite them in
// BlockRAM memory
//
module pattern_gen #( parameter
LINES = 16,
COLUMNS = 320,
DEPTH = 76_800, //307_200, //
ADDR_WIDTH = 17,
DATA_WIDTH = 12,
SPEED = 2,
SIZE = 2
)(
input clk,
input i_enable,
output [ADDR_WIDTH-1:0] o_addr,
output [DATA_WIDTH-1:0] o_data,
output o_write);
//-------------Internal Constants---------------------------
reg [31:0] speed_counter_reg = 'b0;
// reg [3:0] red_reg = 'b0;
// reg [3:0] blue_reg = 'b0;
// reg [3:0] green_reg = 'b0;
reg [8:0] line_reg = 'b0;
reg [9:0] column_reg = 'b0;
reg write_reg=1'b0;
// always @(posedge clk) begin
// speed_counter_reg <= speed_counter_reg + 1;
// end
always @(posedge clk) begin
// speed_counter_reg <= speed_counter_reg + 1;
// if(speed_counter_reg == SPEED ) begin
// if(i_enable) begin
write_reg <= 1'b1;
speed_counter_reg <= 0;
if(column_reg < COLUMNS-1) begin
column_reg <= column_reg + 1 ;
end
else begin
column_reg <= 0;
if (line_reg< LINES -1 ) begin
line_reg <= line_reg + 1;
end
else begin
line_reg <= 0;
end
end
// end
// end
// else // if (i_enable)
// write_reg <= 1'b0;
end
// always@* begin
// if (line_reg < 239 ) begin
// green_reg <= 4'b1111;
// end
// else begin
// green_reg <= 4'b0000;
// end
// if (column_reg > 319 ) begin
// red_reg <= 4'b1111;
// end
// else begin
// red_reg <= 4'b0000;
// end
// end
assign o_addr = (line_reg * COLUMNS) + column_reg ;
assign o_data = {line_reg[3:0], line_reg[3:0], line_reg[3:0]};//{green_reg, red_reg , blue_reg};
assign o_write = write_reg;
endmodule