Compilation 为什么我的设计由Quartus II成功编译,但没有逻辑利用?

Compilation 为什么我的设计由Quartus II成功编译,但没有逻辑利用?,compilation,verilog,fpga,Compilation,Verilog,Fpga,很抱歉提出这样一个一般性的问题。我有Verilog方面的经验,但对FPGA和Quartus II还不熟悉。我使用Quartus II尝试编译设计,并查看设计使用了多少逻辑。我遵循Altera的Quartus II快速教程 然而,在分析和综合步骤之后,我注意到根本没有逻辑利用。只能看到顶部模块的两个输入引脚 我设计的顶层模块是 RiSC(clk,reset) 当然,经过编译后,仍然只有两个引脚 你遇到过这个问题吗?你能给我一些提示吗?该设计包含数百行verilog代码,因此应该有逻辑利用率

很抱歉提出这样一个一般性的问题。我有Verilog方面的经验,但对FPGA和Quartus II还不熟悉。我使用Quartus II尝试编译设计,并查看设计使用了多少逻辑。我遵循Altera的Quartus II快速教程

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

我设计的顶层模块是

RiSC(clk,reset)
当然,经过编译后,仍然只有两个引脚

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


谢谢

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

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

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