aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-07-20 19:43:00 +0200
committerTristan Gingold <tgingold@free.fr>2022-07-20 20:40:57 +0200
commit8277f9c4a938c84558fd5d234e2707bd88afb770 (patch)
tree5f9f7f0215483ee9ecb36d33ab97c5b79546d4ff /src/grt
parente5cf297021c08f3528e32784a755f168e71cf8af (diff)
downloadghdl-8277f9c4a938c84558fd5d234e2707bd88afb770.tar.gz
ghdl-8277f9c4a938c84558fd5d234e2707bd88afb770.tar.bz2
ghdl-8277f9c4a938c84558fd5d234e2707bd88afb770.zip
grt: add real now variable.
Diffstat (limited to 'src/grt')
-rw-r--r--src/grt/grt-options.adb8
-rw-r--r--src/grt/grt-options.ads4
-rw-r--r--src/grt/grt-vhdl_types.ads4
3 files changed, 16 insertions, 0 deletions
diff --git a/src/grt/grt-options.adb b/src/grt/grt-options.adb
index bf29c1a5e..2b07278b1 100644
--- a/src/grt/grt-options.adb
+++ b/src/grt/grt-options.adb
@@ -49,6 +49,14 @@ package body Grt.Options is
when others =>
Error ("unhandled time resolution");
end case;
+
+ -- For AMS.
+ -- (Don't use **, as it requires the runtime).
+ Time_Real_To_Phys := 1.0;
+ for I in 1 .. Time_Resolution_Scale loop
+ Time_Real_To_Phys := Time_Real_To_Phys * 1000.0;
+ end loop;
+ Time_Phys_To_Real := 1.0 / Time_Real_To_Phys;
end Set_Time_Resolution;
procedure Help
diff --git a/src/grt/grt-options.ads b/src/grt/grt-options.ads
index fa29cc85f..d9ea57bc5 100644
--- a/src/grt/grt-options.ads
+++ b/src/grt/grt-options.ads
@@ -64,6 +64,10 @@ package Grt.Options is
subtype Natural_Time_Scale is Natural range 0 .. 5;
Time_Resolution_Scale : Natural_Time_Scale;
+ -- For AMS, conversion factors.
+ Time_Phys_To_Real : Ghdl_F64;
+ Time_Real_To_Phys : Ghdl_F64;
+
-- Set Time_Resolution_Scale from Flag_String.
procedure Set_Time_Resolution;
diff --git a/src/grt/grt-vhdl_types.ads b/src/grt/grt-vhdl_types.ads
index 42db6b9dd..34366161e 100644
--- a/src/grt/grt-vhdl_types.ads
+++ b/src/grt/grt-vhdl_types.ads
@@ -158,6 +158,10 @@ package Grt.Vhdl_Types is
Current_Time : Std_Time;
-- The current delta cycle number.
Current_Delta : Integer;
+
+ -- For AMS
+ Current_Time_AMS : Ghdl_F64;
private
pragma Export (C, Current_Time, "__ghdl_now");
+ pragma Export (C, Current_Time_AMS, "__ghdl_now_ams");
end Grt.Vhdl_Types;