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

如何解决Verilog编写加法器时报adder_out为未知类型的错误

Verilog加法器报错修正方案

错误原因

你的代码存在核心问题:

  • adder_out被声明为reg类型,Verilog规定reg类型的赋值必须放在过程块(如always块)内,直接在模块层级写赋值语句会被编译器识别为非法的变量声明操作,因此抛出adder_out is an unknown type错误。
  • 注意timescale的前缀是反引号(`),不要写为普通单引号。

修正方案

方案1:保留reg类型,使用组合逻辑always块实现

`timescale 1ns / 1ps

module adder(
    input [7:0] adder_in1,
    input [7:0] adder_in2,
    output reg [7:0] adder_out
    );
    
    always @(*) begin
        adder_out = adder_in1 + adder_in2;
    end
endmodule

这里always @(*)代表敏感列表包含所有输入信号,只要输入变化就会执行块内逻辑,符合纯组合加法器的需求。

方案2:改为wire类型,使用assign连续赋值实现

纯组合逻辑的加法器更推荐这种写法,无需声明reg类型:

`timescale 1ns / 1ps

module adder(
    input [7:0] adder_in1,
    input [7:0] adder_in2,
    output [7:0] adder_out
    );
    
    assign adder_out = adder_in1 + adder_in2;
endmodule

报错参考截图

报错示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:36:04