verilator/test_regress/t/t_interface_virtual_sched_i...

61 lines
1.0 KiB
Systemverilog

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2023 by Antmicro Ltd.
// SPDX-License-Identifier: CC0-1.0
interface If;
logic [31:0] inc;
endinterface
module top;
logic clk = 0;
logic [31:0] inc1 = 0;
logic [31:0] inc2 = 0;
int cyc = 0;
If intf1();
If intf2();
virtual If vif1 = intf1;
virtual If vif2 = intf2;
// assign vif1.inc = inc1;
always @(posedge clk) begin
vif1.inc <= inc1;
end
assign intf2.inc = inc2;
always @(posedge clk) begin
cyc <= cyc + 1;
if (cyc >= 10) begin
$write("*-* All Finished *-*\n");
$finish;
end
end
always @(intf1.inc) begin
$write("[%0t] intf1.inc==%h\n", $time, intf1.inc);
end
always @(vif2.inc) begin
$write("[%0t] vif2.inc==%h\n", $time, vif2.inc);
end
initial begin
repeat (30) #5ns clk = ~clk;
end
initial begin
inc1 = 1;
inc2 = 1;
repeat (8) begin
#10ns;
inc1 = inc1 + 1;
inc2 = inc2 + 1;
end
end
endmodule