OpenCores
URL https://opencores.org/ocsvn/layer2/layer2/trunk

Subversion Repositories layer2

[/] [layer2/] [trunk/] [vhdl/] [intercon/] [rtl/] [iwb.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 idiolatrie
--------------------------------------------------------------------------------
2
-- Wishbone Interface                                                         --
3
--------------------------------------------------------------------------------
4
-- The WB interface specification types and some convinience functions.       --
5
-- This definition lacks the CYC and the tag signals.                         --
6
--                                                                            --
7
--------------------------------------------------------------------------------
8
-- Copyright (C)2011  Mathias Hörtnagl <mathias.hoertnagl@gmail.comt>         --
9
--                                                                            --
10
-- This program is free software: you can redistribute it and/or modify       --
11
-- it under the terms of the GNU General Public License as published by       --
12
-- the Free Software Foundation, either version 3 of the License, or          --
13
-- (at your option) any later version.                                        --
14
--                                                                            --
15
-- This program is distributed in the hope that it will be useful,            --
16
-- but WITHOUT ANY WARRANTY; without even the implied warranty of             --
17
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              --
18
-- GNU General Public License for more details.                               --
19
--                                                                            --
20
-- You should have received a copy of the GNU General Public License          --
21
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.      --
22
--------------------------------------------------------------------------------
23
library ieee;
24
use ieee.std_logic_1164.all;
25
use ieee.numeric_std.all;
26
 
27
package iwb is
28
 
29
   -- WB MASTER
30
   type master_out_t is record
31
      dat : std_logic_vector(31 downto 0);   -- DAT_O
32
      sel : std_logic_vector(3 downto 0);    -- SEL_O
33
      adr : std_logic_vector(31 downto 0);   -- ADR_O
34
      stb : std_logic;                       -- STB_O
35
      we  : std_logic;                       -- WE_O
36
   end record;
37
 
38
   type master_in_t is record
39
      clk : std_logic;                       -- CLK_I
40
      rst : std_logic;                       -- RST_I
41
      dat : std_logic_vector(31 downto 0);   -- DAT_I
42
      ack : std_logic;                       -- ACK_I
43
   end record;
44
 
45
   -- WB SLAVE
46
   type slave_out_t is record
47
      dat : std_logic_vector(31 downto 0);   -- DAT_O
48
      ack : std_logic;                       -- ACK_O
49
   end record;
50
 
51
   type slave_in_t is record
52
      clk : std_logic;                       -- CLK_I
53
      rst : std_logic;                       -- RST_I
54
      dat : std_logic_vector(31 downto 0);   -- DAT_I
55
      sel : std_logic_vector(3 downto 0);    -- SEL_I
56
      adr : std_logic_vector(31 downto 0);   -- ADR_I
57
      stb : std_logic;                       -- STB_I
58
      we  : std_logic;                       -- WE_I
59
   end record;
60
 
61
   -- Indicates a Wb read or Wb write respectivly.
62
   function wb_read(si : slave_in_t) return boolean;
63
   function wb_write(si : slave_in_t) return boolean;
64
end iwb;
65
 
66
package body iwb is
67
 
68
   function wb_read(si : slave_in_t) return boolean is
69
   begin
70
      return (si.stb = '1') and (si.we = '0');
71
   end wb_read;
72
 
73
   function wb_write(si : slave_in_t) return boolean is
74
   begin
75
      return (si.stb = '1') and (si.we = '1');
76
   end wb_write;
77
 
78
end iwb;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.