diff options
Diffstat (limited to 'src/synth/synth-expr.ads')
-rw-r--r-- | src/synth/synth-expr.ads | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/synth/synth-expr.ads b/src/synth/synth-expr.ads index 5d8d7f7d5..8fdf5a89c 100644 --- a/src/synth/synth-expr.ads +++ b/src/synth/synth-expr.ads @@ -18,6 +18,8 @@ -- Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, -- MA 02110-1301, USA. +with Ada.Unchecked_Deallocation; + with Types; use Types; with Netlists; use Netlists; @@ -110,4 +112,23 @@ package Synth.Expr is Voff : out Net; Off : out Uns32; W : out Width); + + -- Conversion to logic vector. + + type Logic_32 is record + Val : Uns32; -- AKA aval + Zx : Uns32; -- AKA bval + end record; + + 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; + + procedure Free_Logvec_Array is new Ada.Unchecked_Deallocation + (Logvec_Array, Logvec_Array_Acc); + + procedure Value2logvec (Val : Value_Acc; + Vec : in out Logvec_Array; + Off : in out Uns32; + Has_Zx : in out Boolean); end Synth.Expr; |