diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-08-23 06:16:44 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-08-23 06:16:44 +0200 |
commit | 4e93a5033d3b2520dbeab95caccc8bc36fedd531 (patch) | |
tree | d9ee5a6dc2bfeaea4106c76e80c64f4ba4d86e3c /src | |
parent | 1189bd7568d77a69385dc4ee62c5db36d800a3b1 (diff) | |
download | ghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.tar.gz ghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.tar.bz2 ghdl-4e93a5033d3b2520dbeab95caccc8bc36fedd531.zip |
grt-signals: add ghdl_signal_add_extra_driver
Diffstat (limited to 'src')
-rw-r--r-- | src/grt/grt-signals.adb | 13 | ||||
-rw-r--r-- | src/grt/grt-signals.ads | 6 |
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 |