代码问题
M_S_MSG_FIFO2://--相对地址处理--//begin
M_S <=M_S_RST_FIFO0;
//三缓存设计
if(MSG_FIFO_RDDATA)begin
if(CH0_Fbuf == 2) begin
CH0_Fbuf <= 0;
end
else begin
CH0_Fbuf <= CH0_Fbuf + 1'b1;
end
CH0_PTR <= 21'd0;
end
if(MSG_FIFO_RDDATA)begin
if(CH0_Fbuf == 0) begin
CH6_Fbuf <= 2;
end
else begin
CH6_Fbuf <= CH0_Fbuf - 1'b1;
end
CH6_PTR <= 21'd0;
end
end
代码中的相对地址处理是什么意思,能解释详细点不
利用CH0_Fbuf和CH6_Fbuf的帧计数器,控制了地址的切换,具体的看下提供的代码里面地址如何切换的。 msxbo 发表于 2019-11-13 15:29
利用CH0_Fbuf和CH6_Fbuf的帧计数器,控制了地址的切换,具体的看下提供的代码里面地址如何切换的。
简单来说,为什么要进行相对地址处理啊 这个理解为地址的高位就好啦。
一帧数据的数据量为1920*1080*4 byte= 8,294,400 byte,也就是23位地址空间的存储容量(2^23=8,388,608)可以放的下。缓存地址如下构成:
ADDR={{2'b00},CH0_Fbuf,ADDRL}
低23位地址是一帧数据必要的存储空间,而切换片缓存只需要改变CH0_Fbuf高位地址就可以了。
页:
[1]