代码之家  ›  专栏  ›  技术社区  ›  Cheetah

使用导线数组作为输入的语法

  •  3
  • Cheetah  · 技术社区  · 16 年前

    我有以下模块:

    module add_8bit ( output wire co,
                  output wire [7:0] r,
    
                  input wire ci,
                  input wire [7:0] x,
                  input wire [7:0] y );
    

    我试图通过以下代码使用它:

     wire rbit [7:0];
     wire onebit [7:0];
     wire twocomp [7:0];
    
     wire tco, tci;
    
     add_8bit t9 ( tco, twocomp, tci, rbit, onebit );
    

    谢谢

    2 回复  |  直到 16 年前
        1
  •  5
  •   Marty    16 年前

    在第二个代码段中,您可以将wire声明前后对齐。应该是:

    wire [7:0] rbit;
    wire [7:0] onebit;
    wire [7:0] twocomp;
    
        2
  •  3
  •   toolic    16 年前

    在模块定义中,您声明了三个8位 wire 端口:

     output wire [7:0] r,
     input  wire [7:0] x,
     input  wire [7:0] y
    

    (参考IEEE Verilog标准,1364-2005,第4.9节“阵列”):

     wire rbit    [7:0];
     wire onebit  [7:0];
     wire twocomp [7:0];
    

    将这些线阵列连接到模块实例时,会发生端口连接类型不匹配,从而导致编译错误。

    要解决这种情况,必须确保用于连接实例的信号类型与模块端口类型匹配。正如Marty所指出的,您很可能想要更改您的呼叫模块 声明:

    wire [7:0] rbit;
    wire [7:0] onebit;
    wire [7:0] twocomp;