- changed frequencies into MHz units (real data type)

Committed on the Free edition of March Hare Software CVSNT Server.
Upgrade to CVS Suite for more features and support:
http://march-hare.com/cvsnt/


git-svn-id: http://moon:8086/svn/vhdl/trunk@734 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2010-02-09 07:50:27 +00:00
parent 385aa5e008
commit 0c50e933f8
19 changed files with 161 additions and 144 deletions
+19 -19
View File
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------
-- $Header: /tmp/cvsroot/VHDL/lib/misc/utils_pkg.vhd,v 1.3 2009-11-03 20:38:30 Jens Exp $
-- $Header: /tmp/cvsroot/VHDL/lib/misc/utils_pkg.vhd,v 1.4 2010-02-09 07:46:19 Jens Exp $
-----------------------------------------------------------------------
library IEEE;
@@ -18,9 +18,9 @@ package utils_pkg is
function NextExpBaseTwo(x : natural) return natural;
function GCD(a, b : natural) return natural;
function LCM(a, b : natural) return natural;
function UTILS_PERIOD_NS(f_in_hz : natural) return real;
function UTILS_FREQ_M(f_in_hz, f_out_hz : natural) return natural;
function UTILS_FREQ_D(f_in_hz, f_out_hz : natural) return natural;
function UTILS_PERIOD_NS(f_in_MHz : real) return real;
function UTILS_FREQ_M(f_in_MHz, f_out_MHz : real) return natural;
function UTILS_FREQ_D(f_in_MHz, f_out_MHz : real) return natural;
end utils_pkg;
@@ -74,21 +74,21 @@ package body utils_pkg is
end LCM;
function UTILS_PERIOD_NS(f_in_hz : natural) return real is
function UTILS_PERIOD_NS(f_in_MHz : real) return real is
begin
return 1.0E9/real(f_in_hz);
return 1.0E3/f_in_MHz;
end UTILS_PERIOD_NS;
function UTILS_FREQ_M(f_in_hz, f_out_hz : natural) return natural is
variable f_in_mhz : natural;
variable f_out_mhz : natural;
function UTILS_FREQ_M(f_in_MHz, f_out_MHz : real) return natural is
variable f_in_hz : natural;
variable f_out_hz : natural;
variable m : natural;
begin
f_in_mhz := f_in_hz/1E6;
f_out_mhz := f_out_hz/1E6;
m := f_out_mhz/GCD(f_in_mhz, f_out_mhz);
f_in_hz := natural(f_in_MHz*1.0E6);
f_out_hz := natural(f_out_MHz*1.0E6);
m := f_out_hz/GCD(f_in_hz, f_out_hz);
if m = 1 then
m := 2;
@@ -98,16 +98,16 @@ package body utils_pkg is
end UTILS_FREQ_M;
function UTILS_FREQ_D(f_in_hz, f_out_hz : natural) return natural is
variable f_in_mhz : natural;
variable f_out_mhz : natural;
function UTILS_FREQ_D(f_in_MHz, f_out_MHz : real) return natural is
variable f_in_hz : natural;
variable f_out_hz : natural;
variable m : natural;
variable d : natural;
begin
m := UTILS_FREQ_M(f_in_hz, f_out_hz);
f_in_mhz := f_in_hz/1E6;
f_out_mhz := f_out_hz/1E6;
d := m*f_in_mhz/f_out_mhz;
m := UTILS_FREQ_M(f_in_MHz, f_out_MHz);
f_in_hz := natural(f_in_MHz*1.0E6);
f_out_hz := natural(f_out_MHz*1.0E6);
d := m*f_in_hz/f_out_hz;
return d;