将较小的矢量输入到 Verilog 模块

Inputting a smaller size vector to a Verilog Module

我想知道如果我创建一个具有特定大小向量声明的模块作为输入,然后在稍后实例化时为它提供一个较小大小的向量,会发生什么情况。例如,假设我创建了一个这样的模块:

module example(input, ....);
  input[15:0] input;
  ...
  endmodule

然后我稍后实例化它,但像这样向它传递一个较小的向量大小输入:

wire[11:0] foo;
example bar(foo, ....);

那么在这种情况下 input 会发生什么?由于 input 应该是 16 位,它是否只是在左侧补零 foo

wire 的默认值为'Z'(High-Impedance)。由于输入的 4 位未连接,其余输入位 [12:15] 在条件下采用默认值,所有其余连接的位都正确驱动输入。通常要在较大的 RTL 设计中消除此类错误 运行 建议使用代码上的任何静态工具。