一、DDR3能够存多少帧的问题
2片DDR3,每片256M x 16bit。图像源是9344 x 7000 x 8bit,请问2片DDR3可以存多少帧的问题?
计算过程:(2片x256x1024x1024x16)/ (9344x7000x8)=16.416帧。
二、DDR3的最大地址?
always @ (posedge I_ui_clk or posedge I_rx_rst)
begin
if(I_rx_rst)
app_addr <= 28'd0;
else if(fifo_vld==1'b1)
if(app_addr==28'd261631992)
app_addr <= 28'd0;
else
app_addr <= app_addr + 4'd8;
else
app_addr <= app_addr;
end
DDR3采用8突发传输,每次地址加8。上一次读地址为28'd261631992,加上本次8突发地址,一共传输261632000次。因为2片ddr3构成32bit数据,而图像是8bit,所以一个地址存储4个像素,261632000个地址共存储16帧图像。计算方式261632000*4/(9344*7000)=16.
**所以上述代码的意义是存够16帧图像地址清零。**
## 三、fifo读次数的问题
```c
always @ (posedge I_ui_clk or posedge I_rx_rst)
begin
if(I_rx_rst)
cnt_vld <= 21'd0;
else if(fifo_vld==1'b1)
if(cnt_vld==21'd2043999)
cnt_vld <= 21'd0;
else
cnt_vld <= cnt_vld + 1'b1;
else
cnt_vld <= cnt_vld;
end
fifo读输出宽度是256bit,32个像素。9344 x 7000=65,408,000 ; 2044000 x 32=65,408,000。所以一共读65,408,000次,构成16帧图像。