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

Subversion Repositories cryptosorter

[/] [cryptosorter/] [trunk/] [lib/] [bsv/] [PLBMaster/] [src/] [PLBMasterWires.bsv] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 kfleming
/*
2
Copyright (c) 2007 MIT
3
 
4
Permission is hereby granted, free of charge, to any person
5
obtaining a copy of this software and associated documentation
6
files (the "Software"), to deal in the Software without
7
restriction, including without limitation the rights to use,
8
copy, modify, merge, publish, distribute, sublicense, and/or sell
9
copies of the Software, and to permit persons to whom the
10
Software is furnished to do so, subject to the following
11
conditions:
12
 
13
The above copyright notice and this permission notice shall be
14
included in all copies or substantial portions of the Software.
15
 
16
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
OTHER DEALINGS IN THE SOFTWARE.
24
 
25
Author: Kermin Fleming
26
*/
27
 
28
// Global Imports
29
import GetPut::*;
30
 
31
// We only use the default params if the compile flag is turned on.
32
`ifdef PLB_DEFAULTS
33
import PLBMasterDefaultParameters::*;
34
`endif
35
 
36
`define PLB_CLK_NAME        "mClk"
37
`define PLB_RST_NAME        "mRst"
38
`define PLB_COMPRESS_NAME   "mCompress"
39
`define PLB_ABUS_NAME       "mABus"
40
`define PLB_BE_NAME         "mBE"
41
`define PLB_RNW_NAME        "mRNW"
42
`define PLB_ABORT_NAME      "mAbort"
43
`define PLB_BUSLOCK_NAME    "mBusLock"
44
`define PLB_PRESS_NAME      "mpress"
45
`define PLB_GUARDED_NAME    "mGuarded"
46
`define PLB_LOCKERR_NAME    "mLockErr"
47
`define PLB_MSIZE_NAME      "mMSize"
48
`define PLB_ORDERED_NAME    "mOrdered"
49
`define PLB_PRIORITY_NAME   "mPriority"
50
`define PLB_RDBURST_NAME    "mRdBurst"
51
`define PLB_REQUEST_NAME    "mRequest"
52
`define PLB_SIZE_NAME       "mSize"
53
`define PLB_TYPE_NAME       "mType"
54
`define PLB_WRBURST_NAME    "mWrBurst"
55
`define PLB_WRDBUS_NAME     "mWrDBus"
56
`define PLB_MADDRACK_NAME  "mAddrAck"
57
`define PLB_MBUSY_NAME     "mBusy"
58
`define PLB_MERR_NAME      "mErr"
59
`define PLB_MRDBTERM_NAME  "mRdBTerm"
60
`define PLB_MRDDACK_NAME   "mRdDAck"
61
`define PLB_MRDDBUS_NAME   "mRdDBus"
62
`define PLB_MRDWDADDR_NAME  "mRdWdAddr"
63
`define PLB_MREARBITRATE_NAME  "mRearbitrate"
64
`define PLB_MWRBTERM_NAME  "mWrBTerm"
65
`define PLB_MWRDACK_NAME   "mWrDAck"
66
`define PLB_MSSIZE_NAME    "mSSize"
67
`define PLB_SMERR_NAME     "sMErr"
68
`define PLB_SMBUSY_NAME    "sMBusy"
69
 
70
 
71
interface PLBMasterWires;
72
 
73
  (* always_ready, prefix="", result=`PLB_ABUS_NAME *)
74
  method Bit#(PLBAddrSize) mABus();     // Address Bus
75
 
76
  (* always_ready, prefix="", result=`PLB_BE_NAME *)
77
  method Bit#(8)           mBE();       // Byte Enable
78
 
79
  (* always_ready, prefix="", result=`PLB_RNW_NAME *)
80
  method Bit#(1)           mRNW();      // Read Not Write
81
 
