System verilog hổ trợ tạo ra nhiều tiến trình chạy song song. Tham khảo: https://www.chipverify.com/systemverilog/systemverilog-threads (opens new window)

module main;
    import "DPI-C" task c_main(int argc, input string argv[]);
  
    initial begin
      for (int i = 0; i< 3;i++) begin
        fork
          automatic int index = i;
          main(index);
        join_none;
      end

      wait fork;
    end
    task main(int i);
       automatic string value [2];
       $sformat(value[0], "%0d", i);
       #i;
       $sformat(value[1], "%0d", $time);
       c_main(2,value);
    endtask;
endmodule
#include <svdpi.h>
#include <iostream>
#include <stdlib.h>

extern "C" void c_main(int argc, svOpenArrayHandle argv) {
    const char** argv_ptr = static_cast<const char**>(svGetArrayPtr(argv));
	std::cout <<"time: " << argv_ptr[1]  << " - thread id: " << argv_ptr[0] << std::endl;
}

Kết quả:

time: 0 - thread id: 0
time: 1 - thread id: 1
time: 2 - thread id: 2