我合成了一个小设备来测试 block-ram 推理。
我收到了来自 XST 的消息:
小 RAM 将在 LUT 上实现,以最大限度地提高性能并节省 Block RAM 资源。如果您想强制其在块上实现,请使用 option/constraint ram_style。
但是,我不知道在 ISE(在我的情况下为 11.1)或约束文件中哪里可以找到此选项/约束...
我不想在我的代码中直接使用 VHDL 属性。
在您的项目目录中,您会找到一个名为“your-design.xst”的文件。您可以在列表末尾(或“运行”之后的任何位置)添加以下内容:
-ram_style block # ( | auto | distributed )
-rom_style block # ( | auto | distributed )
这些应该确保您将获得 BRAM 映射而不是分布式 RAM(这意味着基于 LUT 的内存)。
这个选项也可以派上用场:
-auto_bram_packing yes # ( | no )
请记住,其中每一个都必须在自己的一行上,并且您需要删除“#”以及之后的任何内容。
如果您使用的是 ISE GUI,请转至
Synthesis -> Process Properties -> HDL options
并在那里选择上述选项。
(顺便说一句,我们正在尝试建立一个专门用于 FPGA 的 SE 站点……考虑支持它…… http://area51.stackexchange.com/proposals/20632/programmable-logic-and-fpga-design?referrer= YmxhQ2OJUo-FAaI1gMp5oQ2 )
run -ram_style BLOCK 可以在命令行中解决问题。