- moved fixed_array_t to fixed_util_pkg
git-svn-id: http://moon:8086/svn/vhdl/trunk@186 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -16,68 +16,13 @@ use work.fir_stage_pkg.all;
|
||||
-------------------------------------------------------------------------------
|
||||
package fir_parallel_pkg is
|
||||
|
||||
type ufixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
|
||||
type sfixed_array_t is array (natural range <>, integer range <>) of STD_LOGIC;
|
||||
|
||||
type fir_parallel_mode_t is (transposed, transposed_sym, systolic, systolic_sym);
|
||||
|
||||
function to_sfixed_array(x : real_array_t; proto : sfixed) return sfixed_array_t;
|
||||
function to_sfixed_array(x : real_array_t; nbits, nbits_int : integer) return sfixed_array_t;
|
||||
|
||||
-- Slicing functions for unconstrained array types
|
||||
function to_ufixed(src : ufixed_array_t; index : integer) return ufixed;
|
||||
function to_sfixed(src : sfixed_array_t; index : integer) return sfixed;
|
||||
|
||||
end; -- package fir_parallel_pkg;
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
package body fir_parallel_pkg is
|
||||
|
||||
function to_sfixed_array(x : real_array_t; proto : sfixed) return sfixed_array_t is
|
||||
variable res : sfixed_array_t(0 to x'length-1, proto'range);
|
||||
variable tt : sfixed(proto'range);
|
||||
begin
|
||||
for i in x'range loop
|
||||
tt := to_sfixed(x(i), proto);
|
||||
for j in proto'range loop
|
||||
res(i,j) := tt(j);
|
||||
end loop;
|
||||
end loop;
|
||||
return res;
|
||||
end to_sfixed_array;
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
function to_sfixed_array(x : real_array_t; nbits, nbits_int : integer) return sfixed_array_t is
|
||||
variable p : sfixed(shi(nbits, nbits_int) downto slo(nbits, nbits_int));
|
||||
begin
|
||||
return to_sfixed_array(x, p);
|
||||
end to_sfixed_array;
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- ufixed <= ufixed_array(i)
|
||||
function to_ufixed(src : ufixed_array_t; index : integer) return ufixed is
|
||||
variable dst : ufixed(src'range(2));
|
||||
begin
|
||||
for j in src'range(2) loop
|
||||
dst(j) := src(index, j);
|
||||
end loop;
|
||||
|
||||
return dst;
|
||||
|
||||
end to_ufixed;
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- sfixed <= sfixed_array(i)
|
||||
function to_sfixed(src : sfixed_array_t; index : integer) return sfixed is
|
||||
variable dst : sfixed(src'range(2));
|
||||
begin
|
||||
for j in src'range(2) loop
|
||||
dst(j) := src(index, j);
|
||||
end loop;
|
||||
|
||||
return dst;
|
||||
|
||||
end to_sfixed;
|
||||
|
||||
end; -- package fir_parallel_pkg;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user