|
回复 22# Steady_Chou
请问,我用的是DE0的板子,只有一个SDRAM。我用CCD采集的数据放进SDRAM缓存后,又想让NIOS调取SDRAM里面缓存的数据进行处理,之后不得以又得放回SDRAM,最后存储到sd卡。
wire [15:0] Read_DATA1;
wire [15:0] Read_DATA2;
wire [15:0] Read_DATA3; // add by oomusou for RGB16
Sdram_Control_4Port u7 ( // HOST Side
.REF_CLK(CLOCK_50),
.RESET_N(1'b1),
.CLK(sdram_ctrl_clk),
// FIFO Write Side 1
.WR1_DATA({sCCD_R[11:7], sCCD_G[11:6], sCCD_B[11:7]}),
.WR1(sCCD_DVAL),
.WR1_ADDR(0),
.WR1_MAX_ADDR(800*480),
.WR1_LENGTH(9'h100),
.WR1_LOAD(!DLY_RST_0),
.WR1_CLK(CCD_PIXCLK),
// FIFO Write Side 2
.WR2_DATA(),
.WR2(),
.WR2_ADDR(),
.WR2_MAX_ADDR(),
.WR2_LENGTH(),
.WR2_LOAD(!DLY_RST_0),
.WR2_CLK(~CCD_PIXCLK),
// FIFO Read Side 1
.RD1_DATA(Read_DATA3),
.RD1(Read),
.RD1_ADDR(0),
.RD1_MAX_ADDR(800*480),
.RD1_LENGTH(9'h100),
.RD1_LOAD(!DLY_RST_0),
.RD1_CLK(~VGA_CTRL_CLK),
// FIFO Read Side 2
.RD2_DATA(),
.RD2(),
.RD2_ADDR(),
.RD2_MAX_ADDR(),
.RD2_LENGTH(),
.RD2_LOAD(!DLY_RST_0),
.RD2_CLK(~VGA_CTRL_CLK),
// 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})
);
// add by oomusou for RGB16
assign Read_DATA1 = {Read_DATA3[10:6], Read_DATA3[4:0], 5'h00};
assign Read_DATA2 = {Read_DATA3[5:5], 4'h0, Read_DATA3[15:11], 5'h00};
参考了无双大大的博客,对2w和2r 进行了修改,这样可以省出空间。那么,一个用来缓存ccd采集的原始数据(w1和r1),另一个用来存储NIOS处理后的数据(w2和r2),这样的做法可以实现吗??
请教了,thank you!!! |
|