aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/synth-vhdl_expr.adb8
-rw-r--r--src/synth/synth-vhdl_expr.ads1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_expr.adb b/src/synth/synth-vhdl_expr.adb
index d5a0e98fa..c4bd18868 100644
--- a/src/synth/synth-vhdl_expr.adb
+++ b/src/synth/synth-vhdl_expr.adb
@@ -812,6 +812,8 @@ package body Synth.Vhdl_Expr is
Obj := Elab.Vhdl_Heap.Synth_Dereference (Acc);
return Create_Value_Memtyp (Obj);
end;
+ when Iir_Kind_Psl_Endpoint_Declaration =>
+ return Synth_Expression (Syn_Inst, Name);
when others =>
Error_Kind ("synth_name", Name);
end case;
@@ -2621,6 +2623,12 @@ package body Synth.Vhdl_Expr is
end if;
Error_Msg_Synth (Syn_Inst, Expr, "dot attribute not allowed");
return No_Valtyp;
+ when Iir_Kind_Psl_Endpoint_Declaration =>
+ if Hook_Endpoint /= null then
+ return Hook_Endpoint (Syn_Inst, Expr);
+ end if;
+ Error_Msg_Synth (Syn_Inst, Expr, "endpoint read not allowed");
+ return No_Valtyp;
when others =>
Error_Kind ("synth_expression_with_type", Expr);
end case;
diff --git a/src/synth/synth-vhdl_expr.ads b/src/synth/synth-vhdl_expr.ads
index 964c237f5..cdffd0f68 100644
--- a/src/synth/synth-vhdl_expr.ads
+++ b/src/synth/synth-vhdl_expr.ads
@@ -95,6 +95,7 @@ package Synth.Vhdl_Expr is
Hook_Last_Event_Attribute : Hook_Attribute_Acc;
Hook_Last_Active_Attribute : Hook_Attribute_Acc;
Hook_Dot_Attribute : Hook_Attribute_Acc;
+ Hook_Endpoint : Hook_Attribute_Acc;
-- Use base type of EXPR to synthesize EXPR. Useful when the type of
-- EXPR is defined by itself or a range.