82
  (* always_ready, prefix="", result=`PLB_ABORT_NAME *)
83
  method Bit#(1)           mAbort();    // Abort
84
 
85
  (* always_ready, prefix="", result=`PLB_BUSLOCK_NAME *)
86
  method Bit#(1)           mBusLock();  // Bus lock
87
 
88
  (* always_ready, prefix="", result=`PLB_COMPRESS_NAME *)
89
  method Bit#(1)           mCompress(); // compressed transfer
90
 
91
  (* always_ready, prefix="", result=`PLB_GUARDED_NAME *)
92
  method Bit#(1)           mGuarded();  // guarded transfer
93
 
94
  (* always_ready, prefix="", result=`PLB_LOCKERR_NAME *)
95
  method Bit#(1)           mLockErr();  // lock error
96
 
97
  (* always_ready, prefix="", result=`PLB_MSIZE_NAME *)
98
  method Bit#(2)           mMSize();    // data bus width?
99
 
100
  (* always_ready, prefix="", result=`PLB_ORDERED_NAME *)
101
  method Bit#(1)           mOrdered();  // synchronize transfer
102
 
103
  (* always_ready, prefix="", result=`PLB_PRIORITY_NAME *)
104
  method Bit#(2)           mPriority(); // priority indicator
105
 
106
  (* always_ready, prefix="", result=`PLB_RDBURST_NAME *)
107
  method Bit#(1)           mRdBurst();  // read burst
108
 
109
  (* always_ready, prefix="", result=`PLB_REQUEST_NAME *)
110
  method Bit#(1)           mRequest();  // bus request
111
 
112
  (* always_ready, prefix="", result=`PLB_SIZE_NAME *)
113
  method Bit#(4)           mSize();     // transfer size
114
 
115
  (* always_ready, prefix="", result=`PLB_TYPE_NAME *)
116
  method Bit#(3)           mType();     // transfer type (dma)
117
 
118
  (* always_ready, prefix="", result=`PLB_WRBURST_NAME *)
119
  method Bit#(1)           mWrBurst();  // write burst
120
 
121
  (* always_ready, prefix="", result=`PLB_WRDBUS_NAME *)
122
  method Bit#(64)          mWrDBus();   // write data bus
123
 
124
  (* always_ready, prefix="", always_enabled *)
125
  method Action plbIN(
126
    (* port=`PLB_RST_NAME *)            Bit#(1) mRst,           // PLB reset
127
    (* port=`PLB_MADDRACK_NAME *)       Bit#(1) mAddrAck,       // Addr Ack
128
    (* port=`PLB_MBUSY_NAME *)          Bit#(1) mBusy,          // Master Busy
129
    (* port=`PLB_MERR_NAME *)           Bit#(1) mErr,           // Slave Error
130
    (* port=`PLB_MRDBTERM_NAME *)       Bit#(1) mRdBTerm,       // Read burst terminate signal
131
    (* port=`PLB_MRDDACK_NAME *)        Bit#(1) mRdDAck,        // Read data ack
132
    (* port=`PLB_MRDDBUS_NAME *)        Bit#(64)mRdDBus,        // Read data bus
133
    (* port=`PLB_MRDWDADDR_NAME *)      Bit#(3) mRdWdAddr,      // Read word address
134
    (* port=`PLB_MREARBITRATE_NAME *)   Bit#(1) mRearbitrate,   // Rearbitrate
135
    (* port=`PLB_MWRBTERM_NAME *)       Bit#(1) mWrBTerm,       // Write burst terminate
136
    (* port=`PLB_MWRDACK_NAME *)        Bit#(1) mWrDAck,        // Write data ack
137
    (* port=`PLB_MSSIZE_NAME *)         Bit#(1) mSSize,         // Slave bus size
138
    (* port=`PLB_SMERR_NAME *)          Bit#(1) sMErr,          // Slave error
139
    (* port=`PLB_SMBUSY_NAME *)         Bit#(1) sMBusy);        // Slave busy
140
 
141
 
142
endinterface

powered by: WebSVN 2.1.0

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