Vivado 综合 — 当深度为二次幂时,块 RAM(坏区 QoR)的次优推断

内存深度为二次幂时,Vivado 综合将深度扩展到 2 的幂,以进行 BRAM 推断,这将导致推断的 BRAM 更多,超出了预期。

这种情况的一个实例如下:

对于深度为 1146880、宽度为 3 的 RAM(1146880x3 = 70 x (16K x 1) x 3)而言,预计为 70x3=210 RAMB18s。

然而,Vivado 综合可将深度扩展为 2 的幂 (2^21 = 2097152),这就意味着它需要 128x3=384 RAMB18s=192 RAMB36s。

(1楼)UltraScale 和新器件一直支持具有支持深度而非 2

judyzhong 在 星期四, 01/25/2018 - 13:52 发表。

UltraScale 和新器件一直支持具有支持深度而非 2 的幂的块 RAM 推断。

但 7 系列器件不支持这种情况。

要解决该问题,请手动修改代码,将 RAM 分成几个部分,使其由几个小 RAM 组成,其深度为 2 的幂。

对于上面的实例,该 1146880x3 RAM 可分为 3 个部分:1048576 (2^20) x 3 + 65536 (2^16) x 3 + 32768 (2^15) x 3

不错的

jiajian123 在 星期三, 01/31/2018 - 10:59 发表。

不错的啊