1

我正在尝试将设计实现到 Virtex II Pro FPGA(来自 Xilinx)中。问题是设计过度映射,占用了太多资源。为了克服这个问题,我需要知道我的代码的哪些块是最苛刻的(需要更多资源——LUT、FF、切片等)。我的意思是:这个 if-else(或 switch-case、while 等)需要多少资源?

Xilinx 没有用于此目的的工具。有解决方法吗?或者,更好的是,是否有第三方工具能够做到这一点?

由于我的 FPGA 很旧,我使用的是 ISE 和 PlanAhead 10.1。

4

3 回答 3

1

如果我们有一个模块要合成,我认为没有办法查看哪个硬件与特定ifcase语句相关,因为合成工具将所有代码合成在一起。(例如有时您的 vhdl 代码中的 2 或 3 个进程被合成为特定的硬件)。实际上根据综合选项约束猜测可以生成什么硬件。

但是,如果您想查看每个模块(而不是每个if语句)的资源使用情况,您可以查看“ISE -> 项目 -> 设计摘要”上的综合报告。如果您合成代码没有任何错误,合成报告会告诉您使用了多少资源(LUT、FF、IO、Buffer、..)。

于 2015-03-12T05:46:30.453 回答
1

您还可以使用 Xilinx 工具PlanAhead,该工具并非真正用于此目的,但它提供了一个很好的层次结构分解,其中包含有关任何层次结构级别上任何块的资源使用情况的信息。我目前只能提供一个模糊的屏幕截图,但它应该让你知道会发生什么。

PlanAhead 截图

PlanAhead 可以在 Xilinx 中通过 Tools > PlanAhead >“Floorplan Area/...”打开。

于 2015-03-12T18:56:47.497 回答
1

经过长时间的中断后,我最近不得不使用 ISE 10.1。我不记得什么是更好的解决方案,但这对我有用:

  • 在综合选项中,将选项“Netlist Hierarchy”设置为“Rebuilt”。
  • 启动流程“实施设计”->“翻译”->“平面图设计”

您应该看到能够导航您的层次结构并查看子模块的资源使用情况。

于 2015-03-12T05:15:23.280 回答