From e8ddaf8d98fc9a96f9caf7038030cffdf2bce169 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 2 Jan 2009 15:28:01 +0000 Subject: [PATCH] - added real veriants of NextPower... git-svn-id: http://moon:8086/svn/vhdl/trunk@180 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/misc/utils_pkg.vhd | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/misc/utils_pkg.vhd b/lib/misc/utils_pkg.vhd index 2fcaec6..789a1b0 100644 --- a/lib/misc/utils_pkg.vhd +++ b/lib/misc/utils_pkg.vhd @@ -1,5 +1,5 @@ ----------------------------------------------------------------------- --- $Header: /tmp/cvsroot/VHDL/lib/misc/utils_pkg.vhd,v 1.1 2008-08-23 08:20:29 Jens Exp $ +-- $Header: /tmp/cvsroot/VHDL/lib/misc/utils_pkg.vhd,v 1.2 2009-01-02 15:28:01 Jens Exp $ ----------------------------------------------------------------------- library IEEE; @@ -12,6 +12,8 @@ package utils_pkg is -- Constants -- Functions + function NextPowerOfTwo(x : real) return real; + function NextExpBaseTwo(x : real) return real; function NextPowerOfTwo(x : natural) return natural; function NextExpBaseTwo(x : natural) return natural; function GCD(a, b : natural) return natural; @@ -22,9 +24,20 @@ end utils_pkg; package body utils_pkg is + function NextExpBaseTwo(x : real) return real is + begin + return ceil(log2(x)); + end NextExpBaseTwo; + + function NextPowerOfTwo(x : real) return real is + begin + + return 2.0**NextExpBaseTwo(x); + end NextPowerOfTwo; + function NextExpBaseTwo(x : natural) return natural is begin - return natural(ceil(log2(real(x)))); + return natural(NextExpBaseTwo(real(x))); end NextExpBaseTwo; function NextPowerOfTwo(x : natural) return natural is