From 4e93a5033d3b2520dbeab95caccc8bc36fedd531 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 23 Aug 2022 06:16:44 +0200 Subject: grt-signals: add ghdl_signal_add_extra_driver --- src/grt/grt-signals.adb | 13 +++++++++++++ src/grt/grt-signals.ads | 6 ++++++ 2 files changed, 19 insertions(+) (limited to 'src/grt') 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 -- cgit v1.2.3