B1ockRAM存储模块的实现
B1ockRAM存储模块的实现B1ockRAM存储器的原理
对FPGA内部的B1ockRAM区:
存储区大小及数据宽度可取以上几种不同组合方式。本例中选用8*512。
每一块存储区大小都为4K, SPARTAN II不同型号提供4-14块(block)不等的存储块。本例用XC2S100,使用其中的8块。
应用时可选双端(Figure1)或单端(Figure2)两种形式。由于本设计中RAM有64位数据的读写和8位数据的读写,采用双端形式可以方便地址线的控制。
上表中提供了几种Primitive,通过调用,可实现Width分别为1, 2, 4, 8, 16在本设计中的一个调用例子如下:
RAMB4-S8-S8
ram0(.DOA(do0), .DOB(data_out64), .ADDRA(addr_a), .CLKA(clk_slow),.
DIA(data_in8), .ENA(1'bl), .RSTA(1'b0), .WEA(we0), .ADDRB(addr_b), .CLKB(clk), .DIB(data_in64), .ENB(1'bl), .RSTB(1'b0), .WEB(data_in64 en));
可用工NIT_ 00-INIT_ Of对4K存储区进行初始化。
应用举例:
INST "PRAM1 ram0" INIT_00=0123456789ABCDEF0123456789ABCDEF
0123456789ABCDEF0123456789ABCDEF;
在本设计中对默认的所有存储区初始化为0;
本设计中RAM读写的时钟采用UART通信模块中的16倍于波特率的时钟信号clkl6x:数据宽度定为8,则每块地址范围为0-511,共用了8块,所以ADDR要12位,。
谢谢楼主分享 zhangyukun 发表于 2017-8-30 10:49
谢谢楼主分享
:lol :lol :lol :lol :lol
页:
[1]