我使用给出的示例代码为类编写了这个模块,但是我在尝试编译时遇到错误 - 我认为这可能是由于我使用输入的方式(或者只是语法错误) ,所以我试图用数组做 - 我的评论方法是否正确?我应该使用串联吗?
module ledSwitch(LEDR, SW);
input [9:0] SW; //switches and led
output [0] LEDR;
mux7to1 u0(
.s0(SW[0]),//input switches to mux
.s1(SW[1]),
.s2(SW[2]),
.s3(SW[3]),
.s4(SW[4]),
.s5(SW[5]),
.s6(SW[6]),
.s7(SW[7]),
.s8(SW[8]),
.s9(SW[9]),
//.inputs([SW[0], [SW[1], [SW[2], [SW[3], [SW[4], [SW[5], [SW[6]])
//.muxSelect([SW[7], [SW[8], [SW[9])
.l(LEDR[0]) //input led output to mux
);
endmodule
module mux7to1(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, l);
input s0;
input s1;
input s2;
input s3;
input s4;
input s5;
input s6;
input s7;
input s8;
input s9;
//input inputs[6:0]
//input muxSelect[2:0]
output l;
reg Out; //declare the output signal for the always block
always@(*) //declare always block
begin
case ([s9, s8, s7])//muxSelect[2:0] //start case statement
3'b000: Out = s0; //case 0, A
3'b001: Out = s3; //case 1, D
3'b010: Out = s1; //case 2, B
3'b011: Out = s5 //case 3, F
3'b100: Out = s0; //case 4, A
3'b101: Out = s4; //case 5, E
3'b110: Out = s2; //case 6, C
3'b111: Out = s6; //case 7, G
default: Out = 0; //Default
endcase
end
assign l = Out;
endmodule
以下是错误消息:
信息:********************************************* **********************
信息:运行Quartus II 64位分析&合成
信息:版本15.0.0 Build 145 04/22/2015 SJ Web Edition
信息:处理已开始:2016年2月2日星期二14:53:06
信息:命令:quartus_map --read_settings_files = on --write_settings_files = off Lab2_1 -c Lab2_1
警告(20028):并行编译未获得许可且已被禁用
错误(10170):在文本“[”附近的Lab2_1.v(43)处的Verilog HDL语法错误;期待操作数
错误(10170):Lab2_1.v(45)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(46)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(47)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(48)附近文本“3”的Verilog HDL语法错误;期待“;”
错误(10170):Lab2_1.v(49)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(50)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(51)附近文本“3”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(52)附近文本“default”的Verilog HDL语法错误;期待“结束”
错误(10170):Lab2_1.v(53)附近文本“endcase”的Verilog HDL语法错误;期待“结束”
错误(10112):由于先前的错误,在Lab2_1.v(24)处忽略了设计单元“mux7to1”
Info(12021):在源文件Lab2_1.v中找到0个设计单元,包括0个实体
错误:Quartus II 64位分析&合成不成功。 11个错误,1个警告
错误:峰值虚拟内存:959兆字节
错误:处理已结束:2016年2月2日星期二14:53:23
错误:已用时间:00:00:17
错误:总CPU时间(在所有处理器上):00:00:51
错误(293001):Quartus II完全编译失败。 13个错误,1个警告
答案 0 :(得分:2)
您需要使用连接运算符:case ({s9, s8, s7})
此外,您还有一些语法错误,例如缺少需要更正的分号。
最后在ledSwitch模块中,您需要正确定义输出。