映射技术之储存器映射
一般情况下,我们希望当数据流过FPGA时,FPGA尽可能多地处理数据,并且减少FPGA和外部设备之间的数据传输,采用流水处理架构则可以很好地减少对存储器的频繁读写。
很少会把帧缓存放在FPGA内部(图像分辨率较小除外),而往往会将其放在片外的静态储存器或动态储存器中。
1、帧缓存
对于帧缓存,通常情况下会将其放在片外进行读写。对于帧缓存,在成本不够敏感的情况下,最好使用静态储存器(SDRAM),尤其是用于需要频繁和随机地访问这些帧缓存的地方,静态储存器相对于动态储存器来说,通常情况下读写接口相对简单,读写速度快,并且功耗相对较低。但是,由于静态存储器每一位要使用6个晶体管,而动态储存器每位只使用一个晶体管,因此静态储存器的价格要贵得多。
一帧缓存控制电路要包括读地址发生器、写地址发生器及读写控制时序。一般情况下,这个写地址即为输入帧数据流的行列地址,而读地址为输出流行列地址。
如果系统对于读取速度没有严格要求的缓存应用,那么动态储存器无疑是更好的选择虽然动态储存器存取速度比较慢,从主机提供地址到数据输出可能需要若干个小时钟,但是当动态储存器工作在突发模式时,也可以提供较大的带宽,这对于图像处理这样的大数据应用场合非常有用。
动态存储器的接口设计相对比较复杂,这是由于动态存储器必须间隔一段时间对其进行刷新来保持当前的储存内容。此外,与静态储存器不同,动态储存器的行列地址通常是分开的