Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module syswb(VGA_R, VGA_G, VGA_B, VGA_HS, VGA_VS, CLOCK_27);
- output reg[3:0] VGA_R;
- output reg[3:0] VGA_G;
- output reg[3:0] VGA_B;
- reg [9:0] HS_count;
- output reg VGA_VS;
- output reg VGA_HS;
- 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;
- clock u0 (
- .clk_clk (CLOCK_27[1]), // clk.clk
- .reset_reset_n (0), // reset.reset_n
- .clk_out_clk (VGA_CLK), // clk_out.clk
- .clk_in_clk (CLOCK_27[1]), // clk_in.clk
- .clk_res_reset (0) // clk_res.reset
- );
- always @(*)
- begin
- /*
- if(HS_count>=BACK_PORCH_C + 320+ 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 -240+ V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- begin
- VGA_R = 4'd15;
- VGA_B = 0;
- VGA_G = 0;
- end
- else if(HS_count>=BACK_PORCH_C + SYNC_PULSE_B &&
- HS_count <= BACK_PORCH_C - 320 + SYNC_PULSE_B + ACTIVE_VIDEO_D &&
- VS_count >= V_BACK_PORCH_C + V_SYNC_PULSE_B &&
- VS_count<= V_BACK_PORCH_C - 240 + V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- begin
- VGA_R = 0;
- VGA_B = 4'd15;
- VGA_G = 0;
- end
- else if(HS_count>=BACK_PORCH_C + SYNC_PULSE_B &&
- HS_count <= BACK_PORCH_C -320+ SYNC_PULSE_B + ACTIVE_VIDEO_D &&
- VS_count >= V_BACK_PORCH_C + 240 + V_SYNC_PULSE_B &&
- VS_count<= V_BACK_PORCH_C+ V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- begin
- VGA_R = 0;
- VGA_B = 0;
- VGA_G = 4'd15;
- end
- */
- if(HS_count>=BACK_PORCH_C + SYNC_PULSE_B &&
- HS_count <= BACK_PORCH_C -320+ SYNC_PULSE_B + ACTIVE_VIDEO_D &&
- VS_count >= V_BACK_PORCH_C + 240 + V_SYNC_PULSE_B &&
- VS_count<= V_BACK_PORCH_C+ V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- begin
- VGA_R = 4'd15;
- VGA_B = 0;
- VGA_G = 0;
- end
- end
- /*
- assign VGA_R =(HS_count>=BACK_PORCH_C + 320 + 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 -240+ V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- ? 4'd15 : 0;
- assign VGA_B =(HS_count>=BACK_PORCH_C + SYNC_PULSE_B &&
- HS_count <= BACK_PORCH_C -320+ SYNC_PULSE_B + ACTIVE_VIDEO_D &&
- VS_count >= V_BACK_PORCH_C + V_SYNC_PULSE_B &&
- VS_count<= V_BACK_PORCH_C - 240 + V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- ? 4'd15 : 0;
- assign VGA_G =(HS_count>=BACK_PORCH_C + SYNC_PULSE_B &&
- HS_count <= BACK_PORCH_C -320+ SYNC_PULSE_B + ACTIVE_VIDEO_D &&
- VS_count >= V_BACK_PORCH_C + 240 + V_SYNC_PULSE_B &&
- VS_count<= V_BACK_PORCH_C+ V_SYNC_PULSE_B + V_ACTIVE_VIDEO_D)
- ? 4'd15 : 0;
- */
- //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;
- //VS 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
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement