我遇到一个奇怪的问题,我的实例化在这个verilog代码中不起作用。在altera的向导中创建了宏功能之后,我正在尝试使用.inst文件中给出的模板对其进行实例化。我有项目中包含的宏功能的.v文件,并已将数据输入和输出设置为我们设计的适当变量。但我无法得到任何过去的错误“错误(10170):在functionalblock.v(183)附近文本的Verilog HDL语法错误”(“;期待”;“”“
else if是一个更大的if,else if链的一部分包含在Always块中。
else if (fs == 4'b0011) begin
if(instrsel == 2'b00) begin
cns_mul_1 cns_mul_1_inst (
.dataa ( TAout ),
.datab ( TBout ),
.result ( {aluout, aluouttr} )
);
end
else if(instrsel == 2'b01) begin
cns_div_1 cns_div_1_inst (
.denom ( TBout ),
.numer ( TAout ),
.quotient ( ALUout ),
.remain ( aluouttr )
);
end
else if(instrsel == 2'b10) begin
cns_mul_1 cns_mul_1_inst (
.dataa ( TAout ),
.datab ( TBout ),
.result ( {aluout, aluouttr} )
);
end
else if(instrsel == 2'b11) begin
cns_div_1 cns_div_1_inst (
.denom ( TBout ),
.numer ( TAout ),
.quotient ( ALUout ),
.remain ( aluouttr )
);
end
end
答案 0 :(得分:0)
您无法在条件块中实例化模块。实例化块时,您将创建始终存在的硬件。你想要的是实例化你需要的所有块,然后用你的if-else
条件选择你想要的结果。
阅读standard
第23.3节中的实例化模块