MatchLib
axi4_configs.h
1 /*
2  * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License")
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef __AXI_CONFIG_H__
17 #define __AXI_CONFIG_H__
18 
19 namespace axi {
20 
51 namespace cfg {
52 
56 struct standard {
57  enum {
58  dataWidth = 64,
59  useVariableBeatSize = 0,
60  useMisalignedAddresses = 0,
61  useLast = 1,
62  useWriteStrobes = 1,
63  useBurst = 1, useFixedBurst = 0, useWrapBurst = 0, maxBurstSize = 256,
64  useQoS = 0, useLock = 0, useProt = 0, useCache = 0, useRegion = 0,
65  aUserWidth = 0, wUserWidth = 0, bUserWidth = 0, rUserWidth = 0,
66  addrWidth = 32,
67  idWidth = 4,
68  useWriteResponses = 1,
69  };
70 };
74 struct no_wresp {
75  enum {
76  dataWidth = 64,
77  useVariableBeatSize = 0,
78  useMisalignedAddresses = 0,
79  useLast = 1,
80  useWriteStrobes = 1,
81  useBurst = 1, useFixedBurst = 0, useWrapBurst = 0, maxBurstSize = 256,
82  useQoS = 0, useLock = 0, useProt = 0, useCache = 0, useRegion = 0,
83  aUserWidth = 0, wUserWidth = 0, bUserWidth = 0, rUserWidth = 0,
84  addrWidth = 32,
85  idWidth = 4,
86  useWriteResponses = 0,
87  };
88 };
92 struct no_wstrb {
93  enum {
94  dataWidth = 64,
95  useVariableBeatSize = 0,
96  useMisalignedAddresses = 0,
97  useLast = 1,
98  useWriteStrobes = 0,
99  useBurst = 1, useFixedBurst = 0, useWrapBurst = 0, maxBurstSize = 256,
100  useQoS = 0, useLock = 0, useProt = 0, useCache = 0, useRegion = 0,
101  aUserWidth = 0, wUserWidth = 0, bUserWidth = 0, rUserWidth = 0,
102  addrWidth = 32,
103  idWidth = 4,
104  useWriteResponses = 1,
105  };
106 };
110 struct lite {
111  enum {
112  dataWidth = 32,
113  useVariableBeatSize = 0,
114  useMisalignedAddresses = 0,
115  useLast = 0,
116  useWriteStrobes = 1,
117  useBurst = 0, useFixedBurst = 0, useWrapBurst = 0, maxBurstSize = 1,
118  useQoS = 0, useLock = 0, useProt = 0, useCache = 0, useRegion = 0,
119  aUserWidth = 0, wUserWidth = 0, bUserWidth = 0, rUserWidth = 0,
120  addrWidth = 32,
121  idWidth = 0,
122  useWriteResponses = 1,
123  };
124 };
128 struct lite_nowstrb {
129  enum {
130  dataWidth = 32,
131  useVariableBeatSize = 0,
132  useMisalignedAddresses = 0,
133  useLast = 0,
134  useWriteStrobes = 0,
135  useBurst = 0, useFixedBurst = 0, useWrapBurst = 0, maxBurstSize = 1,
136  useQoS = 0, useLock = 0, useProt = 0, useCache = 0, useRegion = 0,
137  aUserWidth = 0, wUserWidth = 0, bUserWidth = 0, rUserWidth = 0,
138  addrWidth = 32,
139  idWidth = 0,
140  useWriteResponses = 1,
141  };
142 };
143 }; // namespace cfg
144 }; // namespace axi
145 
146 #endif
An AXI configuration with no write strobes.
Definition: axi4_configs.h:92
An AXI configuration corresponding to the AXI4-Lite standard.
Definition: axi4_configs.h:110
A standard AXI configuration.
Definition: axi4_configs.h:56
An AXI configuration with no write responses.
Definition: axi4_configs.h:74
A configuration similar to AXI4-Lite, but without write strobes.
Definition: axi4_configs.h:128
The axi namespace contains classes and definitions related to the AXI standard.
Definition: axi4.h:35