aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue1346/wb_pkg.vhd
blob: 7779485b0b9cd8f4d9a3bde92793085ea9bcc52d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    use ieee.math_real.all;

package wb_pkg is
  
  constant wb_no_c : std_ulogic := '0';
    
  type array_t is array (integer range <> ) of std_ulogic_vector;
  
  type dmn_t is record
    clk : std_ulogic;
    rst : std_ulogic;
  end record;
  
  --! WISHBONE master to slave signals type
  type wb_M2S_t is record
    tgc : std_ulogic_vector            ;  --! cycle tag
    loc : std_ulogic                   ;  --! lock 
    cyc : std_ulogic                   ;  --! cycle
    stb : std_ulogic                   ;  --! strobe
    we  : std_ulogic                   ;  --! write transaction
    tga : std_ulogic_vector            ;  --! Address tag 
    adr : std_ulogic_vector            ;  --! address   
    bte : std_ulogic_vector(1 downto 0);  --! burst type extension  
    sel : std_ulogic_vector            ;  --! Byte selection
    tgd : std_ulogic_vector            ;  --! data tag master to slave 
    dat : std_ulogic_vector            ;  --! data master to slave     
  end record;
  
  --! WISHBONE slave to master signals type  
  type wb_S2M_t is record
    stl : std_ulogic       ;  --! stall pipeline
    tgd : std_ulogic_vector;  --! data tag slave to master
    dat : std_ulogic_vector;  --! data slave to master
    ack : std_ulogic       ;  --! acknowledgement slave to master 
    err : std_ulogic       ;  --! error slave to master
    rty : std_ulogic       ;  --! retry slave to master
  end record; 
   
  pure function get_uvect( len : positive ; bit_i : in std_ulogic := '0' )
  return std_ulogic_vector;
   
end wb_pkg;
--#############################################################################
--#############################################################################
package body wb_pkg is

  pure function get_uvect( len : positive ; bit_i  : in std_ulogic := '0' )
  return std_ulogic_vector
  is
    variable vect_v : std_ulogic_vector( len - 1  downto 0 );
  begin
    for i in 0 to len - 1 loop
      vect_v( i ) := bit_i ;
    end loop;
    return vect_v;
  end function;

end package body wb_pkg;
--#############################################################################
--#############################################################################
--#############################################################################
--#############################################################################
--#############################################################################