LogICOR双端口块内存-当使用非对称端口时,双端口块内存核心需要比预期更多的块RAM原语-Xilinx-AMD社区-FPGA CPLD-ChipDebug

LogICOR双端口块内存-当使用非对称端口时,双端口块内存核心需要比预期更多的块RAM原语

描述

当使用核心生成器生成双端口块内存核时,需要比预期更多的块RAM。为什么?

例如

我正在生成一个双端口块内存核心与以下设置:

港口A:

宽度:18

深度:2048

配置:只写

Port B:

宽度:36

深度:1024

配置:只读

启用引脚

注意:端口A和端口B是不对称的,这意味着存在不同的端口宽度大小。

在ViTeX II平台FPGAs中描述了一种可能的配置(如果每个ViTEX II块RAM处于双端口模式):完整的数据表,表15——“双端口模式配置”,第22页:

HTTP://www. xLimx.COM/XLNX/XWeb/XILIPu外宣sIdx.jSP
导航到:FPGA器件家族-gt;VyTEX-II & VRTTEX II完整数据表(所有四个模块)

根据此表,只需要两个块RAM:

-第一块:

端口A:2048×9

端口B:1024×18

-第二块:

端口A:2048×9

端口B:1024×18

然而,核心生成器需要三块RAM:

-第一BROLAMRAM=RAMB16S9S18S18:

端口A是2048×8

B端口为1024×16

-第二BROLAMRAM=RAMB16S9S18S18:

端口A是2048×8

B端口为1024×16

-第三块RAM=RAMB16S2S4S4:

端口A为8192×2(仅使用2048×2)

B端口为4096×4(仅使用1024×4)

解决方案

这是因为用于实现对称和非对称核的算法略有不同。如果存储器是对称的,则算法使用块存储器中的奇偶校验位。如果内存是非对称的,则该算法在块内存中使用奇偶校验位。这是因为奇偶校验位复杂化了非对称端口的通用算法的实现。

因此,如果使用非对称端口,则该算法不使用原语的奇偶校验位。这导致了RAMB16S9SyS18原语,有效地成为原语;其中端口A是2048×8,端口B是1024×16。由于这种情况,需要第三块RAM来创建给定的内存。

没有改变双端口块存储核心算法的计划,但是,所有的工程工作将集中于改进新的块存储器生成器内核。新的核心已经有改进的算法。

可选择内存算法

块内存生成器内核根据两种算法之一:最小区域算法和可选原语算法来安排块RAM原语。使用最小面积算法,它将对最小块RAM使用进行优化,并且当可能使用奇偶校验位时,核心将使用它们。

请登录后发表评论

    没有回复内容