diff options
Diffstat (limited to 'src/synth/synth-vhdl_expr.ads')
-rw-r--r-- | src/synth/synth-vhdl_expr.ads | 34 |
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; |