// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain
// SPDX-FileCopyrightText: 2025 Wilson Snyder
// SPDX-License-Identifier: CC0-1.0

// Test for --binary --vpi runtime library loading.  The design provides its
// own clock (so the simulation has Verilog event activity); the VPI library
// (t_flag_main_vpi.cpp), loaded at runtime via +verilator+vpi+, observes
// 'count' via a cbValueChange callback and calls $finish after MAX_TICKS
// edges.  Signals are public so the library can reach them by name
// (requires --public-flat-rw).
module t;

  reg clk  /*verilator public_flat_rw*/;
  reg [31:0] count  /*verilator public_flat_rw*/;

  initial begin
    clk = 0;
    count = 0;
  end

  // Self-driving clock: the design itself keeps the simulation alive
  always #5 clk = ~clk;

  always @(posedge clk) count <= count + 1;

endmodule
