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

2011-11-29 09:53 2659 6 7 分类: MCU/ 嵌入式

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

         通常情况下,如果是320*240X*Y)分辨率的图像,使用128K17bitRAM做地址映射,分别取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所需的存储量都居于64K128K之间,64K肯定不够用,应该选用128K。但是理论上可以用128K存储的480*272在直接映射方式下却必须选用256K做存储,着实是一个很大的浪费。

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

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

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

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

假设2X,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逻辑实现却易如反掌,一条语句搞定。

 

文章评论1条评论)

登录后参与讨论

xucun915_925777961 2011-9-20 09:45

嗯,来学习一下^_^
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
1
6
关闭 站长推荐上一条 /2 下一条