集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1137|回复: 2

B1ockRAM存储模块的实现

[复制链接]
小舍YZ 发表于 2017-8-29 17:39:42 | 显示全部楼层 |阅读模式
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[63:56]), .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[63:56]), .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位,[11:0]。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zhangyukun 发表于 2017-8-30 10:49:13 | 显示全部楼层
谢谢楼主分享
 楼主| 小舍YZ 发表于 2017-8-30 18:05:40 | 显示全部楼层

                                                                                                
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:20 , Processed in 0.065216 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表