diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-01-11 18:12:28 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-01-12 09:15:37 +0100 |
commit | 88215549497e4ec8f1e55325a87e3155626a8a3b (patch) | |
tree | f9c0195b7bad3a13bbbc32265613d3578e620ac2 /src/synth | |
parent | 6782adcb601253cd9836302ba8be4ea500b7911e (diff) | |
download | ghdl-88215549497e4ec8f1e55325a87e3155626a8a3b.tar.gz ghdl-88215549497e4ec8f1e55325a87e3155626a8a3b.tar.bz2 ghdl-88215549497e4ec8f1e55325a87e3155626a8a3b.zip |
synth: use formal instance to evaluate default value. For #1080
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/synth-insts.adb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/synth/synth-insts.adb b/src/synth/synth-insts.adb index 46616484a..f58770622 100644 --- a/src/synth/synth-insts.adb +++ b/src/synth/synth-insts.adb @@ -563,10 +563,12 @@ package body Synth.Insts is is Actual : Node; Formal_Typ : Type_Acc; + Act_Inst : Synth_Instance_Acc; begin case Iir_Kinds_Association_Element_Parameters (Get_Kind (Assoc)) is when Iir_Kind_Association_Element_Open => Actual := Get_Default_Value (Inter); + Act_Inst := Inter_Inst; when Iir_Kind_Association_Element_By_Expression => Actual := Get_Actual (Assoc); if Get_Kind (Actual) = Iir_Kind_Reference_Name then @@ -577,6 +579,7 @@ package body Synth.Insts is (Get_Kind (Actual) = Iir_Kind_Anonymous_Signal_Declaration); Actual := Get_Expression (Actual); end if; + Act_Inst := Syn_Inst; when Iir_Kind_Association_Element_By_Individual => Synth_Individual_Input_Assoc (Inp, Syn_Inst, Assoc, Inter_Inst); return; @@ -586,7 +589,7 @@ package body Synth.Insts is Connect (Inp, Get_Net (Synth_Expression_With_Type - (Syn_Inst, Actual, Formal_Typ))); + (Act_Inst, Actual, Formal_Typ))); end Synth_Input_Assoc; procedure Synth_Individual_Output_Assoc (Outp : Net; |