aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-expr.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-expr.adb')
-rw-r--r--src/synth/synth-expr.adb12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 7f701edde..d24370c25 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -885,6 +885,18 @@ package body Synth.Expr is
return Create_Value_Discrete
(Int64 (Get_Enum_Pos (Name)),
Get_Value_Type (Syn_Inst, Get_Type (Name)));
+ when Iir_Kind_Unit_Declaration =>
+ return Create_Value_Discrete
+ (Vhdl.Evaluation.Get_Physical_Value (Name),
+ Get_Value_Type (Syn_Inst, Get_Type (Name)));
+ when Iir_Kind_Implicit_Dereference
+ | Iir_Kind_Dereference =>
+ declare
+ Val : Value_Acc;
+ begin
+ Val := Synth_Expression (Syn_Inst, Get_Prefix (Name));
+ return Heap.Synth_Dereference (Val.Acc);
+ end;
when others =>
Error_Kind ("synth_name", Name);
end case;