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

Quartus Prime Lite 23.1中SystemVerilog设计综合未化简RTL门电路问题

为什么Quartus RTL Viewer显示未化简的门级网表?

你的问题核心是RTL Viewer展示的是综合初期的结构,而非最终优化后的电路,具体原因拆解如下:

  • RTL Viewer的定位问题:这个工具的作用是把你写的SystemVerilog代码直接转换成对应的RTL级结构,优先保证和代码逻辑一一对应,不会主动做逻辑化简。它的目标是帮你验证代码描述的逻辑是否正确,而不是展示最终部署到FPGA上的优化后电路。你看到的重复项(a&~b)&c,其实是代码里对应minterm 4和5的原始描述被直接转译的结果。

  • 综合流程的阶段差异:Quartus的综合分多个阶段:

    1. 前端分析:把代码转成RTL结构(就是RTL Viewer展示的内容)
    2. 逻辑优化:这一步才会做布尔化简、冗余项消除,得到你教材里的~b&~c + a&~b
    3. 技术映射:把优化后的逻辑映射到FPGA的底层资源(比如LUT、触发器)
      你只看了第一阶段的结果,自然和教材里的优化后电路不符。
  • 代码写法的影响:如果你是直接用case语句枚举每个minterm,或者用多个||拼接原始最小项,RTL Viewer会严格按照代码的分支生成结构。比如你写:

    assign f = (~a&~b&~c) | (a&~b&~c) | (a&~b&c);
    

    RTL Viewer就会直接生成三个与门加或门的结构,不会提前合并项。但如果直接写化简后的表达式,RTL Viewer就会展示对应的结构。

  • 优化设置的问题:如果你的Quartus工程没开启默认优化,或者优化等级设为最低,逻辑优化阶段可能不会做彻底的化简。可以去Assignments > Settings > Compiler Settings > Optimization Technique里检查,一般选Speed或Balanced都会自动做布尔化简。

  • 验证最终电路的正确方式:要看优化后的结果,应该打开Technology Map Viewer,或者通过仿真验证逻辑功能。RTL Viewer只是中间步骤的参考,不是最终电路的体现。

内容的提问来源于stack exchange,提问作者Pepe Cuesta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:24:54