【问题标题】:Syntax for using an array of wires as input使用线数组作为输入的语法
【发布时间】:2010-02-26 13:20:38
【问题描述】:

我有以下模块:

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 );

由于最后一行,它不会编译,为什么?

谢谢。

【问题讨论】:

    标签: arrays verilog


    【解决方案1】:

    在第二个代码 sn-p 中,您将电汇声明从头到尾。应该是:

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

    【讨论】:

      【解决方案2】:

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

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

      但是,在您的调用模块中,您声明了三个 1 位宽 x 8 位深 wire 数组(请参阅 IEEE Standard for Verilog,1364-2005,第 4.9 节)数组):

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

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

      要解决此问题,您必须确保用于连接到实例的信号类型与模块端口类型匹配。正如 Marty 指出的那样,您很可能希望将调用模块 wire 声明更改为:

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

      另一种可能性是更改您的模块端口以匹配调用模块的电线,但我真诚地怀疑这是您想要的。

      【讨论】:

        猜你喜欢
        • 2021-03-13
        • 2011-12-29
        • 2016-10-09
        • 2013-08-01
        • 1970-01-01
        • 2013-03-09
        • 2010-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多