Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //zaddom2
- module fpga2018a (CLOCK_27, VGA_HS, VGA_VS, VGA_R, VGA_B, VGA_G);
- output reg VGA_HS;
- output reg VGA_VS;
- output reg [9:0] VGA_R;
- output reg [9:0] VGA_G;
- output reg [9:0] VGA_B;
- input [1:0] CLOCK_27;
- parameter FRONT_PORCH_A = 16;
- parameter SYNC_PULSE_B = 96;
- parameter BACK_PORCH_C = 48;
- parameter ACTIVE_VIDEO_D = 640;
- parameter V_FRONT_PORCH_A = 10;
- parameter V_SYNC_PULSE_B = 2;
- parameter V_BACK_PORCH_C = 33;
- parameter V_ACTIVE_VIDEO_D = 480;
- wire VGA_CLK;
- a u0 (
- .clk_res_reset (0), // clk_res.reset
- .clk_out_clk (VGA_CLK), // clk_out.clk
- .clk_in_clk (CLOCK_27) // clk_in.clk
- );
- reg [9:0] HS_count;
- //HS signal generator
- always @(posedge VGA_CLK)
- begin
- if (HS_count < FRONT_PORCH_A + SYNC_PULSE_B + BACK_PORCH_C + ACTIVE_VIDEO_D)
- HS_count <= HS_count + 1;
- else
- HS_count <= 0;
- if (HS_count < SYNC_PULSE_B)
- VGA_HS <= 0;
- else
- VGA_HS <= 1;
- end
- reg [9:0] VS_count;
- //HS signal generator
- always @(posedge VGA_CLK)
- begin
- if (HS_count==0)
- begin
- if (VS_count < V_FRONT_PORCH_A + V_SYNC_PULSE_B + V_BACK_PORCH_C + V_ACTIVE_VIDEO_D)
- VS_count <= VS_count +1;
- else
- VS_count <= 0;
- if (VS_count < V_SYNC_PULSE_B)
- VGA_VS <= 0;
- else
- VGA_VS <=1;
- end
- end
- wire IS_VGA_DISPLAY;
- assign IS_VGA_DISPLAY = ((HS_count >= BACK_PORCH_C + SYNC_PULSE_B && HS_count <= BACK_PORCH_C + SYNC_PULSE_B +
- ACTIVE_VIDEO_D && VS_count >= V_BACK_PORCH_C + V_SYNC_PULSE_B && VS_count <= V_BACK_PORCH_C + V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D));
- wire [9:0] pos_x, pos_y;
- assign pos_x = HS_count - (BACK_PORCH_C + SYNC_PULSE_B);
- assign pos_y = VS_count - (V_BACK_PORCH_C + V_SYNC_PULSE_B);
- always
- begin
- if (IS_VGA_DISPLAY)
- begin
- if ( (pos_y >= (240/215)*pos_x) && pos_y <= 240 && pos_x >=0 && pos_x <= 240)
- begin
- VGA_R = 0;
- VGA_G = 7;
- VGA_B = 1;
- end
- else if ( pos_y > 240 && (pos_y <= ((-1)*((240/215)*pos_x)+480)) && pos_x >=0 && pos_x <= 240 )
- begin
- VGA_R = 0;
- VGA_G = 7;
- VGA_B = 1;
- end
- else if (pos_x >= 0 && pos_x <= 640 && pos_y >= 0 && pos_y < 160)
- begin
- VGA_R = 220;
- VGA_G = 16;
- VGA_B = 52;
- end
- else if (pos_x >= 0 && pos_x <= 640 && pos_y >= 160 && pos_y < 320)
- begin
- VGA_R = 255;
- VGA_G = 255;
- VGA_B = 255;
- end
- else if (pos_x >= 0 && pos_x <= 640 && pos_y >= 320 && pos_y <= 480)
- begin
- VGA_R = 0;
- VGA_G = 0;
- VGA_B = 0;
- end
- else
- begin
- VGA_B = 0;
- VGA_G = 0;
- VGA_R = 0;
- end
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement