module muxx(M, X, Y, S, SW,LEDR,LEDG)
(
input [17:0]X,
input [17:0]Y,
output [15:0]LEDR,
output [7:0]LEDG,
output [7:0]M
);
if
S=0;
M=X;
while if
S=1;
M=Y;
wire [7:0] X = SW[7:0];
wire [7:0] Y = SW[15:8];
wire S = SW[17];
input SW[17];
input[17:0]SW;
muxx ex(.M(LEDG), .S(SW[17]), .X(SW[7:0]), .Y(SW[15:8]));
assign LEDR[7:0] = X;
assign LEDR[15:8] = Y;
assign M[0] = X[0] & ~S | Y[8] & S;
assign M[1] = X[1] & ~S | Y[9] & S;
assign M[2] = X[2] & ~S | Y[10] & S;
assign M[3] = X[3] & ~S | Y[11] & S;
assign M[4] = X[4] & ~S | Y[12] & S;
assign M[5] = X[5] & ~S | Y[13] & S;
assign M[6] = X[6] & ~S | Y[14] & S;
assign M[7] = X[7] & ~S | Y[15] & S;
endmodule
我正在学习NCE,并且正在参加SE课程,但是我不知道如何编写这个MUX 2对1 8位代码,但是我遇到了以下错误:
错误(13411):文本附近的MUXX.v(3)处的Verilog HDL语法错误(
错误:流程失败:
错误:Quartus Prime综合失败。 2个错误,0个警告
错误:虚拟内存峰值:4972兆字节
错误:处理已结束:2018年10月16日星期二20:53:12
错误:经过时间:00:00:03
错误:CPU总时间(在所有处理器上):00:00:03
错误(293001):Quartus Prime完全编译失败。 4个错误,0个警告
答案 0 :(得分:1)
您实际上混合了两种不同的端口声明样式,请参见IEEE1800-2017,第ch。 23.2。您需要选择要使用的那个。
ANSI样式:
module muxx
(
input [17:0] X,
input [17:0] Y,
output [15:0] LEDR,
output [7:0] LEDG,
output [7:0] M
);
//...
endmodule
非ANSI风格:
module muxx(M, X, Y, S, SW,LEDR,LEDG);
input [17:0] X;
input [17:0] Y;
output [15:0] LEDR;
output [7:0] LEDG;
output [7:0] M;
//...
endmodule