7

我正在使用 Altera Quartus 2 做一个定制的 8 位处理器,在我的笔记本电脑上编译需要很长时间。我只使用模拟并将我的处理器制作成原理图(框图)和 VHDL。现在编译大约需要 10 分钟,这很痛苦,因为我更多地处于项目的调试阶段,我必须修复内部时序并进行大量非常小的更改以查看会发生什么。

我实际上并没有把它放在FPGA上,所以我需要“fitter”和“assembler”的编译阶段吗?

我可以更改一个 lpm_ram_dq 的内存文件的内容并在模拟中测试它而不重新编译吗?

总之,有人知道如何让它编译得更快吗?

4

4 回答 4

5

如果您不关心完全优化您的结果而只想获得悲观估计或进行比较,一些有用的标志可以使 Quartus 合成更快。

set_global_assignment  -name PHYSICAL_SYNTHESIS_EFFORT  FAST

指定物理综合应使用的编译时间方面的工作量。快速使用较少的编译时间,但可能会降低物理综合能够实现的性能增益。

set_global_assignment  -name FITTER_EFFORT              FAST_FIT

Fast Fit 减少了优化工作以减少编译时间,这可能会降低设计性能。

而不是execute_flow -compile, 使用:

execute_flow -implement

运行编译到路由阶段并在之后跳过所有时间密集型算法的选项。

在与 Intel/Altera 工程师的一次会议上,使用-implement它被认为比 快 20% -compile,并且在迭代时序收敛结果时被推荐使用。

您还可以尝试以下方法:

set_global_assignment  -name SYNTHESIS_EFFORT           FAST

注意:这有以下警告,尽管我倾向于在某些设计中看到总体上更快的运行。

设置为 Fast 时,省略了一些步骤以更快地完成合成;但是,可能会有一些性能和资源成本。Altera 建议仅在运行早期时序估计时将此选项设置为 Fast。运行“快速”综合产生的网表对 Fitter 来说稍微难以布线,从而使整个拟合过程变慢,这抵消了“快速”综合所带来的任何性能提升。

编辑:

以下设置会影响您的时间,但它们也有助于显着缩短编译时间,尤其是在较新的 Stratix 10/Agilex 设计上:

set_global_assignment -name OPTIMIZATION_MODE          "AGGRESSIVE COMPILE TIME"
set_global_assignment -name ALLOW_REGISTER_RETIMING    "OFF"
set_global_assignment -name HYPER_RETIMER_FAST_FORWARD "OFF"

您还可以使用以下命令关闭时序分析:

set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS "OFF"
于 2017-10-26T21:43:15.200 回答
3

按重要性递减顺序。

  • 更多内存。32 位操作系统为 4 GB。有些设计需要更多,并且需要 64 位操作系统。
  • 不要过度约束设计。
  • 更改编译选项以不那么努力。那在 assignments> settings> Fitter Settings>Fast Fit (or Auto Fit)
  • 8.1 支持多核。
  • 分层编译帮助,特别是如果您有同一个块的多个实例。

2分钟真的很短,我同意之前的海报。一个单一的门将需要很长时间。

于 2008-12-17T18:42:41.637 回答
2

一些事情:

  • 如果您不将其放在 FPGA 上,为什么要使用 Quartus 进行编译?只需使用 Modelsim 或 ActiveHDL 或您拥有的任何模拟器对其进行模拟。
  • 2 分钟是一个非常短的编译时间。真的 :-)
  • 试试 Quartus 8,它比 7 和更早版本快得多
  • 要检查您的代码是否正确合成并查看网表,您确实不需要 fitter 和 assembler 步骤
于 2008-12-17T18:11:43.337 回答
1

如果您只需要在 Quartus 中进行仿真,则不必运行完整的编译。如果按 Ctrl-K,则仅执行分析和详细说明。quartus 模拟器应该为你做这件事。

其他几个人提到的 OTH:10 分钟非常短的编译时间。对于真正的设计,让它运行至少一个小时并不罕见。

于 2010-10-04T11:40:04.437 回答