From 09dd6f8c5a942640bc7ed1ba40a54ad1cb008cf9 Mon Sep 17 00:00:00 2001 From: Eric Kooistra <kooistra@astron.nl> Date: Mon, 13 Jan 2020 13:35:44 +0100 Subject: [PATCH] Added largest() and smallest() for type t-nat_natural_arr. --- libraries/base/common/src/vhdl/common_pkg.vhd | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libraries/base/common/src/vhdl/common_pkg.vhd b/libraries/base/common/src/vhdl/common_pkg.vhd index 32995bba78..4023ea9136 100644 --- a/libraries/base/common/src/vhdl/common_pkg.vhd +++ b/libraries/base/common/src/vhdl/common_pkg.vhd @@ -212,9 +212,11 @@ PACKAGE common_pkg IS FUNCTION smallest(n, m : INTEGER) RETURN INTEGER; FUNCTION smallest(n, m, l : INTEGER) RETURN INTEGER; FUNCTION smallest(n : t_natural_arr) RETURN NATURAL; + FUNCTION smallest(n : t_nat_natural_arr) RETURN NATURAL; FUNCTION largest(n, m : INTEGER) RETURN INTEGER; FUNCTION largest(n : t_natural_arr) RETURN NATURAL; + FUNCTION largest(n : t_nat_natural_arr) RETURN NATURAL; FUNCTION func_sum( n : t_natural_arr) RETURN NATURAL; -- sum of all elements in array FUNCTION func_sum( n : t_nat_natural_arr) RETURN NATURAL; @@ -793,6 +795,17 @@ PACKAGE BODY common_pkg IS RETURN m; END; + FUNCTION smallest(n : t_nat_natural_arr) RETURN NATURAL IS + VARIABLE m : NATURAL := 0; + BEGIN + FOR I IN n'RANGE LOOP + IF n(I) < m THEN + m := n(I); + END IF; + END LOOP; + RETURN m; + END; + FUNCTION largest(n, m : INTEGER) RETURN INTEGER IS BEGIN IF n > m THEN @@ -813,6 +826,17 @@ PACKAGE BODY common_pkg IS RETURN m; END; + FUNCTION largest(n : t_nat_natural_arr) RETURN NATURAL IS + VARIABLE m : NATURAL := 0; + BEGIN + FOR I IN n'RANGE LOOP + IF n(I) > m THEN + m := n(I); + END IF; + END LOOP; + RETURN m; + END; + FUNCTION func_sum(n : t_natural_arr) RETURN NATURAL IS VARIABLE vS : NATURAL; BEGIN -- GitLab