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