⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video_out.v

📁 Viertex 2 开发板的接口程序
💻 V
字号:
//     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
//     SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR
//     XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE, OR INFORMATION
//     AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION
//     OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS
//     IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
//     AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
//     FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY
//     WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
//     IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
//     REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
//     INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
//     FOR A PARTICULAR PURPOSE.
//
//     (c) Copyright 2004 Xilinx, Inc.
//     All rights reserved.
//
/*
-------------------------------------------------------------------------------
   Title      : Video Output Mux
   Project    : XUP Virtex-II Pro Development System 
-------------------------------------------------------------------------------
   File       : VIDEO_OUT.v
   Company    : Xilinx, Inc.
   Created    : 2004/08/12
   Last Update: 2005/06/15
   Copyright  : (c) Xilinx Inc, 2005
-------------------------------------------------------------------------------
   Uses       : 
-------------------------------------------------------------------------------
   Used by    : HW_BIST.v
-------------------------------------------------------------------------------
   Description: This module selects the correct video output data based on the
   				line count output of the video timing generator.
				The upper third of the display is character based data and will
				be displayed as white characters. The lower two thirds of the
				display is based on bit mapped data.
 
	Conventions:
		All external port signals are UPPER CASE.
		All internal signals are LOWER CASE and are active HIGH.


-------------------------------------------------------------------------------
*/
module VIDEO_OUT
(
pixel_clock,
reset,
VGA_OUT_PIXEL_CLOCK,
VGA_HSYNCH,
VGA_VSYNCH,
VGA_COMP_SYNCH,
VGA_OUT_BLANK_Z,
VGA_OUT_RED,
VGA_OUT_GREEN,
VGA_OUT_BLUE,
char_mode_data,
vga_red_bar_data,
vga_green_bar_data,
vga_blue_bar_data,
vga_ramp_data,
h_synch_delay,
v_synch_delay,
comp_synch,
blank,
line_count
);



input			pixel_clock;
input			reset;
output			VGA_OUT_PIXEL_CLOCK;
output			VGA_HSYNCH;
output			VGA_VSYNCH;
output			VGA_COMP_SYNCH;
output			VGA_OUT_BLANK_Z;
output	[7:0]	VGA_OUT_RED;
output	[7:0]	VGA_OUT_GREEN;
output	[7:0]	VGA_OUT_BLUE;
input	[7:0]	char_mode_data;
input	[7:0]	vga_red_bar_data;
input	[7:0]	vga_green_bar_data;
input	[7:0]	vga_blue_bar_data;
input	[7:0]	vga_ramp_data;
input			h_synch_delay;
input			v_synch_delay;
input			comp_synch;
input			blank;
input	[9:0]	line_count;

reg				VGA_HSYNCH;
reg				VGA_VSYNCH;
reg				VGA_COMP_SYNCH;
reg				VGA_OUT_BLANK_Z;
reg		[7:0]	VGA_OUT_RED;
reg		[7:0]	VGA_OUT_GREEN;
reg		[7:0]	VGA_OUT_BLUE;

wire high = 1'b1; 
wire low  = 1'b0; 

//wire VGA_OUT_PIXEL_CLOCK = pixel_clock;

// make the external video connections
always @ (posedge pixel_clock or posedge reset) begin
	if (reset) begin								// shut down the video output during reset
		VGA_HSYNCH	 		<= 1'b1;
		VGA_VSYNCH 	 		<= 1'b1;
		VGA_COMP_SYNCH 		<= 1'b1;
		VGA_OUT_BLANK_Z 	<= 1'b0;
		VGA_OUT_RED[7:0]	<= 8'h00;
		VGA_OUT_GREEN[7:0]	<= 8'h00;
		VGA_OUT_BLUE[7:0]	<= 8'h00;
		end
	else if (line_count < 160) begin				// display the character mode data
		VGA_HSYNCH	 		<= h_synch_delay;
		VGA_VSYNCH 	 		<= v_synch_delay;
		VGA_COMP_SYNCH 		<= 1'b0;		// disable sync on green
		VGA_OUT_BLANK_Z 	<= !blank;
		VGA_OUT_RED[7:0]	<= char_mode_data[7:0];	//silicon serial number and PS/2 data
		VGA_OUT_GREEN[7:0]	<= char_mode_data[7:0];
		VGA_OUT_BLUE[7:0]	<= char_mode_data[7:0];
		end
	else if ((line_count > 160) & (line_count < 318)) begin // color bars
		VGA_HSYNCH	 		<= h_synch_delay;
		VGA_VSYNCH 	 		<= v_synch_delay;
		VGA_COMP_SYNCH 		<= 1'b0;		// disable sync on green
		VGA_OUT_BLANK_Z 	<= !blank;
		VGA_OUT_RED[7:0]	<= vga_red_bar_data[7:0];
		VGA_OUT_GREEN[7:0]	<= vga_green_bar_data[7:0];
		VGA_OUT_BLUE[7:0]	<= vga_blue_bar_data[7:0];
		end
	else if (line_count > 320) begin				// black and white ramp
		VGA_HSYNCH	 		<= h_synch_delay;
		VGA_VSYNCH 	 		<= v_synch_delay;
		VGA_COMP_SYNCH 		<= 1'b0;		// disable sync on green
		VGA_OUT_BLANK_Z 	<= !blank;
		VGA_OUT_RED[7:0]	<= vga_ramp_data[7:0];
		VGA_OUT_GREEN[7:0]	<= vga_ramp_data[7:0];
		VGA_OUT_BLUE[7:0]	<= vga_ramp_data[7:0];
		end
	else begin										// default black screen
		VGA_HSYNCH	 		<= h_synch_delay;
		VGA_VSYNCH 	 		<= v_synch_delay;
		VGA_COMP_SYNCH 		<= 1'b0;		// disable sync on green
		VGA_OUT_BLANK_Z 	<= !blank;
		VGA_OUT_RED[7:0]	<= 8'h00;
		VGA_OUT_GREEN[7:0]	<= 8'h00;
		VGA_OUT_BLUE[7:0]	<= 8'h00;
		end
	end 

OFDDRTRSE  PIXEL_CLOCK_OUT(
.O   (VGA_OUT_PIXEL_CLOCK),
.C0  (pixel_clock),
.C1  (!pixel_clock),
.CE  (high),
.D0  (low),
.D1  (high),
.R   (reset),
.S   (low),
.T   (low));


endmodule // VIDEO_OUT


 module OFDDRTRSE (O, C0, C1, CE, D0, D1, R, S, T); // synthesis syn_black_box
    output O;
    input  C0, C1, CE, D0, D1, R, S, T;
 endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -