From cbb39f9a164d1552ca4ee9906f64647372124216 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Tue, 3 Aug 2021 20:27:34 +0200 Subject: [PATCH] Added to_sl() and to_bool(). --- libraries/base/common/src/vhdl/common_pkg.vhd | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/libraries/base/common/src/vhdl/common_pkg.vhd b/libraries/base/common/src/vhdl/common_pkg.vhd index ba09970a6f..3931d10770 100644 --- a/libraries/base/common/src/vhdl/common_pkg.vhd +++ b/libraries/base/common/src/vhdl/common_pkg.vhd @@ -195,7 +195,11 @@ PACKAGE common_pkg IS FUNCTION slv(n: IN STD_LOGIC) RETURN STD_LOGIC_VECTOR; -- standard logic to 1 element standard logic vector FUNCTION sl( n: IN STD_LOGIC_VECTOR) RETURN STD_LOGIC; -- 1 element standard logic vector to standard logic - + + FUNCTION to_sl( n: IN BOOLEAN) RETURN STD_LOGIC; -- if TRUE then return '1' else '0' + FUNCTION to_bool(n: IN STD_LOGIC) RETURN BOOLEAN; -- if '1' or 'H' then return TRUE else FALSE + FUNCTION to_bool(n: IN INTEGER) RETURN BOOLEAN; -- if 0 then return FALSE else TRUE + FUNCTION to_natural_arr(n : t_integer_arr; to_zero : BOOLEAN) RETURN t_natural_arr; -- if to_zero=TRUE then negative numbers are forced to zero, otherwise they will give a compile range error FUNCTION to_natural_arr(n : t_nat_natural_arr) RETURN t_natural_arr; FUNCTION to_integer_arr(n : t_natural_arr) RETURN t_integer_arr; @@ -646,7 +650,28 @@ PACKAGE BODY common_pkg IS r := n(n'LOW); RETURN r; END; - + + + FUNCTION to_sl(n: IN BOOLEAN) RETURN STD_LOGIC IS + BEGIN + IF n = TRUE THEN + RETURN '1'; + ELSE + RETURN '0'; + END IF; + END; + + FUNCTION to_bool(n: IN STD_LOGIC) RETURN BOOLEAN IS + BEGIN + RETURN n = '1' OR n = 'H'; + END; + + FUNCTION to_bool(n: IN INTEGER) RETURN BOOLEAN IS + BEGIN + RETURN NOT (n = 0); + END; + + FUNCTION to_natural_arr(n : t_integer_arr; to_zero : BOOLEAN) RETURN t_natural_arr IS VARIABLE vN : t_integer_arr(n'LENGTH-1 DOWNTO 0); VARIABLE vR : t_natural_arr(n'LENGTH-1 DOWNTO 0); -- GitLab