You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quartus RTL Viewer未显示级联Not门,如何查看正确RTL?

解决Quartus RTL Viewer不显示级联非门的问题

首先修正你代码里的笔误:第二个非门的输入用了未定义的d,应该改为a1,修正后的代码如下:

module notnot(clk, outp);
input clk;
output outp;
wire a1;
not #(20) n1(a1,clk);
not #(20) n2(outp,a1); // 修正未定义的d为a1
endmodule

module ini(a,b);
input a;
output b;
notnot poe1(a,b);
endmodule

为什么RTL Viewer只显示连线?

Quartus综合器默认会执行逻辑优化,两个级联的非门在逻辑上等价于直接连线(两次取反等于原信号),所以综合器会自动移除这两个冗余的非门,只保留连线。

查看正确RTL的两种方法

方法1:关闭全局逻辑优化

  • 打开Quartus工程,点击菜单栏Assignments -> Settings
  • 在设置窗口中,展开Compiler Settings -> Advanced Settings (Synthesis)
  • 找到逻辑优化相关选项,勾选Disable gate-level optimization(或取消勾选Remove redundant logic类选项,不同版本名称可能略有差异)
  • 重新执行全编译(Processing -> Start Compilation),之后打开RTL Viewer即可看到两个非门

方法2:添加代码约束阻止局部优化

在代码中给中间信号添加syn_keep属性,强制综合器保留该信号及对应的逻辑单元:

module notnot(clk, outp);
input clk;
output outp;
// 添加syn_keep属性阻止a1被优化
(* syn_keep = "true" *) wire a1;
not #(20) n1(a1,clk);
not #(20) n2(outp,a1);
endmodule

module ini(a,b);
input a;
output b;
notnot poe1(a,b);
endmodule

重新编译后,RTL Viewer会保留两个非门的结构。

内容的提问来源于stack exchange,提问作者Bhawesh Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 00:32:20