本帖最后由 sleepybear 于 2010-12-10 10:05 编辑
不了解你那个算法的细节。不过,如果需要对数据进行缓存,而又不是缓存特别长(特别长的可以用Block RAM了),可以用用DSP里边的寄存器。图中是V5的DSP48E,红圈都是不用白不用的寄存器,可以用乘1加0的办法来单纯用作几个周期的数据缓存。当然,这样在实现的时候可能会有问题,最好加位置约束。
只是个例子,具体还要看你的器件特点、资源情况灵活使用。
或者,如果数据延迟是固定的若干周期,也可以用SRLC32E(Xilinx的器件基本都有这个宏,不同器件名字可能不同,还有16的,具体可以查ISE的doc文件夹下的文档)做延迟,这个用的是LUT(本质上就是SRAM存储单元嘛),延迟周期还可以动态配置,很省寄存器。时序考虑,最后只加1级的寄存器即可。比如要延迟10个周期,可以用这个SRLC32E做9个周期延迟,最后加一级寄存器。 |