Spartan 6 block ram

参考资料

UG383:spartan 6 block ram

摘录

In simple dual-port mode, port A can only write and
port B can only read、

分析

blockram资源有两种:

  1. RAMB8BWER:
    DI(A|B) Data Input Bus 16位(A/B)
    DIP(A|B) Data Input Parity Bus 2位(A/B) 校验
    ADDR(A|B) Address Bus 13位(A/B)
    WE(A|B) Byte-wide Write Enable
    EN(A|B) When inactive no data is written to the block RAM and the
    output bus remains in its previous state.
    RST(A|B) Synchronous Set/Reset the output registers (DO_REG = 1).
    CLK(A|B) Clock Input
    DO(A|B) Data Output Bus 16位(A/B)
    DOP(A|B) Data Output Parity Bus 2位(A/B) 校验
    REGCE(A|B) Output Register Clock Enable
    作为一个存储空间为8Kb的ram,它的类型(没有校验位)应该为数据[15:0]16bit乘以地址2^9 =16乘以512= 8192bit=8Kbit
    也可以是:
    数据[31:0]32bit乘以地址2^8 =32乘以256= 8192bit=8Kbit
    数据[7:0]8bit乘以地址2^10 =8乘以1024= 8192bit=8Kbit
    如果是4位的数据,意味着可以存2048个
    参考表格:
    在这里插入图片描述
    举例子:生成一个数据为12位,地址为7位的single port rom:
    则数据位是共用的(A端口6位,B端口6位),地址位是独立的(A端口7位[11:5],B端口7位[11:5],我猜它是按照上面256*32来的)
    注:没有用完的地址空间一般是空着的,再增加rom逻辑的话,要重新占用一块新的RAMBLOCK了,因此,常常会不够用(MAP出错),抓信号占用的也是RAMBLOCK,如果不能充分利用好这些空间,会导致后期调试定点非常困难
    因此,尽量让一个block发挥它尽量多的作用,比如coe文件的地址空间里分段放不同功能的数据,调用的时候通过逻辑控制地址起点进而控制其读出的数
    在这里插入图片描述
    从图中也可以看出A端口和B端口是对称的;
    注:BLOCKRAM的调用是一定会用到时钟的,这是与分布式RAM(直接进地址,查找对应数据)(本质是LUT,对应底层资源为SLICEM)不同的地方,在逻辑资源很宽松,BLOCKRAM资源很紧张,又需要抓很多位信号的时候可以考虑用分布式资源生成存储空间(还没有搞过,ip核设置的时候有一个选项可以二选一),有时候好像也会减小延迟,因为前者是固定位置的,与需求的逻辑所在位置可能很远
    参考:博主转载的分布式与块RAM的区别 (7系列)
  2. RAMB16BWER:
    DI(A|B) Data Input Bus 32位(A/B)
    DIP(A|B) Data Input Parity Bus 4位(A/B) 校验
    ADDR(A|B) Address Bus 14位(A/B)
    WE(A|B) Byte-wide Write Enable
    EN(A|B) When inactive no data is written to the block RAM and the
    output bus remains in its previous state.
    RST(A|B) Synchronous Set/Reset the output registers (DO_REG = 1).
    CLK(A|B) Clock Input
    DO(A|B) Data Output Bus 32位(A/B)
    DOP(A|B) Data Output Parity Bus 4位(A/B) 校验
    REGCE(A|B) Output Register Clock Enable
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值