aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_expr.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-vhdl_expr.ads')
-rw-r--r--src/synth/synth-vhdl_expr.ads34
1 files changed, 11 insertions, 23 deletions
diff --git a/src/synth/synth-vhdl_expr.ads b/src/synth/synth-vhdl_expr.ads
index c6726732e..7081aef95 100644
--- a/src/synth/synth-vhdl_expr.ads
+++ b/src/synth/synth-vhdl_expr.ads
@@ -23,13 +23,14 @@ with Types; use Types;
with PSL.Types;
with Vhdl.Nodes; use Vhdl.Nodes;
+with Elab.Vhdl_Context; use Elab.Vhdl_Context;
+with Elab.Vhdl_Objtypes; use Elab.Vhdl_Objtypes;
+with Elab.Vhdl_Values; use Elab.Vhdl_Values;
+
with Netlists; use Netlists;
with Netlists.Builders; use Netlists.Builders;
with Synth.Source;
-with Synth.Objtypes; use Synth.Objtypes;
-with Synth.Values; use Synth.Values;
-with Synth.Vhdl_Context; use Synth.Vhdl_Context;
package Synth.Vhdl_Expr is
-- Perform a subtype conversion. Check constraints.
@@ -40,6 +41,13 @@ package Synth.Vhdl_Expr is
Loc : Source.Syn_Src)
return Valtyp;
+ function Synth_Subtype_Conversion (Syn_Inst : Synth_Instance_Acc;
+ Vt : Valtyp;
+ Dtype : Type_Acc;
+ Bounds : Boolean;
+ Loc : Source.Syn_Src)
+ return Valtyp;
+
-- For a static value V, return the value.
function Get_Static_Discrete (V : Valtyp) return Int64;
@@ -93,24 +101,10 @@ package Synth.Vhdl_Expr is
function Synth_PSL_Expression
(Syn_Inst : Synth_Instance_Acc; Expr : PSL.Types.PSL_Node) return Net;
- function Synth_Bounds_From_Range (Syn_Inst : Synth_Instance_Acc;
- Atype : Node) return Bound_Type;
-
function Synth_Array_Bounds (Syn_Inst : Synth_Instance_Acc;
Atype : Node;
Dim : Dim_Type) return Bound_Type;
- function Build_Discrete_Range_Type
- (L : Int64; R : Int64; Dir : Direction_Type) return Discrete_Range_Type;
- function Synth_Discrete_Range_Expression
- (Syn_Inst : Synth_Instance_Acc; Rng : Node) return Discrete_Range_Type;
- function Synth_Float_Range_Expression
- (Syn_Inst : Synth_Instance_Acc; Rng : Node) return Float_Range_Type;
-
- procedure Synth_Discrete_Range (Syn_Inst : Synth_Instance_Acc;
- Bound : Node;
- Rng : out Discrete_Range_Type);
-
procedure Synth_Slice_Suffix (Syn_Inst : Synth_Instance_Acc;
Name : Node;
Pfx_Bnd : Bound_Type;
@@ -127,13 +121,7 @@ package Synth.Vhdl_Expr is
Voff : out Net;
Off : out Value_Offsets);
- -- Return the type of EXPR (an object) without evaluating it (except when
- -- needed, like bounds of a slice).
- function Synth_Type_Of_Object (Syn_Inst : Synth_Instance_Acc; Expr : Node)
- return Type_Acc;
-
-- Conversion to logic vector.
-
type Digit_Index is new Natural;
type Logvec_Array is array (Digit_Index range <>) of Logic_32;
type Logvec_Array_Acc is access Logvec_Array;