Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- `default_nettype none disable implicit definitions by Verilog
- //apio build --size 1k --type hx --pack vq100
- module top( //top module and signals wired to FPGA pins
- CLK25MHz,
- vga_r,
- vga_g,
- vga_b,
- vga_hs,
- vga_vs,
- wclk,
- write_en,
- din,
- btnUp,
- btnDwn,
- btnLft,
- btnRgt,
- btnA,
- btnB
- );
- parameter addr_width = 15;
- parameter data_width = 2;
- reg [data_width-1:0] mem [(1<<addr_width)-1:0];
- reg [data_width-1:0] dout;
- wire [addr_width-1:0] raddr;
- reg [addr_width-1:0] raddr_r = 0;
- assign raddr = raddr_r;
- input wclk;
- input write_en;
- input btnUp;
- input btnDwn;
- input btnLft;
- input btnRgt;
- input btnA;
- input btnB;
- reg write_en_r;
- input [data_width-1:0] din;
- wire [addr_width-1:0] waddr;
- reg [addr_width-1:0] waddr_r = 0;
- assign waddr = waddr_r;
- always @(negedge wclk) // Write memory
- begin
- if(write_en == 0 && write_en_r == 1) begin // VSYNC
- mem[0] <= din;
- waddr_r <= 1;
- write_en_r <= 0;
- end
- else begin
- mem[waddr] <= din;
- waddr_r <= waddr_r + 1; // Increment address
- if(write_en == 1) begin
- write_en_r <= 1;
- end
- end
- end
- input CLK25MHz; // Oscillator input 25MHz
- output [7:0] vga_r; // VGA Red 3 bit
- output [7:0] vga_g; // VGA Green 3 bit
- output [7:0] vga_b; // VGA Blue 3 bit
- output vga_hs; // H-sync pulse
- output vga_vs; // V-sync pulse
- parameter h_pulse = 96; //H-SYNC pulse width 96 * 40 ns (25 Mhz) = 3.84 uS
- parameter h_bp = 48; //H-BP back porch pulse width
- parameter h_pixels = 640; //H-PIX Number of pixels horizontally
- parameter h_fp = 16; //H-FP front porch pulse width
- parameter h_pol = 1'b0; //H-SYNC polarity
- parameter h_frame = 800; //800 = 96 (H-SYNC) + 48 (H-BP) + 640 (H-PIX) + 16 (H-FP)
- parameter v_pulse = 2; //V-SYNC pulse width
- parameter v_bp = 33; //V-BP back porch pulse width
- parameter v_pixels = 480; //V-PIX Number of pixels vertically
- parameter v_fp = 10; //V-FP front porch pulse width
- parameter v_pol = 1'b1; //V-SYNC polarity
- parameter v_frame = 525; //525 = 2 (V-SYNC) + 33 (V-BP) + 480 (V-PIX) + 10 (V-FP)
- parameter rst = 4'b1010;
- reg [7:0] vga_r_r; //VGA colour registers R,G,B x 3 bit
- reg [7:0] vga_g_r;
- reg [7:0] vga_b_r;
- reg vga_hs_r; //H-SYNC register
- reg vga_vs_r; //V-SYNC register
- assign vga_r = vga_r_r; //assign the output signals for VGA to the VGA registers
- assign vga_g = vga_g_r;
- assign vga_b = vga_b_r;
- assign vga_hs = vga_hs_r;
- assign vga_vs = vga_vs_r;
- reg wantChoice = 0;
- reg [7:0] timer_t = 8'b0; //8-bit timer with 0 initialisation
- reg reset = 1;
- reg [9:0] c_row; //visible frame register row
- reg [9:0] c_col; //visible frame register column
- reg [9:0] c_hor; //complete frame register horizontally
- reg [9:0] c_ver; //complete frame register vertically
- reg [9:0] scale_col; //counter for scaling horizontally
- reg [9:0] scale_row; //counter for scaling vertically
- reg [3:0] clrRegCnt = 4'b0000; //Color counting registry
- reg [7:0] color_r;
- reg [7:0] color_g;
- reg [7:0] color_b;
- reg disp_en; //display enable flag
- always @ (posedge CLK25MHz) begin
- if(btnA == 1) begin
- if(clrRegCnt <= rst) begin
- clrRegCnt <= clrRegCnt + 4'b0001;
- end
- else begin
- clrRegCnt <= 4'b0000;
- end
- end
- if(timer_t > 250) begin //generate 10 uS RESET signal
- reset <= 0;
- end
- else begin
- reset <= 1; //while in reset display is disabled
- timer_t <= timer_t + 1;
- disp_en <= 0;
- end
- if(reset == 1) begin //while RESET is high init counters
- c_hor <= 0;
- c_ver <= 0;
- vga_hs_r <= 1;
- vga_vs_r <= 0;
- c_row <= 0;
- c_col <= 0;
- scale_col <= 82;
- scale_row <= 27;
- end
- else begin //update current beam position
- if(c_hor < h_frame - 1) begin
- c_hor <= c_hor + 1;
- end
- else begin
- c_hor <= 0;
- if(c_ver < v_frame - 1) begin
- c_ver <= c_ver + 1;
- end
- else begin
- c_ver <= 0;
- end
- end
- end
- if(c_hor < h_pixels + h_fp + 1 || c_hor > h_pixels + h_fp + h_pulse) begin //H-SYNC generator
- vga_hs_r <= ~h_pol;
- end
- else begin
- vga_hs_r <= h_pol;
- end
- if(c_ver < v_pixels + v_fp || c_ver > v_pixels + v_fp + v_pulse) begin //V-SYNC generator
- vga_vs_r <= ~v_pol;
- end
- else begin
- vga_vs_r <= v_pol;
- end
- if(c_hor < h_pixels) begin //c_col and c_row counters are updated only in the visible time-frame
- c_col <= c_hor;
- end
- if(c_ver < v_pixels) begin
- c_row <= c_ver;
- end
- if(c_hor < h_pixels && c_ver < v_pixels) begin //VGA colour signals are enabled only in the visible time frame
- disp_en <= 1;
- end
- else begin
- disp_en <= 0;
- end
- if(disp_en == 1 && reset == 0) begin
- dout <= mem[raddr]; // Read memory
- if(c_row == 0 && c_col == 0) begin //reset scaling
- scale_col <= 82;
- scale_row <= 27;
- end
- if(c_row == 23 && c_col == 639) begin //reset address
- raddr_r <= 0;
- end
- if(c_col == 0 && c_row > 21 && c_row < 453) begin //reset at the start of each line
- scale_col <= 82;
- if(c_row == scale_row) begin
- scale_row <= scale_row + 3;
- end
- else if(raddr_r != 0) begin
- //set pixel buffer address back to beginning of line
- raddr_r <= raddr_r - 160;
- end
- end
- if(c_col > 80 && c_col < 561 && c_row > 20 && c_row < 453) begin //centered 480 x 432 area
- if(c_col == scale_col && c_col < 560) begin
- scale_col <= scale_col + 3;
- //increment pixel buffer address horizontally
- raddr_r <= raddr_r + 1;
- end
- if(clrRegCnt == 4'b0000) begin //Default GB theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'hF0;
- color_g <= 8'h83;
- color_b <= 8'hF0;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h03;
- color_g <= 8'h26;
- color_b <= 8'h03;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'hB8;
- color_g <= 8'hCA;
- color_b <= 8'hF0;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hB9;
- color_g <= 8'hCB;
- color_b <= 8'hF0;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0001) begin//Zelda DX Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'hA5;
- color_g <= 8'h93;
- color_b <= 8'h12;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'hB6;
- color_g <= 8'hC8;
- color_b <= 8'h24;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'hB7;
- color_g <= 8'h6C;
- color_b <= 8'hB7;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hFF;
- color_g <= 8'hFF;
- color_b <= 8'h5B;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0010) begin//Pokemanz Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h7E;
- color_g <= 8'h8E;
- color_b <= 8'h3F;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'hC8;
- color_g <= 8'h38;
- color_b <= 8'h3C;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h36;
- color_g <= 8'HD4;
- color_b <= 8'hF8;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'h21;
- color_g <= 8'hB0;
- color_b <= 8'h91;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0011) begin//Kirby Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'hC2;
- color_g <= 8'hC2;
- color_b <= 8'h69;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h77;
- color_g <= 8'h33;
- color_b <= 8'h7E;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h7E;
- color_g <= 8'h68;
- color_b <= 8'h68;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'h7F;
- color_g <= 8'hEB;
- color_b <= 8'h7F;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0100) begin//Metroid Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'hC2;
- color_g <= 8'h71;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h40;
- color_g <= 8'hE7;
- color_b <= 8'h06;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h6B;
- color_g <= 8'h52;
- color_b <= 8'h85;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hEA;
- color_g <= 8'hFD;
- color_b <= 8'hE1;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0101) begin//Super mario 6 golden coins Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h00;
- color_g <= 8'h00;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h11;
- color_g <= 8'h6C;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'hFD;
- color_g <= 8'h6A;
- color_b <= 8'h77;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hFE;
- color_g <= 8'h7F;
- color_b <= 8'h6B;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0110) begin//Greyscale Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h00;
- color_g <= 8'h00;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h76;
- color_g <= 8'h76;
- color_b <= 8'h76;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h6B;
- color_g <= 8'h6B;
- color_b <= 8'h6B;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hFF;
- color_g <= 8'hFF;
- color_b <= 8'hFF;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b0111) begin//MegaMan Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'hE1;
- color_g <= 8'h00;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'hE9;
- color_g <= 8'h00;
- color_b <= 8'h00;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h7F;
- color_g <= 8'hE8;
- color_b <= 8'h05;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hEC;
- color_g <= 8'h7F;
- color_b <= 8'h7F;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b1000) begin//GRAPEFRUIT Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h56;
- color_g <= 8'h92;
- color_b <= 8'hC6;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h7B;
- color_g <= 8'h56;
- color_b <= 8'h19;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h4F;
- color_g <= 8'h2B;
- color_b <= 8'hB6;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'hFF;
- color_g <= 8'h5F;
- color_b <= 8'hDD;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b1001) begin//SUPER GB Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h33;
- color_g <= 8'hE1;
- color_b <= 8'h05;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h6A;
- color_g <= 8'h73;
- color_b <= 8'h52;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h6D;
- color_g <= 8'hE8;
- color_b <= 8'h94;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'h7F;
- color_g <= 8'h7E;
- color_b <= 8'h6C;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- if(clrRegCnt == 4'b1010) begin//SPACEHAZE Theme
- if(dout == 3) begin //check pixel buffer data
- color_r <= 8'h33;
- color_g <= 8'hC2;
- color_b <= 8'h05;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 2) begin
- color_r <= 8'h64;
- color_g <= 8'h78;
- color_b <= 8'hF8;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else if(dout == 1) begin
- color_r <= 8'h49;
- color_g <= 8'h3E;
- color_b <= 8'h44;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- else begin
- color_r <= 8'h2E;
- color_g <= 8'h3F;
- color_b <= 8'h4E;
- vga_r_r <= color_r[7:0];
- vga_g_r <= color_g[7:0];
- vga_b_r <= color_b[7:0];
- end
- end
- /*if(clrRegCnt == 3'b010) begin//SM6GC Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b000000000000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b100011000000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b110110101110;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b111011111011;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- if(clrRegCnt == 3'b011) begin//METROID Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b110010000000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b000011101100;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b101110001010;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b101011011000;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- if(clrRegCnt == 3'b100) begin//2bit BW Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b000000000000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b110011001100;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b101110111011;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b111111111111;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- if(clrRegCnt == 3'b101) begin//Pokemon Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b100010001000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b100011101001;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b111110111000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b111111101111;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- if(clrRegCnt == 3'b110) begin//Choco Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b111111011011;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b110110101010;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b101011001000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b100010001100;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- if(clrRegCnt == 3'b111) begin//Choco Theme
- if(dout == 3) begin //check pixel buffer data
- color <= 12'b110011001000;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0]; // BLUE
- end
- else if(dout == 2) begin
- color <= 12'b111010101110;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0];
- end
- else if(dout == 1) begin
- color <= 12'b110010001100;
- vga_r_r <= color[11:8];
- vga_g_r <= color[7:4]; // GREEN
- vga_b_r <= color[3:0]; // + BLUE = CYAN
- end
- else begin
- color <= 12'b100011011111;
- vga_r_r <= color[11:8]; // BLACK
- vga_g_r <= color[7:4];
- vga_b_r <= color[3:0];
- end
- end
- end
- else begin //everything else is black
- vga_r_r <= 0;
- vga_g_r <= 0;
- vga_b_r <= 0;
- end
- end
- else begin //when display is not enabled everything is black
- vga_r_r <= 0;
- vga_g_r <= 0;
- vga_b_r <= 0;
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement