当前位置: 代码迷 >> 单片机 >> SDRAM 的有关问题请问一下
  详细解决方案

SDRAM 的有关问题请问一下

热度:277   发布时间:2016-04-28 14:50:53.0
SDRAM 的问题请教一下
最近在做手势识别的项目,先说最基础的,通过ccd摄像头采集+vga显示,用到SDRAM,那么问题来了,为什么按照下面第一种写法就没问题,按照第二种写法就什么也显示不出来?
只是几个数字不同而已,到底有什么讲究啊?


第一种:
// Internal Address & Length Control
always@(posedge CLK or negedge RESET_N)
begin
if(!RESET_N)
begin
rWR1_ADDR <= 0;
rWR1_MAX_ADDR <= 640*576;
rWR2_ADDR <= 22'h100000;
rWR2_MAX_ADDR <= 22'h100000+640*576;
rRD1_ADDR <= 640*13;
rRD1_MAX_ADDR <= 640*253;
rRD2_ADDR <= 640*301;
rRD2_MAX_ADDR <= 640*541;
rWR1_LENGTH <= 128;
rRD1_LENGTH <= 128;
rWR2_LENGTH <= 128;
rRD2_LENGTH <= 128;
end



第二种:
// Internal Address & Length Control
always@(posedge CLK or negedge RESET_N)
begin
if(!RESET_N)
begin
rWR1_ADDR <= 0;
rWR1_MAX_ADDR <= 640*507;
rWR2_ADDR <= 22'h100000;
rWR2_MAX_ADDR <= 22'h100000+640*507;
rRD1_ADDR <= 640*13;
rRD1_MAX_ADDR <= 640*253;
rRD2_ADDR <= 640*267;
rRD2_MAX_ADDR <= 640*507;
rWR1_LENGTH <= 128;
rRD1_LENGTH <= 128;
rWR2_LENGTH <= 128;
rRD2_LENGTH <= 128;
end
------解决思路----------------------
引用:
最近在做手势识别的项目,先说最基础的,通过ccd摄像头采集+vga显示,用到SDRAM,那么问题来了,为什么按照下面第一种写法就没问题,按照第二种写法就什么也显示不出来?
只是几个数字不同而已,到底有什么讲究啊?


第一种:
// Internal Address & Length Control
always@(posedge CLK or negedge RESET_N)
begin
if(!RESET_N)
begin
rWR1_ADDR <= 0;
rWR1_MAX_ADDR <= 640*576;
rWR2_ADDR <= 22'h100000;
rWR2_MAX_ADDR <= 22'h100000+640*576;
rRD1_ADDR <= 640*13;
rRD1_MAX_ADDR <= 640*253;
rRD2_ADDR <= 640*301;
rRD2_MAX_ADDR <= 640*541;
rWR1_LENGTH <= 128;
rRD1_LENGTH <= 128;
rWR2_LENGTH <= 128;
rRD2_LENGTH <= 128;
end



第二种:
// Internal Address & Length Control
always@(posedge CLK or negedge RESET_N)
begin
if(!RESET_N)
begin
rWR1_ADDR <= 0;
rWR1_MAX_ADDR <= 640*507;
rWR2_ADDR <= 22'h100000;
rWR2_MAX_ADDR <= 22'h100000+640*507;
rRD1_ADDR <= 640*13;
rRD1_MAX_ADDR <= 640*253;
rRD2_ADDR <= 640*267;
rRD2_MAX_ADDR <= 640*507;
rWR1_LENGTH <= 128;
rRD1_LENGTH <= 128;
rWR2_LENGTH <= 128;
rRD2_LENGTH <= 128;
end


你这个是verilog写的FPGA吧,两个写法有差异,那确实是参数不一样导致的啊。

那几个参数,看代码,说的是地址,不过仔细看,也明显和图像分辨率有关,如果参数错了,那个时序就没法正确传输和解析数据了,当然看到的就会是有问题的啊
------解决思路----------------------
光看这部分看不出。这些参数只是读写地址控制的,具体控制和比较的地方应该还有代码。
最好用jtag调试,看写入读出的数据有啥不同。
------解决思路----------------------
这里不是几个数字而已    你这个是时分双口sdram的写法    明显两种对于写入图像的尺寸都是不同   
640*576   这个D1的尺寸   640*507   这个感觉有点问题的  可能会造成图像的向上滚动的  友晶DE平台?