首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog模块模拟时未解析的参考误差

Verilog模块模拟时未解析的参考误差
EN

Stack Overflow用户
提问于 2014-03-05 00:43:19
回答 1查看 7.8K关注 0票数 1

当我试图通过testbench模拟以下模块时,我会收到以下错误:

未解决的对“if2to4”的引用

这是我的代码:

代码语言:javascript
复制
module h3to8(din, eout, en);

  //Port Assignments
  input [2:0] din;
  input [0:0] en;
  output reg [7:0] eout;

  //3-to-8 decoder

  always @(din)
    begin 
  
      eout = 8'b00000000;
      if(din[2] == 1'b0)
        if2to4 half1 (din[1:0], eout[3:0], en);
      else
        if2to4 half2 (din[1:0], eout[7:4], en);
      
    end

endmodule

module if2to4 (in, out, en);

  //Port Assignments
  input [1:0] in;
  input [0:0] en;
  output reg [3:0] out;

  //2-to-4 decoder
  always @(in)
    begin
  
    if(en == 0)
      out = 4'b0000;
    
    else
     if(in == 0)
       out = 1;
     else if(in == 1)
       out = 2;
     else if(in == 2)
       out = 4;
     else
       out = 8;
        
    end

endmodule

verilog码被设计成使用两个2-4译码器来实现3-8解码器.我认为我正确地实例化了这些模块,但是我一直收到一个与模块if2to4有关的未解决的引用错误。代码编译时没有错误,此特定错误仅在试图运行模拟时发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 00:49:51

您不能在总是这样的块中实例化模块。试试这个:

代码语言:javascript
复制
module h3to8(din, eout, en);

  //Port Assignments
  input [2:0] din;
  input [0:0] en;
  output reg [7:0] eout;

  //3-to-8 decoder

    if2to4 half1 (din[1:0], eout[3:0], en);
    if2to4 half2 (din[1:0], eout[7:4], en);

endmodule

或者,您可以使用din[2]作为启用的一部分:

代码语言:javascript
复制
module h3to8(din, eout, en);

  //Port Assignments
  input [2:0] din;
  input [0:0] en;
  output reg [7:0] eout;

  //3-to-8 decoder

    if2to4 half1 (din[1:0], eout[3:0], en&~din[2]);
    if2to4 half2 (din[1:0], eout[7:4], en&din[2]);

endmodule
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22186236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档