|
发表于 2010-4-1 19:22:58
|
显示全部楼层
Sdram_Control_4Port u6 (
// HOST Side
.REF_CLK(CLOCK_50),
.RESET_N(1'b1),
// FIFO Write Side 1
.WR1_DATA({sCCD_G[9:5], sCCD_B[9:0]}),
.WR1(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({sCCD_G[4:0], sCCD_R[9:0]}),
.WR2(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)
);
还要请教一下版主,为什么写的地址和读的地址不是对应的呢?这个例程的功能不就是把CCD的图像显示到VGA显示器上吗?那么应该从CCD写进去的地址开始读啊。为什么会这样写呢?
还有一个要请教版主的就是:
.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),
这里面的RD2_LENGTH是起到什么作用呢。是说明FIFO里面要存储多少数据吗? |
|