diff options
Diffstat (limited to 'src/synth/synth-context.adb')
-rw-r--r-- | src/synth/synth-context.adb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/synth/synth-context.adb b/src/synth/synth-context.adb index b87f9b06b..48a0114b3 100644 --- a/src/synth/synth-context.adb +++ b/src/synth/synth-context.adb @@ -388,7 +388,7 @@ package body Synth.Context is raise Internal_Error; end if; when Value_Const_Array - | Value_Record => + | Value_Const_Record => declare W : constant Width := Get_Type_Width (Val.Typ); Nd : constant Digit_Index := Digit_Index ((W + 31) / 32); @@ -424,6 +424,18 @@ package body Synth.Context is Build (Build_Context, C, Res); return Res; end; + when Value_Record => + declare + use Netlists.Concats; + C : Concat_Type; + Res : Net; + begin + for I in Val.Rec.V'Range loop + Append (C, Get_Net (Val.Rec.V (I))); + end loop; + Build (Build_Context, C, Res); + return Res; + end; when others => raise Internal_Error; end case; |