Package: vectors
- File: vectors.vhdl
Types
Name | Type | Description |
---|---|---|
T_SLVV_2 | array(natural range <>) of T_SLV_2 | STD_LOGIC_VECTOR_VECTORs type T_SLVV is array(NATURAL range <>) of STD_LOGIC_VECTOR; -- VHDL 2008 syntax - not yet supported by Xilinx |
T_SLVV_3 | array(natural range <>) of T_SLV_3 | |
T_SLVV_4 | array(natural range <>) of T_SLV_4 | |
T_SLVV_8 | array(natural range <>) of T_SLV_8 | |
T_SLVV_12 | array(natural range <>) of T_SLV_12 | |
T_SLVV_16 | array(natural range <>) of T_SLV_16 | |
T_SLVV_24 | array(natural range <>) of T_SLV_24 | |
T_SLVV_32 | array(natural range <>) of T_SLV_32 | |
T_SLVV_48 | array(natural range <>) of T_SLV_48 | |
T_SLVV_64 | array(natural range <>) of T_SLV_64 | |
T_SLVV_128 | array(natural range <>) of T_SLV_128 | |
T_SLVV_256 | array(natural range <>) of T_SLV_256 | |
T_SLVV_512 | array(natural range <>) of T_SLV_512 | |
T_SLM | array(natural range <>, natural range <>) of std_logic |
STD_LOGIC_MATRIXs |
Functions
- low (lenvec : T_POSVEC;
index : natural) return natural
Description
ATTENTION:
you MUST initialize your matrix signal with 'Z' to get correct simulation results (iSIM, vSIM, ghdl/gtkwave)
Example: signal myMatrix : T_SLM(3 downto 0, 7 downto 0) := (others => (others => 'Z'));Xilinx iSIM bug: DON'T use myMatrix'range(n) for n >= 2
myMatrix'range(2) returns always myMatrix'range(1); see work-around notes belowUSAGE NOTES:
dimension 1 => rows - e.g. Words
dimension 2 => columns - e.g. Bits/Bytes in a wordWORKAROUND: for Xilinx ISE/iSim
Version: 14.2Issue: myMatrix'range(n) for n >= 2 returns always myMatrix'range(1)
Function declarations
slicing boundary calulations
- high (lenvec : T_POSVEC;
index : natural) return natural
- assign_row (signal slm : out T_SLM;
slv : std_logic_vector;
constant RowIndex : natural) return ()
Description
assign vector to complete row
- assign_row (signal slm : out T_SLM;
slv : std_logic_vector;
constant RowIndex : natural;
Position : natural) return ()
Description
assign short vector to row starting at position
- assign_row (signal slm : out T_SLM;
slv : std_logic_vector;
constant RowIndex : natural;
High : natural;
Low : natural) return ()
Description
assign short vector to row in range high:low
- assign_col (signal slm : out T_SLM;
slv : std_logic_vector;
constant ColIndex : natural) return ()
Description
assign vector to complete column
- slm_slice (slm : T_SLM;
RowIndex : natural;
ColIndex : natural;
Height : natural;
Width : natural) return T_SLM
Description
get submatrix in boundingbox RowIndex,ColIndex,Height,Width
- slm_slice_rows (slm : T_SLM;
High : natural;
Low : natural) return T_SLM
Description
get submatrix / all rows in RowIndex range high:low
- slm_slice_cols (slm : T_SLM;
High : natural;
Low : natural) return T_SLM
Description
get submatrix / all columns in ColIndex range high:low
- slm_merge_rows (slm1 : T_SLM;
slm2 : T_SLM) return T_SLM
Description
Matrix concatenation: slm_merge_*
- slm_merge_cols (slm1 : T_SLM;
slm2 : T_SLM) return T_SLM
- get_col (slm : T_SLM;
ColIndex : natural) return std_logic_vector
Description
get a matrix column
- get_row (slm : T_SLM;
RowIndex : natural) return std_logic_vector
Description
get a matrix row
- get_row (slm : T_SLM;
RowIndex : natural;
Length : positive) return std_logic_vector
Description
get a matrix row of defined length [length - 1 downto 0]
- get_row (slm : T_SLM;
RowIndex : natural;
High : natural;
Low : natural) return std_logic_vector
Description
get a sub vector of a matrix row at high:low
- to_slv (slvv : T_SLVV_2) return std_logic_vector
Description
convert vector-vector to flatten vector
- to_slv (slvv : T_SLVV_4) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_8) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_12) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_16) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_24) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_32) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_64) return std_logic_vector
Description
…
- to_slv (slvv : T_SLVV_128) return std_logic_vector
Description
…
- to_slv (slm : T_SLM) return std_logic_vector
Description
convert matrix to flatten vector
- to_slvv_4 (slv : std_logic_vector) return T_SLVV_4
- to_slvv_8 (slv : std_logic_vector) return T_SLVV_8
- to_slvv_12 (slv : std_logic_vector) return T_SLVV_12
- to_slvv_16 (slv : std_logic_vector) return T_SLVV_16
- to_slvv_32 (slv : std_logic_vector) return T_SLVV_32
- to_slvv_64 (slv : std_logic_vector) return T_SLVV_64
- to_slvv_128 (slv : std_logic_vector) return T_SLVV_128
- to_slvv_256 (slv : std_logic_vector) return T_SLVV_256
- to_slvv_512 (slv : std_logic_vector) return T_SLVV_512
- to_slvv_4 (slm : T_SLM) return T_SLVV_4
- to_slvv_8 (slm : T_SLM) return T_SLVV_8
- to_slvv_12 (slm : T_SLM) return T_SLVV_12
- to_slvv_16 (slm : T_SLM) return T_SLVV_16
- to_slvv_32 (slm : T_SLM) return T_SLVV_32
- to_slvv_64 (slm : T_SLM) return T_SLVV_64
- to_slvv_128 (slm : T_SLM) return T_SLVV_128
- to_slvv_256 (slm : T_SLM) return T_SLVV_256
- to_slvv_512 (slm : T_SLM) return T_SLVV_512
- to_slm (slv : std_logic_vector;
ROWS : positive;
COLS : positive) return T_SLM
Description
create matrix from vector
- to_slm (slvv : T_SLVV_4) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_8) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_12) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_16) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_32) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_48) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_64) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_128) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_256) return T_SLM
Description
create matrix from vector-vector
- to_slm (slvv : T_SLVV_512) return T_SLM
Description
create matrix from vector-vector
- dir (slvv : T_SLVV_8) return T_SLVV_8
Description
Change vector direction
- rev (slvv : T_SLVV_4) return T_SLVV_4
Description
Reverse vector elements
- rev (slvv : T_SLVV_8) return T_SLVV_8
- rev (slvv : T_SLVV_12) return T_SLVV_12
- rev (slvv : T_SLVV_16) return T_SLVV_16
- rev (slvv : T_SLVV_32) return T_SLVV_32
- rev (slvv : T_SLVV_64) return T_SLVV_64
- rev (slvv : T_SLVV_128) return T_SLVV_128
- rev (slvv : T_SLVV_256) return T_SLVV_256
- rev (slvv : T_SLVV_512) return T_SLVV_512
- resize (slm : T_SLM;
size : positive) return T_SLM
Description
TODO:
- to_string (slvv : T_SLVV_8;
sep : character := ':') return string
Description
to_string
- to_string (slm : T_SLM;
groups : positive := 4;
format : character := 'b') return string