aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-08-23 06:16:44 +0200
committerTristan Gingold <tgingold@free.fr>2022-08-23 06:16:44 +0200
commit4e93a5033d3b2520dbeab95caccc8bc36fedd531 (patch)
treed9ee5a6dc2bfeaea4106c76e80c64f4ba4d86e3c /src/grt
parent1189bd7568d77a69385dc4ee62c5db36d800a3b1 (diff)
downloadghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.tar.gz
ghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.tar.bz2
ghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.zip
grt-signals: add ghdl_signal_add_extra_driver
Diffstat (limited to 'src/grt')
-rw-r--r--src/grt/grt-signals.adb13
-rw-r--r--src/grt/grt-signals.ads6
2 files changed, 19 insertions, 0 deletions
diff --git a/src/grt/grt-signals.adb b/src/grt/grt-signals.adb
index 3dea49b52..2910bc9dc 100644
--- a/src/grt/grt-signals.adb
+++ b/src/grt/grt-signals.adb
@@ -404,6 +404,19 @@ package body Grt.Signals is
Ghdl_Signal_Add_Driver (Sign, Proc, Trans);
end Ghdl_Process_Add_Driver;
+ procedure Ghdl_Signal_Add_Extra_Driver (Sign : Ghdl_Signal_Ptr;
+ Val : Value_Union)
+ is
+ Trans : Transaction_Acc;
+ begin
+ Trans := new Transaction'(Kind => Trans_Value,
+ Line => 0,
+ Time => 0,
+ Next => null,
+ Val => Val);
+ Ghdl_Signal_Add_Driver (Sign, null, Trans);
+ end Ghdl_Signal_Add_Extra_Driver;
+
procedure Ghdl_Process_Add_Port_Driver
(Sign : Ghdl_Signal_Ptr; Val : Value_Union)
is
diff --git a/src/grt/grt-signals.ads b/src/grt/grt-signals.ads
index b1fa0977e..896646f37 100644
--- a/src/grt/grt-signals.ads
+++ b/src/grt/grt-signals.ads
@@ -775,6 +775,12 @@ package Grt.Signals is
procedure Ghdl_Signal_Effective_Value (Targ : Ghdl_Signal_Ptr;
Src : Ghdl_Signal_Ptr);
+ -- Add an extra driver for SIGN set to value VAL.
+ -- This is used when SIGN is connected to an out/inout/buffer port which
+ -- has no source.
+ procedure Ghdl_Signal_Add_Extra_Driver (Sign : Ghdl_Signal_Ptr;
+ Val : Value_Union);
+
-- Conversions. In order to do conversion from A to B, an intermediate
-- signal T must be created. The flow is A -> T -> B.
-- The link from A -> T is a conversion, added by one of the two