关于例化Altera FIFO占用RAM资源的问题。
时间:10-02
整理:3721RD
点击:
FPGA使用的是StratixII GX,RAM资源有M512(32*18bits)、M4K(128*36bits)和M-RAM(4K*144bits)3种。
我例化一个64*48的FIFO占用2个M4K;
例化一个128*48的FIFO占用2个M4K;
以上情况我能理解,因为1个M4K的位宽不够,所以要拼起来才能实现48bit位宽的FIFO。
但是我例化一个256*48bits的FIFO占用3个M4K,不是4个;
例化一个512*48bits的FIFO占用6个M4K,不是8个;
我想明白占3个、6个M4K是怎么实现256*48bits和512*48bits的FIFO的。
高手指点啊,谢谢!
我例化一个64*48的FIFO占用2个M4K;
例化一个128*48的FIFO占用2个M4K;
以上情况我能理解,因为1个M4K的位宽不够,所以要拼起来才能实现48bit位宽的FIFO。
但是我例化一个256*48bits的FIFO占用3个M4K,不是4个;
例化一个512*48bits的FIFO占用6个M4K,不是8个;
我想明白占3个、6个M4K是怎么实现256*48bits和512*48bits的FIFO的。
高手指点啊,谢谢!
没人顶 偶自己顶一个
不是很懂的
GAO SHEN
我这样看这个问题的。首先,M4K的大小是4608bits,有以下几种位宽配置方式:
4K × 1
2K × 2
1K × 4
512 × 8
512 × 9
256 × 16
256 × 18
128 × 32
128 × 36
对于64*48FIFO,由于在上面的列表中没有可以用一个RAM实现48 bits位宽的,所以至少用两个RAM,例如,可以选择两个128x32。
对于128*48FIFO,都占用了2个M4K,FIFO大小为6144bits,显然用一个M4K不够,所以必须用两块,也可以选择两个128x32。
但是对于256*48FIFO,三个M4K的容量刚刚足够其大小(4608*3 〉256*48),并且用三块M4K也能配置出48bits的位宽,所以根据尽量使用最少资源的原则,当然应该选三块。例如,三个256x16。512x48当然就是六个M4K组成的了。
这些都是我的分析,没有用quartus生成RAM来看,你可以自己看生成的ram.v中实例化altsynram文件的参数。
不懂,学习了..
