10.1 EDK,LMB BRAM控制器v2.10a  – 为什么不支持2 KB的LMB-Altera-Intel社区-FPGA CPLD-ChipDebug

10.1 EDK,LMB BRAM控制器v2.10a – 为什么不支持2 KB的LMB

问题描述

我正在创建一个带有MB V7.0和DDR和LMB内存的EDK设计。目标器件是Spartan-3E。

LMB内存应该尽可能小 – 所以我选择了2 Kb。

但现在我收到以下错误:

错误:MDT – IPNAME:lmb_bram_if_cntlr实例:dlmb_cntlr

C:\ mb_BRAM \ system.mhs第98行 – 数据宽度为32位且内存大小为2-kBytes

不适合固定的尺寸。

仅支持以下内存配置:

————————————————– —————

|记忆(kBytes)|记忆(kBytes)

建筑| 32位数据| 64位数据

|字节写|字节写

————————————————– —————

Spartan-II | 2 4 | 4

Spartan-IIE | 2 4 8 16 | 4 8 16 32

Spartan-3 | 8 16 32 64 | 16 32 64 128

Spartan-3E | 8 16 32 64 | 16 32 64 128

Spartan-3A | 2 4 8 16 32 64 | 4 8 16 32 64 128

Spartan-3ADSP | 2 4 8 16 32 64 | 4 8 16 32 64 128

QPro Virtex | 2 4 8 16 | 4 8 16 32

QPro Virtex-E | 2 4 8 16 | 4 8 16 32

QPro Virtex-II | 8 16 32 64 | 16 32 64 128

QPro-R Virtex | 2 4 8 16 | 4 8 16 32

QPro-R Virtex-II | 8 16 32 64 | 16 32 64 128

Virtex | 2 4 8 16 | 4 8 16 32

Virtex-E | 2 4 8 16 | 4 8 16 32

Virtex-II | 8 16 32 64 | 16 32 64 128

Virtex-II PRO | 8 16 32 64 | 16 32 64 128

Virtex-4 | 2 4 8 16 32 64 128 | 4 8 16 32 64 128 256

Virtex-5 | 4 8 16 32 64 128 256 | 8 16 32 64 128 256 512

第二个LMB也是如此。

我不明白为什么会这样。

我可以在以下布局中使用至少一个BRAM:

36位宽* 512地址

这正好是2 Kb大小,只需要一个Block RAM – 那么为什么我不需要更大的Block RAM?

为什么Spartan-3E的最小尺寸为8 Kb?

当然字节写入不起作用 – 但这不是我的项目中的问题。

解决/修复方法

对于Spartan-3 / 3E系列,每个Block RAM只有一个写使能。因此,您需要4个Block RAM才能在32位总线上实现字节使能,因此块存储器大小至少需要8 Kb。

如果不需要字节写入,则可以解决它,但这需要一些工作。首先,在设计工具方面,您必须确保没有字节/半字访问Block RAM,包括所有驱动程序和库。第二件事是在硬件方面,你需要重写lmb块RAM控制器,以某种方式将字节使能组合起来,始终写入32位字。

还有一点需要注意。利用EDK中的原始Block RAM,Platgen根据所使用的器件确定块内存组织。如果您只想使用512×32 / 512×36格式的1块RAM,则必须编写自己的块RAM来执行此操作(或将其合并到自定义lmb块RAM控制器中)。

这类似于其他器件系列的Block RAM大小限制。

请登录后发表评论

    没有回复内容