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

📄 den_lcm_test.v.bak

📁 开发板原理图 需要做开发板的可以参考参考
💻 BAK
字号:
// --------------------------------------------------------------------
// Copyright (c) 2005 by Terasic Technologies Inc. 
// --------------------------------------------------------------------
//
// Permission:
//
//   Terasic grants permission to use and modify this code for use
//   in synthesis for all Terasic Development Boards and Altera Development 
//   Kits made by Terasic.  Other use of this code, including the selling 
//   ,duplication, or modification of any portion is strictly prohibited.
//
// Disclaimer:
//
//   This VHDL/Verilog or C/C++ source code is intended as a design reference
//   which illustrates how these types of functions can be implemented.
//   It is the user's responsibility to verify their design for
//   consistency and functionality through the use of formal
//   verification methods.  Terasic provides no warranty regarding the use 
//   or functionality of this code.
//
// --------------------------------------------------------------------
//           
//                     Terasic Technologies Inc
//                     356 Fu-Shin E. Rd Sec. 1. JhuBei City,
//                     HsinChu County, Taiwan
//                     302
//
//                     web: http://www.terasic.com/
//                     email: support@terasic.com
//
// --------------------------------------------------------------------
//
// Major Functions:	DEN LCD Moudule Test
//
// --------------------------------------------------------------------
//
// Revision History :
// --------------------------------------------------------------------
//   Ver  :| Author            		:| Mod. Date :| Changes Made:
//   V1.0 :| Joe Yang,Johnny Fan	:| 07/03/30  :| Initial Revision
//   V1.1 :| Johnny Fan				:| 07/04/30  :| Fixed to Compatible with Quartus II 7.1 
// --------------------------------------------------------------------

module DEN_LCM_Test
	(
		////////////////////	Clock Input	 	////////////////////	 
		CLOCK_50,						//	50 MHz
		////////////////////	Push Button		////////////////////
		KEY,							//	Pushbutton[3:0]
		////////////////////	GPIO	////////////////////////////
		GPIO_0,							//	GPIO Connection 0
	);

////////////////////////	Clock Input	 	////////////////////////
input			CLOCK_50;				//	50 MHz
////////////////////////	Push Button		////////////////////////
input	[3:0]	KEY;					//	Pushbutton[3:0]
////////////////////////	GPIO	////////////////////////////////
inout	[35:0]	GPIO_0;					//	GPIO Connection 0

wire	[7:0]	LCM_R;		//	LCM Data 8 Bits
wire	[7:0]	LCM_G;		//	LCM Data 8 Bits
wire	[7:0]	LCM_B;		//	LCM Data 8 Bits
wire			LCM_GRST;	//	LCM Global Reset	
wire			LCM_NCLK;	//	LCM Clcok
wire			LCM_HD;		//	LCM HSYNC
wire			LCM_VD;		//	LCM	VSYNC
wire			LCM_DEN;	//	LCM	VSYNC
wire			LCM_SCLK;   //	LCM I2C Clock
wire			LCM_SDA;	//	LCM I2C Data
wire			LCM_SCEN;	//	LCM I2C Enable
wire			ADC_DCLK;		
wire			ADC_DIN;		
wire			ADC_DOUT;		
wire			ADC_CS_n;		
wire			ADC_PENIRQ_n;		

wire 	[11:0] 	TX;
wire 	[11:0] 	TY;
wire 			PEN_tr;
wire 			X_Y;
wire 			XYout;
wire 			PWM_r;
wire 			PWM_g;

// Touch Screen //
wire 			TCH_DCLK;
wire 			TCH_CS;
wire 			TCH_PENIRQ;
wire 			TCH_BUSY;
wire 			TCH_DIN;
wire 			TCH_DOUT;
wire 			I2S_BUSY_n;
wire	[1:0]	Display_mode;

reg		[7:0]	clock;
reg 	[31:0] 	div;

////////////// GPIO_O //////////////////
assign	TCH_PENIRQ  =GPIO_0[0];
assign	TCH_DOUT    =GPIO_0[1];
assign	TCH_BUSY    =GPIO_0[2];

