0

我写了一个 C 程序,它的大小很大。然而,众所周知,Microblaze 默认只使用 64KB。所以我将 EDK 中的 BRAM 数量更改为 512K,但是当我生成比特流时,我得到了这个错误:

- C:\Users\slim\Desktop\hs\system.mhs line 74 
IPNAME: plb_v46, INSTANCE: mb_plb - 2 master(s) : 1 slave(s) 
IPNAME: lmb_v10, INSTANCE: ilmb - 1 master(s) : 1 slave(s) 
IPNAME: lmb_v10, INSTANCE: dlmb - 1 master(s) : 1 slave(s) 
ERROR:EDK:440 - platgen failed with errors!
Done!
4

1 回答 1

0

在 Spartan-6 上,EDK 的 blockRAM 内存块限制为 32 位大小为 64kB,64 位大小为 128kB,128 位大小为 256kB。此外,spartan-6 LX45 只有 238kB 的 BlockRAM 内存可用,所以这在您的平台上完全不可能。

据我所知,microblaze 用于存储其程序的内存限制为 32 位。要使用更大的内存,您需要将其连接到 AXI 端口。否则,Xilinx 有关于如何使用 2 个不同的 64kB 内存将 128kB 呈现给 microblaze 的答案记录。

你真的需要那么多内存吗?如果答案是“是”,您应该使用带有外部存储器的 microblaze。如果您有足够的高速缓存,您将拥有更多可用内存(您的主板有 128MB DDR 可供使用)而对性能的影响最小。

于 2015-04-27T19:18:00.730 回答