1. 程式人生 > 其它 >FPGA中block ram和distributed ram的區別

FPGA中block ram和distributed ram的區別

在Spartan-3系列FPGA中使用LUT構建分散式RAMhttp://xilinx.eetrend.com/tag/846?quicktabs_1=0


利用塊RAM實現資料延遲的一些問題http://bbs.eetop.cn/thread-431323-1-1.html

分散式RAM是如何產生的及其與Block RAM的區別

- 問 -
分散式和Block RAM的區別

- 答 -
CLB單元生成的distribute ram ,CLB是FPGA的基本單元,blockram也是基本單元,但分佈ram要由CLB單元生成。由CLB生成分散式ram,消耗邏輯資源。而blockram則固定在fpga內,無論使用與否都存在於那裡。當block ram不夠用時可以用邏輯資源生成分散式ram。

- 問 -
分散式RAM是如何產生的?

- 答 -
這裡以Virtex4為例說明:一個CLB由4個Slice組成,這4個Slice又分SliceM和SliceL,其中M是Memory的首字母,L是Logic的首字母,比較SliceM和SliceL,他們的區別就是SliceM的查詢表具有RAM和ROM的功能,而SliceL的則不具備。所以SliceM比SliceL多的功能就是做儲存器和移位。這樣就很清楚了:SliceM可實現DistributRAM,而Distribut RAM是由SliceM中的LUT實現。CLB的結構下所示:

Matric-------SliceM(2)SliceL(3)--------Y1
Switch------SliceM(0)SliceL(1)--------Y0
||
||
X0X1
這裡XNYM,X--列,N--列號,Y--行,M--行號,Xilinx FPGA內部結構是一種陣列結構。

- 問 -
請問SliceM除了可實現Distribut RAM之外還能實現什麼功能?
SliceM實現Distribut RAM時使用SliceM中的SRL16儲存單元麼?

- 答 -
如果看SliceM的圖,是看不到裡面有專麼這個SRL16的。其實SRL16就是一個基於查詢表結構的移位暫存器。而SRL16以primitive形式存在而已。在userguide中,也畫了SRLC16的圖,它就是一個查詢表。比較SliceM和SliceL,他們的區別就是SliceM的查詢表具有RAM和ROM的功能,而SliceL的則不具備。所以SliceM比SliceL多的功能就是做儲存器和移位。“SliceM實現DistributRAM時使用SliceM中的SRL16儲存單元麼?”因為SRL16用的就是LUT,所以,如果這個LUT作為DistributeRAM使用了,則就不能再作為SRL16使用了。

- 問 -
分散式和Block RAM的區別

- 答 -
CLB單元生成的distribute ram ,CLB是FPGA的基本單元,blockram也是基本單元,但分佈ram要由CLB單元生成。由CLB生成分散式ram,消耗邏輯資源。而blockram則固定在fpga內,無論使用與否都存在於那裡。當block ram不夠用時可以用邏輯資源生成分散式ram。

- 問 -
分散式RAM是如何產生的

- 答 -
這裡以Virtex4為例說明:一個CLB由4個Slice組成,這4個Slice又分SliceM和SliceL,其中M是Memory的首字母,L是Logic的首字母,比較SliceM和SliceL,他們的區別就是SliceM的查詢表具有RAM和ROM的功能,而SliceL的則不具備。所以SliceM比SliceL多的功能就是做儲存器和移位。這樣就很清楚了:SliceM可實現DistributRAM,而Distribut RAM是由SliceM中的LUT實現。CLB的結構下所示:



Matric-------SliceM(2)SliceL(3)--------Y1
Switch------SliceM(0)SliceL(1)--------Y0
||
||
X0X1
這裡XNYM,X--列,N--列號,Y--行,M--行號,Xilinx FPGA內部結構是一種陣列結構。

- 問 -
請問SliceM除了可實現Distribut RAM之外還能實現什麼功能?
SliceM實現Distribut RAM時使用SliceM中的SRL16儲存單元麼?


- 答 -
如果看SliceM的圖,是看不到裡面有專麼這個SRL16的。其實SRL16就是一個基於查詢表結構的移位暫存器。而SRL16以primitive形式存在而已。在userguide中,也畫了SRLC16的圖,它就是一個查詢表。比較SliceM和SliceL,他們的區別就是SliceM的查詢表具有RAM和ROM的功能,而SliceL的則不具備。所以SliceM比SliceL多的功能就是做儲存器和移位。“SliceM實現DistributRAM時使用SliceM中的SRL16儲存單元麼?”
因為SRL16用的就是LUT,所以,如果這個LUT作為DistributeRAM使用了,則就不能再作為SRL16使用了。