使用Quartus 2设计环形振荡器

时间:2018-09-04 10:05:12

标签: verilog fpga quartus

我设计了一个环形振荡器,以使用Alter的Quartus 2在FPGA上实现。我想告诉该工具不要优化环形振荡器。为此,我需要用于FPGA的综合工具(Altera DE2-07)。您能告诉我如何执行此操作以防止逻辑优化吗?

谢谢。

Context

enter image description here

1 个答案:

答案 0 :(得分:0)

因此,环形振荡器的设计不能承受,相对于防止优化,我将提出以下建议。

在您的RTL内部,

(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w1;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w2;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w3;
(* altera_attribute = {"-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON;}  *)
output reg w4;

然后重新编写您的组合逻辑,如下所示。这段代码让我感到畏缩...但是我想您知道您相对于此振荡器正在做的事情。我相信上述指令将阻止w1-w4的优化。祝你好运。

always @ (*)
begin
    w4 <= en & w3;
    w3 <= ~w4;
    w2 <= ~w1;
    w1 <= ~w1;
end