【问题标题】:Why is my design compiled by Quartus II successfully but no logic utilization?为什么我的设计被 Quartus II 编译成功但没有逻辑使用?
【发布时间】:2013-12-30 09:04:24
【问题描述】:

很抱歉提出这样一个笼统的问题。我有 Verilog 方面的经验,但对 FPGA 和 Quartus II 不熟悉。我使用 Quartus II 尝试编译设计并查看设计使用了多少逻辑。我按照 Altera 的 Quartus II 快速教程进行操作。 http://www.altera.com/literature/manual/mnl_qts_quick_start.pdf

但是,在分析和综合这一步之后,我注意到根本没有逻辑利用。只能看到顶部模块的两个输入引脚。

我设计的顶层模块是

RiSC(clk,reset)

自然,编译后,除了两个引脚,什么都没有。

你遇到过这个问题吗?你能给我一些提示吗?该设计包含数百行verilog代码,因此应该有逻辑利用。

谢谢!

【问题讨论】:

    标签: compilation verilog fpga


    【解决方案1】:

    未使用的输出将被优化掉。您将不得不路由一些输出,否则合成器将破坏所有逻辑。

    【讨论】:

    • 谢谢。所以你的意思是我需要在我的顶层模块中有输出,否则逻辑利用率将为零?
    • 是的。合成器很智能 - 它删除了所有未使用输出的逻辑。如果芯片没有任何路由,那么所有逻辑都可以被移除,而不会影响合成器的设计。
    • 所有合成器都是这样吗?这种设计是一个小型 CPU,所以在我看来,要有输出来防止所有逻辑被合成器删除,这有点困难。
    • 我建议断开地址和数据总线引脚。不过,您不必像内存在 FPGA 之外那样进行设置。只是一个你可以使用的“水龙头”,例如对于逻辑分析仪来说,应该足以防止合成器优化您的整个设计。
    • 因为在任何实际设计中,如果其输出未连接,则不需要任何逻辑。 (这就像一个盲人看电影......)它可以与外界交流的唯一方法是产生废热......所以,删除它实际上是一个功能,例如您可以编写一个具有多个输出的通用模块并仅连接一些输出,并且仍然确保实现将优化未使用的数据路径。只有在特殊的“学术”情况下(例如估计尚未完成或连接的实现的大小),您才希望保留这种不可观察的逻辑。
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多