我对Virtex-6 BlockRAM感到困惑。赛灵思Virtex6块RAM宽度
我想实现一个15位地址(32,768字)的BRAM和12位每个字的写入和读取数据。当我探索实现的设计时,我发现使用12块BlockRAM来实现这一点。这是否意味着Virtex-6中的每个BRAM都有1位数据?
Virtex-6中每个BlockRAM的数据宽度和容量是多少?
我对Virtex-6 BlockRAM感到困惑。赛灵思Virtex6块RAM宽度
我想实现一个15位地址(32,768字)的BRAM和12位每个字的写入和读取数据。当我探索实现的设计时,我发现使用12块BlockRAM来实现这一点。这是否意味着Virtex-6中的每个BRAM都有1位数据?
Virtex-6中每个BlockRAM的数据宽度和容量是多少?
每个嵌入式BlockRAM(RAMB36E1
)都有36个KiBit。它也可以分成两个18 KiBit基元(RAMB18E1
)。
内部组织是1024×(32 + 4)。具有4个字节的1024行+ 4个奇偶校验位。
BlockRAM宏具有从32.768×1到512×72的变量布局,这也取决于模式:单端口,简单双端口还是真双端口。
这里是地址的数据宽度比率的完整列表:
参见:
了解更多详情。
当我探索实现的设计,我公司成立有12的BlockRAM用于此。这是否意味着Virtex-6中的每个BRAM都有1位数据?
使用区域(内存大小)等于其他组织,但使用12×(32.768×1)不需要多路复用器来组合12个BlockRAM。这节省了资源并且速度更快。
可能会更容易认为您有一个RAM,其中存储32,768x12 = 393,216位= 384 kB,每个RAMB最多可以存储36 kB(Paebbels回复详细信息的大小和比率)。这意味着您需要384/36 = 10.667 RAMB,工具已经调整到12 RAMB。作为一个经验法则,如果这种计算失败(这不是你的情况),你可能需要明确编写代码来适应RAMB格式。 – suoto