如何在systemverilog中定义接口的输入和输出

时间:2018-03-18 16:13:13

标签: system-verilog

这里我有一个简单的例子。

module A(o,clk,rst,i);
  output o;
  input i,clk,rst;
  ...
endmodule

这是下面的接口类定义。

interface my_if(input bit clk);
  logic o,rst,i;
  wire clk;

  clocking cb@(posedge clk);
    input o;         // why input here ?
    output i,rst;    // why output here ?
  endclocking
  ...
endinterface

我的问题是如何判断cb内的信号是输入还是输出?

谢谢!

1 个答案:

答案 0 :(得分:1)

SystemVerilog中有input/output的许多用法,这可能令人困惑。

对于端口,它们是跨边界的数据流。对于clocking块,它们表示信号是被动采样还是主动驱动。根据具体情况,将端口声明为输出,并将相同的信号声明为时钟模块输入是完全合理的。