assign	GPIO_0[3]	=TCH_DIN;
assign	GPIO_0[4]	=ADC_DCLK;
assign	GPIO_0[5]	=LCM_B[3];
assign	GPIO_0[6]	=LCM_B[2];
assign	GPIO_0[7]	=LCM_B[1];
assign	GPIO_0[8]	=LCM_B[0];
assign	GPIO_0[9]	=~LCM_NCLK;
assign	GPIO_0[10]	=LCM_DEN;
assign	GPIO_0[11]	=LCM_HD;
assign	GPIO_0[12]	=LCM_VD;

assign	GPIO_0[13]	=LCM_B[4];
assign	GPIO_0[14]	=LCM_B[5];
assign	GPIO_0[15]	=LCM_B[6];
assign	GPIO_0[16]	=LCM_B[7];
assign	GPIO_0[17]	=LCM_G[0];
assign	GPIO_0[18]	=LCM_G[1];
assign	GPIO_0[19]	=LCM_G[2];
assign	GPIO_0[20]	=LCM_G[3];
assign	GPIO_0[21]	=LCM_G[4];
assign	GPIO_0[22]	=LCM_G[5];

assign	GPIO_0[23]	=LCM_G[6];
assign	GPIO_0[24]	=LCM_G[7];
assign	GPIO_0[25]	=LCM_R[0];
assign	GPIO_0[26]	=LCM_R[1];
assign	GPIO_0[27]	=LCM_R[2];
assign	GPIO_0[28]	=LCM_R[3];
assign	GPIO_0[29]	=LCM_R[4];
assign	GPIO_0[30]	=LCM_R[5];
assign	GPIO_0[31]	=LCM_R[6];
assign	GPIO_0[32]	=LCM_R[7];

assign	GPIO_0[33]	=LCM_GRST;
assign	GPIO_0[34]	=LCM_SCEN;
assign	GPIO_0[35]	=LCM_SDA;

assign  ADC_DCLK    = ( TCH_DCLK & I2S_BUSY_n )  |  LCM_SCLK;
assign  iTDCLK  	= div [14];
// ----LCM reset ---- //
assign LCM_GRST = DLY0;
// ----LCM clock ---- //
assign LCM_NCLK = div[0]; //25M hz

always @(posedge CLOCK_50)
begin
	 div <= div+1;
end





touch_init		u1	(
					.CLOCK_50(CLOCK_50),
					.SW(60),
	    			.data(8'h92),
					.nRST(DLY1) ,
					.iTDCLK(iTDCLK),
					.TCH_DCLK(TCH_DCLK),
					.TCH_CS(TCH_CS)  ,
					.TCH_DIN(TCH_DIN),
					.TCH_BUSY(TCH_BUSY),
					.TCH_DOUT(TCH_DOUT),
					.TCH_PENIRQ(TCH_PENIRQ),
					.X(TX),
					.Y(TY),
					.PEN_tr(PEN_tr),
					.X_Y(X_Y),
					.XYout(XYout),
					.Display_mode(Display_mode)
					);

pwm_12bit 		u2	(
					.CLOCK_50(CLOCK_50),
					.value   (TX),
					.PWM_o   (PWM_r)
					);

pwm_12bit 		u3	(
					.CLOCK_50(CLOCK_50),
					.value   (TY),
					.PWM_o   (PWM_g)
					);

// Touch panel timming control and RGB data output //

TCON 			u4	(
					.X(TX),
					.Y(TY),
					.NCLK(LCM_NCLK),
					.rstn(DLY1),
					.Display_mode(Display_mode),
					.Hsyn(LCM_HD),
					.Vsyn(LCM_VD),
					.Red(LCM_R),
					.Green(LCM_G),
					.Blue(LCM_B),
					.DENB(LCM_DEN),
					.ClkCnt(),
					.HsynCnt()
					);

// touch panel configuration //
I2S_LCM_Config	u5	(	
					//	Host Side
					.iCLK  (div[2]),
					.iRST_N(DLY1),
					//	I2C Side
					.I2S_SCLK (  LCM_SCLK ),
					.I2S_SDAT (  LCM_SDA ),
					.I2S_SCEN (  LCM_SCEN),
					.I2S_BUSY_n (I2S_BUSY_n)
					);

// system reset  //
Reset_Delay		u6  (.iCLK(CLOCK_50),
					 .iRST(KEY[0]),
					 .oRST_0(DLY0),
					 .oRST_1(DLY1),
					 .oRST_2(DLY2)
					);

endmodule

⌨️ 快捷键说明

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