aboutsummaryrefslogtreecommitdiffstats
path: root/tests/svinterfaces/load_and_derive.sv
blob: 0de0de3b34623fc3374b4707dab1edef1be5bb75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// This test checks that we correctly elaborate interfaces in modules, even if they are loaded on
// demand. The "ondemand" module is defined in ondemand.sv in this directory and will be read as
// part of the hierarchy pass.

interface iface;
  logic [7:0] x;
  logic [7:0] y;
endinterface

module dut (input logic [7:0] x, output logic [7:0] y);
  iface intf();
  assign intf.x = x;
  assign y = intf.y;

  ondemand u(.intf);
endmodule

module ref (input logic [7:0] x, output logic [7:0] y);
  assign y = ~x;
endmodule