非直接RAM地址映射转换思路

来源:本站
导读:目前正在解读《非直接RAM地址映射转换思路》的相关信息,《非直接RAM地址映射转换思路》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《非直接RAM地址映射转换思路》的详细说明。
简介:本文主要讲直接映射对存储空间上的浪费,以及非直接RAM地址映射转换思路。

通常情况下,如果是320*240(X*Y)分辨率的图像,使用128K(17bitRAM做地址映射,分别取X寻址对应128K的低9bit(可使用地址为0-511)、Y寻址对应128K的高8bit(可使用地址为0-255)。

但如果是480*272分辨率的图像,使用320*240类似的存储器映射方式,则需要至少9(可寻址0-511)+9(可寻址0-511)=18条地址线,128K无法满足要求,相应的需要256K的替代。本身这种直接映射存储的方式虽然大大简化运算以及坐标定位,但却从某种程度上浪费了一些存储空间,尤其是类似480*272的分辨率,做一个简单的计算:

320*240=76800

480*272=130560

对应的

64K=65536

128K=131072

那么,320*240/480*272所需的存储量都居于64K和128K之间,64K肯定不够用,应该选用128K。但是理论上可以用128K存储的480*272在直接映射方式下却必须选用256K做存储,着实是一个很大的浪费。

基于此,在480*272的映射中,特权同学做了一些处理,一部分图像还是直接映射,另一部分图像充分利用余下的地址空间巧妙的转换后进行存储,达到了物尽其用,并且简单方便的效果。

假设1:(X0,Y0)为图像坐标,取:

X0:bit8-0,对应原始地址总线ADDB[8:0]

Y0:bit8-0,对应原始地址总线ADDB[17:9]

假设2:(X,Y)为相应的RAM存储坐标,取:

X:bit8-0,对应原始地址总线ADDR[8:0]

Y:bit7-0,对应原始地址总线ADDR[16:9]

映射变换如下:

当Y0<256(即ADDB[17]==0)时,直接映射:

ADDR=ADDB[16:9];

当Y0>=256(即ADDB[17]==1)时,转换映射:

ADDR[16:0]={ADDB[12:9],ADDB[8:5],4’b1111,ADDB[4:0]}

此类转换,用软件模拟自然有些繁琐,而FPGA逻辑实现却易如反掌,一条语句搞定。

提醒:《非直接RAM地址映射转换思路》最后刷新时间 2024-03-14 01:08:41,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《非直接RAM地址映射转换思路》该内容的真实性请自行鉴别。