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