Verilog 算术和逻辑单元 (ALU) 编译错误

Posted

技术标签:

【中文标题】Verilog 算术和逻辑单元 (ALU) 编译错误【英文标题】:Verilog Arithmetic and Logic Unit (ALU) Compilation Error 【发布时间】:2017-08-15 03:24:31 【问题描述】:

我收到如下编译错误:

错误 (10663):jdb_Blogic_v.v(7) 处的 Verilog HDL 端口连接错误: 输出或输入端口“f”必须连接到结构网络 表达

我评论了错误所在的行。我该如何解决?

我还包含了 mux2to1 功能代码。

module jdb_Blogic_v (FS2_in, FS1_in, B_in, Y_out);

input FS2_in, FS1_in;
input [3:0] B_in;
output reg [3:0] Y_out;

jdb_mux2to1_v stage0 (B_in[0], FS1_in, FS2_in, Y_out[0]); //ERROR IS HERE ACCORDING TO COMPILER
jdb_mux2to1_v stage1 (B_in[1], FS1_in, FS2_in, Y_out[1]);
jdb_mux2to1_v stage2 (B_in[2], FS1_in, FS2_in, Y_out[2]);
jdb_mux2to1_v stage3 (B_in[3], FS1_in, FS2_in, Y_out[3]);

endmodule



module jdb_mux2to1_v (s, x1, x2, f);

input x1, x2, s;
output f;
wire    k, g, h;

not (k, s);
and (g, k, x1);
and (h, s, x2);
or (f, g, h);

endmodule

【问题讨论】:

【参考方案1】:

Y_out 的声明从output reg [3:0] 更改为output [3:0]。这会将其从 reg 更改为 wire

一个 reg 只能在一个过程语句中赋值,例如一个 always 块。

【讨论】:

以上是关于Verilog 算术和逻辑单元 (ALU) 编译错误的主要内容,如果未能解决你的问题,请参考以下文章

计算机组成原理 王道考研2021 第二章:数据的表示和运算 -- 算术逻辑单元(ALU)电路基础知识加法器的实现

计算机组成

ALU底层方法及计算机整数加减乘除模拟

计算机体系结构

基于FPGA的ALU计算器verilog实现

微处理器的基本结构(微机原理笔记)