?? de2_lcm_ccd.v.bak
字號:
output AUD_XCK; // Audio CODEC Chip Clock
//////////////////// TV Devoder ////////////////////////////
input [7:0] TD_DATA; // TV Decoder Data bus 8 bits
input TD_HS; // TV Decoder H_SYNC
input TD_VS; // TV Decoder V_SYNC
output TD_RESET; // TV Decoder Reset
//////////////////////// GPIO ////////////////////////////////
inout [35:0] GPIO_0; // GPIO Connection 0
inout [35:0] GPIO_1; // GPIO Connection 1
// Turn on all display
assign LCD_ON = 1'b1;
assign LCD_BLON = 1'b1;
// All inout port turn to tri-state
assign DRAM_DQ = 16'hzzzz;
assign FL_DQ = 8'hzz;
assign SRAM_DQ = 16'hzzzz;
assign OTG_DATA = 16'hzzzz;
assign LCD_DATA = 8'hzz;
assign SD_DAT = 1'bz;
assign ENET_DATA = 16'hzzzz;
assign AUD_ADCLRCK = 1'bz;
assign AUD_DACLRCK = 1'bz;
assign AUD_BCLK = 1'bz;
assign TD_RESET = 1'b1;
//////////////////////// For TFT LCD Module ///////////////////////
wire [7:0] LCM_DATA; // LCM Data 8 Bits
wire LCM_GRST; // LCM Global Reset
wire LCM_SHDB; // LCM Sleep Mode
wire LCM_DCLK; // LCM Clcok
wire LCM_HSYNC; // LCM HSYNC
wire LCM_VSYNC; // LCM VSYNC
wire LCM_SCLK; // LCM I2C Clock
wire LCM_SDAT; // LCM I2C Data
wire LCM_SCEN; // LCM I2C Enable
wire CLK_18;
assign GPIO_0[18] = LCM_DATA[6];
assign GPIO_0[19] = LCM_DATA[7];
assign GPIO_0[20] = LCM_DATA[4];
assign GPIO_0[21] = LCM_DATA[5];
assign GPIO_0[22] = LCM_DATA[2];
assign GPIO_0[23] = LCM_DATA[3];
assign GPIO_0[24] = LCM_DATA[0];
assign GPIO_0[25] = LCM_DATA[1];
assign GPIO_0[26] = LCM_VSYNC;
assign GPIO_0[28] = LCM_SCLK;
assign GPIO_0[29] = CLK_18;//LCM_DCLK;
assign GPIO_0[30] = LCM_GRST;
assign GPIO_0[31] = LCM_SHDB;
assign GPIO_0[33] = LCM_SCEN;
assign GPIO_0[35] = LCM_HSYNC;
//////////////////////// For CMOS Sensor 1 ///////////////////////
wire [9:0] CCD_DATA;
wire CCD_SDAT;
wire CCD_SCLK;
wire CCD_FLASH;
wire CCD_FVAL;
wire CCD_LVAL;
wire CCD_PIXCLK;
reg CCD_MCLK; // CCD Master Clock
reg CLK_ODD;
integer count;
wire [15:0] Read_DATA1;
wire [15:0] Read_DATA2;
wire [9:0] mCCD_DATA;
wire mCCD_DVAL;
wire mCCD_DVAL_d;
wire [10:0] X_Cont;
wire [10:0] Y_Cont;
wire [9:0] X_ADDR;
wire [31:0] Frame_Cont;
wire [9:0] mCCD_R;
wire [9:0] mCCD_G;
wire [9:0] mCCD_B;
wire DLY_RST_0;
wire DLY_RST_1;
wire DLY_RST_2;
wire Read;
reg [9:0] rCCD_DATA;
reg rCCD_LVAL;
reg rCCD_FVAL;
wire [9:0] sCCD_R;
wire [9:0] sCCD_G;
wire [9:0] sCCD_B;
wire sCCD_DVAL;
assign CCD_DATA[0] = GPIO_1[0];
assign CCD_DATA[1] = GPIO_1[1];
assign CCD_DATA[2] = GPIO_1[5];
assign CCD_DATA[3] = GPIO_1[3];
assign CCD_DATA[4] = GPIO_1[2];
assign CCD_DATA[5] = GPIO_1[4];
assign CCD_DATA[6] = GPIO_1[6];
assign CCD_DATA[7] = GPIO_1[7];
assign CCD_DATA[8] = GPIO_1[8];
assign CCD_DATA[9] = GPIO_1[9];
assign GPIO_1[11] = CCD_MCLK;
assign CCD_FVAL = GPIO_1[13];
assign CCD_LVAL = GPIO_1[12];
assign CCD_PIXCLK = GPIO_1[10];
assign LEDR = SW;
assign LEDG = Y_Cont;
assign CLK_18 = CLK_ODD;
always@(posedge CLOCK_50) CCD_MCLK <= ~CCD_MCLK;
always @(posedge CLOCK_50)
if ( count < 50)
begin
count = count + 1;
end
else
begin
count = 0;
CLK_ODD <= ~CLK_ODD;
end
always@(posedge CCD_PIXCLK)
begin
rCCD_DATA <= CCD_DATA;
rCCD_LVAL <= CCD_LVAL;
rCCD_FVAL <= CCD_FVAL;
end
//LCM_PLL u0 ( .inclk0(CLOCK_27),.c0(CLK_18));
/*
LCM_Controller u1 ( // Host Side
.iRed(Read_DATA2[9:2]),
.iGreen({Read_DATA1[14:10],Read_DATA2[14:12]}),
.iBlue(Read_DATA1[9:2]),
// LCM Side
.LCM_DATA(LCM_DATA),
.LCM_VSYNC(LCM_VSYNC),
.LCM_HSYNC(LCM_HSYNC),
.LCM_DCLK(LCM_DCLK),
.LCM_SHDB(LCM_SHDB),
.LCM_GRST(LCM_GRST),
// Control Signals
.oDATA_REQ(Read),
.iCLK(CLK_18),
.iRST_N(DLY_RST_2) );
*/
Reset_Delay u2 ( .iCLK(CLOCK_50),
.iRST(KEY[0]),
.oRST_0(DLY_RST_0),
.oRST_1(DLY_RST_1),
.oRST_2(DLY_RST_2) );
CCD_Capture u3 ( .oDATA(mCCD_DATA),
.oDVAL(mCCD_DVAL),
.oX_Cont(X_Cont),
.oY_Cont(Y_Cont),
.oFrame_Cont(Frame_Cont),
.iDATA(rCCD_DATA),
.iFVAL(rCCD_FVAL),
.iLVAL(rCCD_LVAL),
.iSTART(!KEY[3]),
.iEND(!KEY[2]),
.iCLK(CCD_PIXCLK),
.iRST(DLY_RST_1) );
RAW2RGB u4 ( .oRed(mCCD_R),
.oGreen(mCCD_G),
.oBlue(mCCD_B),
.oDVAL(mCCD_DVAL_d),
.iX_Cont(X_Cont),
.iY_Cont(Y_Cont),
.iDATA(mCCD_DATA),
.iDVAL(mCCD_DVAL),
.iCLK(CCD_PIXCLK),
.iRST(DLY_RST_1) );
SEG7_LUT_8 u5 ( .oSEG0(HEX0),.oSEG1(HEX1),
.oSEG2(HEX2),.oSEG3(HEX3),
.oSEG4(HEX4),.oSEG5(HEX5),
.oSEG6(HEX6),.oSEG7(HEX7),
.iDIG(Frame_Cont) );
Sdram_Control_4Port u6 ( // HOST Side
.REF_CLK(CLOCK_50),
.RESET_N(1'b1),
// FIFO Write Side 1
.WR1_DATA({mCCD_G[9:5],mCCD_B[9:0]}),//({sCCD_G[9:5],sCCD_B[9:0]}),
.WR1(mCCD_DVAL_d),//(sCCD_DVAL),
.WR1_ADDR(0),
.WR1_MAX_ADDR(320*256),
.WR1_LENGTH(9'h100),
.WR1_LOAD(!DLY_RST_0),
.WR1_CLK(CCD_PIXCLK),
// FIFO Write Side 2
.WR2_DATA({mCCD_G[4:0],mCCD_R[9:0]}),//( {sCCD_G[4:0],sCCD_R[9:0]}),
.WR2(mCCD_DVAL_d),//(sCCD_DVAL),
.WR2_ADDR(22'h100000),
.WR2_MAX_ADDR(22'h100000+320*256),
.WR2_LENGTH(9'h100),
.WR2_LOAD(!DLY_RST_0),
.WR2_CLK(CCD_PIXCLK),
// FIFO Read Side 1
.RD1_DATA(Read_DATA1),
.RD1(Read),
.RD1_ADDR(320*8),
.RD1_MAX_ADDR(320*248),
.RD1_LENGTH(9'h100),
.RD1_LOAD(!DLY_RST_0),
.RD1_CLK(CLK_18),
// FIFO Read Side 2
.RD2_DATA(Read_DATA2),
.RD2(Read),
.RD2_ADDR(22'h100000+320*8),
.RD2_MAX_ADDR(22'h100000+320*248),
.RD2_LENGTH(9'h100),
.RD2_LOAD(!DLY_RST_0),
.RD2_CLK(CLK_18),
// SDRAM Side
.SA(DRAM_ADDR),
.BA({DRAM_BA_1,DRAM_BA_0}),
.CS_N(DRAM_CS_N),
.CKE(DRAM_CKE),
.RAS_N(DRAM_RAS_N),
.CAS_N(DRAM_CAS_N),
.WE_N(DRAM_WE_N),
.DQ(DRAM_DQ),
.DQM({DRAM_UDQM,DRAM_LDQM}),
.SDR_CLK(DRAM_CLK) );
I2C_CCD_Config u7 ( // Host Side
.iCLK(CLOCK_50),
.iRST_N(KEY[1]),
.iExposure(SW[15:0]),
// I2C Side
.I2C_SCLK(GPIO_1[14]),
.I2C_SDAT(GPIO_1[15]) );
I2S_LCM_Config u8 ( // Host Side
.iCLK(CLOCK_50),
.iRST_N(KEY[0]),
// I2C Side
.I2S_SCLK(LCM_SCLK),
.I2S_SDAT(GPIO_0[34]),
.I2S_SCEN(LCM_SCEN) );
I2C_AV_Config u9 ( // Host Side
.iCLK(CLOCK_50),
.iRST_N(KEY[0]),
// I2C Side
.I2C_SCLK(I2C_SCLK),
.I2C_SDAT(I2C_SDAT) );
SPI_Control u11 (
.RESET_N(KEY[1]),
.iCLK(CLK_18),
.DO_START(!KEY[2]),
.DO_STOP(!KEY[3]),
.DO_IRQ(DO_IRQ),
.DATA(),
.DO_READ(Read),
.SS_N(LCM_VSYNC),
.CE(LCM_SHDB),
.MOSI(LCM_HSYNC));
/*
Mirror_Col u10 ( // Input Side
.iCCD_R(mCCD_R),
.iCCD_G(mCCD_G),
.iCCD_B(mCCD_B),
.iCCD_DVAL(mCCD_DVAL_d),
.iCCD_PIXCLK(CCD_PIXCLK),
.iRST_N(DLY_RST_1),
// Output Side
.oCCD_R(sCCD_R),
.oCCD_G(sCCD_G),
.oCCD_B(sCCD_B),
.oCCD_DVAL(sCCD_DVAL));
*/
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -