Verilog实例化问题?

时间:2014-03-12 02:31:30

标签: verilog instantiation

我遇到一个奇怪的问题,我的实例化在这个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

1 个答案:

答案 0 :(得分:0)

您无法在条件块中实例化模块。实例化块时,您将创建始终存在的硬件。你想要的是实例化你需要的所有块,然后用你的if-else条件选择你想要的结果。

阅读standard

第23.3节中的实例化模块
相关问题