aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/grt-processes.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-04-02 19:44:37 +0200
committerTristan Gingold <tgingold@free.fr>2020-04-02 19:45:48 +0200
commit2fc3356ae0d34dae87eb22c94f4b5eaa1873695b (patch)
treea0d3f99840b71a8a60951a2a3890bf0babdcb488 /src/grt/grt-processes.ads
parent013c41bf28a636e32d7b62e89293f4ff172a5491 (diff)
downloadghdl-2fc3356ae0d34dae87eb22c94f4b5eaa1873695b.tar.gz
ghdl-2fc3356ae0d34dae87eb22c94f4b5eaa1873695b.tar.bz2
ghdl-2fc3356ae0d34dae87eb22c94f4b5eaa1873695b.zip
grt: add code to support systemc co-simulation.
Diffstat (limited to 'src/grt/grt-processes.ads')
-rw-r--r--src/grt/grt-processes.ads16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/grt/grt-processes.ads b/src/grt/grt-processes.ads
index 2cd091524..7a5577c11 100644
--- a/src/grt/grt-processes.ads
+++ b/src/grt/grt-processes.ads
@@ -45,9 +45,20 @@ package Grt.Processes is
-- Broken down version of Simulation.
function Simulation_Init return Integer;
+ pragma Export (C, Simulation_Init, "__ghdl_simulation_init");
function Simulation_Cycle return Integer;
procedure Simulation_Finish;
+ function Simulation_Step return Integer;
+ pragma Export (C, Simulation_Step, "__ghdl_simulation_step");
+ -- Return value:
+ -- 0: delta cycle
+ -- 1: non-delta cycle
+ -- 2: stop
+ -- 3: finished
+ -- 4: stop-time reached
+ -- 5: stop-delta reached
+
-- True if simulation has reached a user timeout (--stop-time or
-- --stop-delta). Emit an info message as a side effect.
function Has_Simulation_Timeout return Boolean;
@@ -124,6 +135,9 @@ package Grt.Processes is
procedure Ghdl_Always_Register (Instance : Instance_Acc;
Proc : Proc_Acc);
+ function Ghdl_Register_Foreign_Process
+ (Instance : Instance_Acc; Proc : Proc_Acc) return Process_Acc;
+
-- Add a simple signal in the sensitivity of the last registered
-- (sensitized) process.
procedure Ghdl_Process_Add_Sensitivity (Sig : Ghdl_Signal_Ptr);
@@ -251,6 +265,8 @@ private
pragma Export (C, Ghdl_Always_Register, "__ghdl_always_register");
pragma Export (C, Ghdl_Initial_Register, "__ghdl_initial_register");
+ pragma Export (C, Ghdl_Register_Foreign_Process,
+ "__ghdl_register_foreign_process");
pragma Export (C, Ghdl_Process_Add_Sensitivity,
"__ghdl_process_add_sensitivity");