aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/synth/synth-vhdl_static_proc.adb8
-rw-r--r--src/synth/synth-vhdl_static_proc.ads4
2 files changed, 12 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_static_proc.adb b/src/synth/synth-vhdl_static_proc.adb
index 0764d35c1..a20865696 100644
--- a/src/synth/synth-vhdl_static_proc.adb
+++ b/src/synth/synth-vhdl_static_proc.adb
@@ -16,6 +16,8 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <gnu.org/licenses>.
+with Types; use Types;
+
with Vhdl.Errors; use Vhdl.Errors;
with Elab.Vhdl_Values; use Elab.Vhdl_Values;
@@ -62,6 +64,12 @@ package body Synth.Vhdl_Static_Proc is
Synth_File_Read (Syn_Inst, Imp, Loc);
when Iir_Predefined_Write =>
Synth_File_Write (Syn_Inst, Imp, Loc);
+ when Iir_Predefined_Std_Env_Finish_Status =>
+ if Hook_Finish /= null then
+ Hook_Finish.all (Syn_Inst, Imp);
+ else
+ raise Internal_Error;
+ end if;
when others =>
Error_Msg_Synth
(+Loc, "call to implicit %n is not supported", +Imp);
diff --git a/src/synth/synth-vhdl_static_proc.ads b/src/synth/synth-vhdl_static_proc.ads
index c7bedbcce..153f8b3cf 100644
--- a/src/synth/synth-vhdl_static_proc.ads
+++ b/src/synth/synth-vhdl_static_proc.ads
@@ -24,4 +24,8 @@ package Synth.Vhdl_Static_Proc is
procedure Synth_Static_Procedure (Syn_Inst : Synth_Instance_Acc;
Imp : Node;
Loc : Node);
+
+ type Hook_Simulation_Acc is access
+ procedure (Inst : Synth_Instance_Acc; Imp : Node);
+ Hook_Finish : Hook_Simulation_Acc;
end Synth.Vhdl_Static_Proc;