我有一个非常简单的 VHDL 模块,由几行代码组成。问题是,当我生成比特流时,我最终会得到一个巨大的比特流。我猜这是因为 XST 添加了大量额外信息,以便比特流可以在 FPGA 上独立运行。
然而,就我的目的而言,单独查看模块的比特流大小而没有任何额外的点点滴滴,只有 vaniall 模块会很有趣。Xilinx ISE 12.1 中是否有允许我这样做的选项?
非常感谢,里奇
无论您的实际设计利用率如何,比特流都包含您所针对的设备的每个可配置资源的信息。当您对 FPGA 进行编程时,位文件会同步到设备中,从而配置您不使用的部件以及您使用的部件。因此,位文件的大小完全由目标设备决定。
如果您想查看模块正在使用的资源的明细,请查看 map 生成的 .mrp 文件中的“第 14 节 - 层次结构使用”部分。
正如 Chiggs 所说,对于您所针对的每个设备,比特流的大小始终相同。(您可以通过打开 fpga_editor、保存一个空的 NCD 文件并转换为比特流来看到这一点……仍然是相同的大小!)或者,换句话说,必须在配置时设置每个配置存储单元(使用 0 或 1)。
但是,事实上,你可以做你所要求的。这称为动态重新配置,为此,工具将生成比特流片段,这些片段共同构成整个比特流。首先,您使用常规比特流配置设备,然后您可以在 FPGA 的其余部分正常运行时在其之上动态重新配置比特流片段!(整洁,不是吗?)
无论如何,这就是你所要求的,但我不确定这就是你想要的......你想要达到什么目的?
很抱歉加入讨论,但我认为 250KB 无论如何都不是一个巨大的比特流!我使用了一个非常小的 3500 个逻辑片的 FPGA,它给了我 3MB 的比特流。这里要考虑一件重要的事情。如果您尝试初始化任何 RAM,则比特流将携带额外的位,这些位是 FPGA 中 BRAM 块的初始化位。这可以为比特流添加额外的内存。但平均而言,整个 FPGA 矩阵被写入存储在存储位文件的 Offchip/OnChip Flash 中的位,因此它不应该在运行之间发生变化。