Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / dmu / rtl / dmu.h
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: dmu.h
5* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
6* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
7*
8* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
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; version 2 of the License.
13*
14* This program is distributed in the hope that it will be useful,
15* but WITHOUT ANY WARRANTY; without even the implied warranty of
16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17* GNU General Public License for more details.
18*
19* You should have received a copy of the GNU General Public License
20* along with this program; if not, write to the Free Software
21* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*
23* For the avoidance of doubt, and except that if any non-GPL license
24* choice is available it will apply instead, Sun elects to use only
25* the General Public License version 2 (GPLv2) at this time for any
26* software where a choice of GPL license versions is made
27* available with the language indicating that GPLv2 or any later version
28* may be used, or where a choice of which version of the GPL is applied is
29* otherwise unspecified.
30*
31* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
32* CA 95054 USA or visit www.sun.com if you need additional information or
33* have any questions.
34*
35*
36* ========== Copyright Header End ============================================
37*/
38`define FIRE_DLC_ICR_SBDTAG_LSB 0 // 0 start of SBDTAG field
39`define FIRE_DLC_ICR_SBDTAG_WDTH 5
40`define FIRE_DLC_ICR_SBDTAG_MSB `FIRE_DLC_ICR_SBDTAG_LSB + `FIRE_DLC_ICR_SBDTAG_WDTH -1
41// ~~~~~ sbdtag field access ~~~~~
42`define FIRE_DLC_ICR_SBDTAG `FIRE_DLC_ICR_SBDTAG_MSB:`FIRE_DLC_ICR_SBDTAG_LSB
43
44`define FIRE_DLC_ICR_DPTR_LSB `FIRE_DLC_ICR_SBDTAG_LSB + `FIRE_DLC_ICR_SBDTAG_WDTH // 6 start of DPTR field
45`define FIRE_DLC_ICR_DPTR_WDTH 7
46`define FIRE_DLC_ICR_DPTR_MSB `FIRE_DLC_ICR_DPTR_LSB + `FIRE_DLC_ICR_DPTR_WDTH -1
47// ~~~~~ dptr field access ~~~~~
48`define FIRE_DLC_ICR_DPTR `FIRE_DLC_ICR_DPTR_MSB:`FIRE_DLC_ICR_DPTR_LSB
49
50`define FIRE_DLC_ICR_STAT_LSB `FIRE_DLC_ICR_DPTR_LSB + `FIRE_DLC_ICR_DPTR_WDTH //11 start of STAT field
51`define FIRE_DLC_ICR_STAT_WDTH 3
52`define FIRE_DLC_ICR_STAT_MSB `FIRE_DLC_ICR_STAT_LSB + `FIRE_DLC_ICR_STAT_WDTH -1
53// ~~~~~ stat field access ~~~~~
54`define FIRE_DLC_ICR_STAT `FIRE_DLC_ICR_STAT_MSB:`FIRE_DLC_ICR_STAT_LSB
55
56`define FIRE_DLC_ICR_ADDR_LSB `FIRE_DLC_ICR_STAT_LSB + `FIRE_DLC_ICR_STAT_WDTH //14 start of ADDR field
57//BP n2 5-24-04
58//`define FIRE_DLC_ICR_ADDR_WDTH 37
59`define FIRE_DLC_ICR_ADDR_WDTH 38
60`define FIRE_DLC_ICR_ADDR_MSB `FIRE_DLC_ICR_ADDR_LSB + `FIRE_DLC_ICR_ADDR_WDTH -1
61// ~~~~~ addr field access ~~~~~
62`define FIRE_DLC_ICR_ADDR `FIRE_DLC_ICR_ADDR_MSB:`FIRE_DLC_ICR_ADDR_LSB
63
64`define FIRE_DLC_ICR_CLSTS_LSB `FIRE_DLC_ICR_ADDR_LSB + `FIRE_DLC_ICR_ADDR_WDTH //51 start of cl_sts feld
65`define FIRE_DLC_ICR_CLSTS_WDTH 1
66`define FIRE_DLC_ICR_CLSTS_MSB `FIRE_DLC_ICR_CLSTS_LSB + `FIRE_DLC_ICR_CLSTS_WDTH -1
67// ~~~~~ clsts field access ~~~~~
68`define FIRE_DLC_ICR_CLSTS `FIRE_DLC_ICR_CLSTS_MSB:`FIRE_DLC_ICR_CLSTS_LSB
69
70`define FIRE_DLC_ICR_TYP_LSB `FIRE_DLC_ICR_CLSTS_LSB + `FIRE_DLC_ICR_CLSTS_WDTH //52 start of TYPE field
71`define FIRE_DLC_ICR_TYP_WDTH 7
72`define FIRE_DLC_ICR_TYP_MSB `FIRE_DLC_ICR_TYP_LSB + `FIRE_DLC_ICR_TYP_WDTH -1
73// ~~~~~ typ field access ~~~~~
74`define FIRE_DLC_ICR_TYP `FIRE_DLC_ICR_TYP_MSB:`FIRE_DLC_ICR_TYP_LSB
75
76`define FIRE_DLC_ICR_REC_WDTH `FIRE_DLC_ICR_TYP_LSB + `FIRE_DLC_ICR_TYP_WDTH //59 Command Record Width
77
78`define FIRE_DLC_ICR_MSB `FIRE_DLC_ICR_REC_WDTH -1 // Command Record MSB
79
80//#############################
81// INGRESS PACKET RECORD (IPR)
82// From RCM to PRM
83//#############################
84
85`define FIRE_DLC_IPR_SBDTAG_LSB 0 // 0 start of SBD Tag field
86`define FIRE_DLC_IPR_SBDTAG_WDTH 5
87`define FIRE_DLC_IPR_SBDTAG_MSB `FIRE_DLC_IPR_SBDTAG_LSB + `FIRE_DLC_IPR_SBDTAG_WDTH -1
88
89`define FIRE_DLC_IPR_DPTR_LSB `FIRE_DLC_IPR_SBDTAG_LSB + `FIRE_DLC_IPR_SBDTAG_WDTH // 5 start of DPTR field
90`define FIRE_DLC_IPR_DPTR_WDTH 7
91`define FIRE_DLC_IPR_DPTR_MSB `FIRE_DLC_IPR_DPTR_LSB + `FIRE_DLC_IPR_DPTR_WDTH -1
92
93`define FIRE_DLC_IPR_ADDRERR_LSB `FIRE_DLC_IPR_DPTR_LSB + `FIRE_DLC_IPR_DPTR_WDTH //12 start of ADDRERR field
94`define FIRE_DLC_IPR_ADDRERR_WDTH 1
95`define FIRE_DLC_IPR_ADDRERR_MSB `FIRE_DLC_IPR_ADDRERR_LSB + `FIRE_DLC_IPR_ADDRERR_WDTH -1
96
97`define FIRE_DLC_IPR_ADDR_LSB `FIRE_DLC_IPR_ADDRERR_LSB + `FIRE_DLC_IPR_ADDRERR_WDTH //13 start of ADDR field
98`define FIRE_DLC_IPR_ADDR_WDTH 41
99`define FIRE_DLC_IPR_ADDR_MSB `FIRE_DLC_IPR_ADDR_LSB + `FIRE_DLC_IPR_ADDR_WDTH -1
100
101`define FIRE_DLC_IPR_PKSEQNUM_LSB `FIRE_DLC_IPR_ADDR_LSB + `FIRE_DLC_IPR_ADDR_WDTH //54 start of PKSEQ# field
102`define FIRE_DLC_IPR_PKSEQNUM_WDTH 5
103`define FIRE_DLC_IPR_PKSEQNUM_MSB `FIRE_DLC_IPR_PKSEQNUM_LSB + `FIRE_DLC_IPR_PKSEQNUM_WDTH -1
104
105`define FIRE_DLC_IPR_CNTXTNUM_LSB `FIRE_DLC_IPR_PKSEQNUM_LSB + `FIRE_DLC_IPR_PKSEQNUM_WDTH //59 start of CNTX# field
106`define FIRE_DLC_IPR_CNTXTNUM_WDTH 5
107`define FIRE_DLC_IPR_CNTXTNUM_MSB `FIRE_DLC_IPR_CNTXTNUM_LSB + `FIRE_DLC_IPR_CNTXTNUM_WDTH -1
108
109`define FIRE_DLC_IPR_BYTCNT_LSB `FIRE_DLC_IPR_CNTXTNUM_LSB + `FIRE_DLC_IPR_CNTXTNUM_WDTH //64 start of BYTE CNT field
110`define FIRE_DLC_IPR_BYTCNT_WDTH 12
111`define FIRE_DLC_IPR_BYTCNT_MSB `FIRE_DLC_IPR_BYTCNT_LSB + `FIRE_DLC_IPR_BYTCNT_WDTH -1
112
113`define FIRE_DLC_IPR_LEN_LSB `FIRE_DLC_IPR_BYTCNT_LSB + `FIRE_DLC_IPR_BYTCNT_WDTH //76 start of LENGTH field
114`define FIRE_DLC_IPR_LEN_WDTH 10
115`define FIRE_DLC_IPR_LEN_MSB `FIRE_DLC_IPR_LEN_LSB + `FIRE_DLC_IPR_LEN_WDTH -1
116
117`define FIRE_DLC_IPR_TYP_LSB `FIRE_DLC_IPR_LEN_LSB + `FIRE_DLC_IPR_LEN_WDTH //86 start of TYPE field
118`define FIRE_DLC_IPR_TYP_WDTH 7
119`define FIRE_DLC_IPR_TYP_MSB `FIRE_DLC_IPR_TYP_LSB + `FIRE_DLC_IPR_TYP_WDTH -1
120
121`define FIRE_DLC_IPR_REC_WDTH `FIRE_DLC_IPR_TYP_LSB + `FIRE_DLC_IPR_TYP_WDTH //93 Packet Record Width
122
123`define FIRE_DLC_IPR_MSB `FIRE_DLC_IPR_REC_WDTH -1 // Packet Record MSB
124
125//#############################
126// INGRESS SCHEDULE RECORD (ISR)
127// From MMU to RCM
128//#############################
129
130`define FIRE_DLC_ISR_SBDTAG_LSB 0 // 0 start of SBD Tag field
131`define FIRE_DLC_ISR_SBDTAG_WDTH 5
132`define FIRE_DLC_ISR_SBDTAG_MSB `FIRE_DLC_ISR_SBDTAG_LSB + `FIRE_DLC_ISR_SBDTAG_WDTH -1
133`define FIRE_DLC_ISR_SBDTAG_BITS `FIRE_DLC_ISR_SBDTAG_MSB : `FIRE_DLC_ISR_SBDTAG_LSB
134
135`define FIRE_DLC_ISR_DPTR_LSB `FIRE_DLC_ISR_SBDTAG_LSB + `FIRE_DLC_ISR_SBDTAG_WDTH // 5 start of DPTR field
136`define FIRE_DLC_ISR_DPTR_WDTH 7
137`define FIRE_DLC_ISR_DPTR_MSB `FIRE_DLC_ISR_DPTR_LSB + `FIRE_DLC_ISR_DPTR_WDTH -1
138`define FIRE_DLC_ISR_DPTR_BITS `FIRE_DLC_ISR_DPTR_MSB : `FIRE_DLC_ISR_DPTR_LSB
139
140`define FIRE_DLC_ISR_ADDRERR_LSB `FIRE_DLC_ISR_DPTR_LSB + `FIRE_DLC_ISR_DPTR_WDTH //12 start of ADDRERR field
141`define FIRE_DLC_ISR_ADDRERR_WDTH 1
142`define FIRE_DLC_ISR_ADDRERR_MSB `FIRE_DLC_ISR_ADDRERR_LSB + `FIRE_DLC_ISR_ADDRERR_WDTH -1
143`define FIRE_DLC_ISR_ADDRERR_BITS `FIRE_DLC_ISR_ADDRERR_MSB : `FIRE_DLC_ISR_ADDRERR_LSB
144
145`define FIRE_DLC_ISR_ADDR_LSB `FIRE_DLC_ISR_ADDRERR_LSB + `FIRE_DLC_ISR_ADDRERR_WDTH //13 start of ADDR field
146`define FIRE_DLC_ISR_ADDR_WDTH 41
147`define FIRE_DLC_ISR_ADDR_MSB `FIRE_DLC_ISR_ADDR_LSB + `FIRE_DLC_ISR_ADDR_WDTH -1
148`define FIRE_DLC_ISR_ADDR_BITS `FIRE_DLC_ISR_ADDR_MSB : `FIRE_DLC_ISR_ADDR_LSB
149
150`define FIRE_DLC_ISR_DWBE_LSB `FIRE_DLC_ISR_ADDR_LSB + `FIRE_DLC_ISR_ADDR_WDTH //54 start of BYTE CNT field
151`define FIRE_DLC_ISR_DWBE_WDTH 8
152`define FIRE_DLC_ISR_DWBE_MSB `FIRE_DLC_ISR_DWBE_LSB + `FIRE_DLC_ISR_DWBE_WDTH -1
153`define FIRE_DLC_ISR_DWBE_BITS `FIRE_DLC_ISR_DWBE_MSB : `FIRE_DLC_ISR_DWBE_LSB
154
155`define FIRE_DLC_ISR_LEN_LSB `FIRE_DLC_ISR_DWBE_LSB + `FIRE_DLC_ISR_DWBE_WDTH //62 start of LENGTH field
156`define FIRE_DLC_ISR_LEN_WDTH 10
157`define FIRE_DLC_ISR_LEN_MSB `FIRE_DLC_ISR_LEN_LSB + `FIRE_DLC_ISR_LEN_WDTH -1
158`define FIRE_DLC_ISR_LEN_BITS `FIRE_DLC_ISR_LEN_MSB : `FIRE_DLC_ISR_LEN_LSB
159
160`define FIRE_DLC_ISR_TYP_LSB `FIRE_DLC_ISR_LEN_LSB + `FIRE_DLC_ISR_LEN_WDTH //72 start of TYPE field
161`define FIRE_DLC_ISR_TYP_WDTH 7
162`define FIRE_DLC_ISR_TYP_MSB `FIRE_DLC_ISR_TYP_LSB + `FIRE_DLC_ISR_TYP_WDTH -1
163`define FIRE_DLC_ISR_TYP_BITS `FIRE_DLC_ISR_TYP_MSB : `FIRE_DLC_ISR_TYP_LSB
164
165`define FIRE_DLC_ISR_REC_WDTH `FIRE_DLC_ISR_TYP_LSB + `FIRE_DLC_ISR_TYP_WDTH //79 Schedule Record Width
166
167`define FIRE_DLC_ISR_LSB `FIRE_DLC_ISR_SBDTAG_LSB
168`define FIRE_DLC_ISR_MSB `FIRE_DLC_ISR_REC_WDTH -1 // Schedule Record MSB
169`define FIRE_DLC_ISR_BITS `FIRE_DLC_ISR_MSB : `FIRE_DLC_ISR_LSB
170
171//#############################
172// INGRESS SCHEDULE RECORD (SRM)
173// From RMU to MMU
174//#############################
175
176`define FIRE_DLC_SRM_SBDTAG_LSB 0
177`define FIRE_DLC_SRM_SBDTAG_WDTH 5
178`define FIRE_DLC_SRM_SBDTAG_MSB `FIRE_DLC_SRM_SBDTAG_LSB + `FIRE_DLC_SRM_SBDTAG_WDTH - 1
179`define FIRE_DLC_SRM_SBDTAG_BITS `FIRE_DLC_SRM_SBDTAG_MSB : `FIRE_DLC_SRM_SBDTAG_LSB
180
181`define FIRE_DLC_SRM_DPTR_LSB `FIRE_DLC_SRM_SBDTAG_LSB + `FIRE_DLC_SRM_SBDTAG_WDTH
182`define FIRE_DLC_SRM_DPTR_WDTH 7
183`define FIRE_DLC_SRM_DPTR_MSB `FIRE_DLC_SRM_DPTR_LSB + `FIRE_DLC_SRM_DPTR_WDTH - 1
184`define FIRE_DLC_SRM_DPTR_BITS `FIRE_DLC_SRM_DPTR_MSB : `FIRE_DLC_SRM_DPTR_LSB
185
186`define FIRE_DLC_SRM_ADDR_LSB `FIRE_DLC_SRM_DPTR_LSB + `FIRE_DLC_SRM_DPTR_WDTH
187`define FIRE_DLC_SRM_ADDR_WDTH 62
188`define FIRE_DLC_SRM_ADDR_MSB `FIRE_DLC_SRM_ADDR_LSB + `FIRE_DLC_SRM_ADDR_WDTH - 1
189`define FIRE_DLC_SRM_ADDR_BITS `FIRE_DLC_SRM_ADDR_MSB : `FIRE_DLC_SRM_ADDR_LSB
190
191`define FIRE_DLC_SRM_DWBE_LSB `FIRE_DLC_SRM_ADDR_LSB + `FIRE_DLC_SRM_ADDR_WDTH
192`define FIRE_DLC_SRM_DWBE_WDTH 8
193`define FIRE_DLC_SRM_DWBE_MSB `FIRE_DLC_SRM_DWBE_LSB + `FIRE_DLC_SRM_DWBE_WDTH - 1
194`define FIRE_DLC_SRM_DWBE_BITS `FIRE_DLC_SRM_DWBE_MSB : `FIRE_DLC_SRM_DWBE_LSB
195
196`define FIRE_DLC_SRM_REQID_LSB `FIRE_DLC_SRM_DWBE_LSB + `FIRE_DLC_SRM_DWBE_WDTH
197`define FIRE_DLC_SRM_REQID_WDTH 16
198`define FIRE_DLC_SRM_REQID_MSB `FIRE_DLC_SRM_REQID_LSB + `FIRE_DLC_SRM_REQID_WDTH - 1
199`define FIRE_DLC_SRM_REQID_BITS `FIRE_DLC_SRM_REQID_MSB : `FIRE_DLC_SRM_REQID_LSB
200
201`define FIRE_DLC_SRM_LEN_LSB `FIRE_DLC_SRM_REQID_LSB + `FIRE_DLC_SRM_REQID_WDTH
202`define FIRE_DLC_SRM_LEN_WDTH 10
203`define FIRE_DLC_SRM_LEN_MSB `FIRE_DLC_SRM_LEN_LSB + `FIRE_DLC_SRM_LEN_WDTH - 1
204`define FIRE_DLC_SRM_LEN_BITS `FIRE_DLC_SRM_LEN_MSB : `FIRE_DLC_SRM_LEN_LSB
205
206`define FIRE_DLC_SRM_TYPE_LSB `FIRE_DLC_SRM_LEN_LSB + `FIRE_DLC_SRM_LEN_WDTH
207`define FIRE_DLC_SRM_TYPE_WDTH 7
208`define FIRE_DLC_SRM_TYPE_MSB `FIRE_DLC_SRM_TYPE_LSB + `FIRE_DLC_SRM_TYPE_WDTH - 1
209`define FIRE_DLC_SRM_TYPE_BITS `FIRE_DLC_SRM_TYPE_MSB : `FIRE_DLC_SRM_TYPE_LSB
210
211`define FIRE_DLC_SRM_LSB `FIRE_DLC_SRM_SBDTAG_LSB
212`define FIRE_DLC_SRM_WDTH `FIRE_DLC_SRM_TYPE_LSB + `FIRE_DLC_SRM_TYPE_WDTH
213`define FIRE_DLC_SRM_MSB `FIRE_DLC_SRM_WDTH - 1
214`define FIRE_DLC_SRM_BITS `FIRE_DLC_SRM_MSB : `FIRE_DLC_SRM_LSB
215
216//###############################
217// TABLEWALK COMMAND RECORD (TCR)
218// From MMU to CLU
219//###############################
220
221`define FIRE_DLC_TCR_MTAG_LSB 0
222`define FIRE_DLC_TCR_MTAG_WDTH 6
223`define FIRE_DLC_TCR_MTAG_MSB `FIRE_DLC_TCR_MTAG_LSB + `FIRE_DLC_TCR_MTAG_WDTH - 1
224`define FIRE_DLC_TCR_MTAG_BITS `FIRE_DLC_TCR_MTAG_MSB : `FIRE_DLC_TCR_MTAG_LSB
225// ~~~~~ mtag field access ~~~~~
226`define FIRE_DLC_TCR_MTAG `FIRE_DLC_TCR_MTAG_MSB:`FIRE_DLC_TCR_MTAG_LSB
227
228`define FIRE_DLC_TCR_ADDR_LSB `FIRE_DLC_TCR_MTAG_LSB + `FIRE_DLC_TCR_MTAG_WDTH
229`define FIRE_DLC_TCR_ADDR_WDTH 37
230`define FIRE_DLC_TCR_ADDR_MSB `FIRE_DLC_TCR_ADDR_LSB + `FIRE_DLC_TCR_ADDR_WDTH - 1
231`define FIRE_DLC_TCR_ADDR_BITS `FIRE_DLC_TCR_ADDR_MSB : `FIRE_DLC_TCR_ADDR_LSB
232// ~~~~~ addr field access ~~~~~
233`define FIRE_DLC_TCR_ADDR `FIRE_DLC_TCR_ADDR_MSB:`FIRE_DLC_TCR_ADDR_LSB
234
235`define FIRE_DLC_TCR_LSB `FIRE_DLC_TCR_MTAG_LSB
236`define FIRE_DLC_TCR_WDTH `FIRE_DLC_TCR_ADDR_LSB + `FIRE_DLC_TCR_ADDR_WDTH
237`define FIRE_DLC_TCR_MSB `FIRE_DLC_TCR_WDTH - 1
238`define FIRE_DLC_TCR_BITS `FIRE_DLC_TCR_MSB : `FIRE_DLC_TCR_LSB
239
240//############################
241// TABLEWALK DATA RECORD (TDR)
242// From CLU to MMU
243//############################
244
245`define FIRE_DLC_TDR_DATA_LSB 0
246`define FIRE_DLC_TDR_DATA_WDTH 128
247`define FIRE_DLC_TDR_DATA_MSB `FIRE_DLC_TDR_DATA_LSB + `FIRE_DLC_TDR_DATA_WDTH - 1
248`define FIRE_DLC_TDR_DATA_BITS `FIRE_DLC_TDR_DATA_MSB : `FIRE_DLC_TDR_DATA_LSB
249// ~~~~~ data field access ~~~~~
250`define FIRE_DLC_TDR_DATA `FIRE_DLC_TDR_DATA_MSB:`FIRE_DLC_TDR_DATA_LSB
251
252`define FIRE_DLC_TDR_DPAR_LSB `FIRE_DLC_TDR_DATA_LSB + `FIRE_DLC_TDR_DATA_WDTH
253`define FIRE_DLC_TDR_DPAR_WDTH 4
254`define FIRE_DLC_TDR_DPAR_MSB `FIRE_DLC_TDR_DPAR_LSB + `FIRE_DLC_TDR_DPAR_WDTH - 1
255`define FIRE_DLC_TDR_DPAR_BITS `FIRE_DLC_TDR_DPAR_MSB : `FIRE_DLC_TDR_DPAR_LSB
256// ~~~~~ dpar field access ~~~~~
257`define FIRE_DLC_TDR_DPAR `FIRE_DLC_TDR_DPAR_MSB:`FIRE_DLC_TDR_DPAR_LSB
258
259`define FIRE_DLC_TDR_MTAG_LSB `FIRE_DLC_TDR_DPAR_LSB + `FIRE_DLC_TDR_DPAR_WDTH
260`define FIRE_DLC_TDR_MTAG_WDTH 6
261`define FIRE_DLC_TDR_MTAG_MSB `FIRE_DLC_TDR_MTAG_LSB + `FIRE_DLC_TDR_MTAG_WDTH - 1
262`define FIRE_DLC_TDR_MTAG_BITS `FIRE_DLC_TDR_MTAG_MSB : `FIRE_DLC_TDR_MTAG_LSB
263// ~~~~~ mtag field access ~~~~~
264`define FIRE_DLC_TDR_MTAG `FIRE_DLC_TDR_MTAG_MSB:`FIRE_DLC_TDR_MTAG_LSB
265
266`define FIRE_DLC_TDR_DERR_LSB `FIRE_DLC_TDR_MTAG_LSB + `FIRE_DLC_TDR_MTAG_WDTH
267`define FIRE_DLC_TDR_DERR_WDTH 1
268`define FIRE_DLC_TDR_DERR_MSB `FIRE_DLC_TDR_DERR_LSB + `FIRE_DLC_TDR_DERR_WDTH - 1
269`define FIRE_DLC_TDR_DERR_BITS `FIRE_DLC_TDR_DERR_MSB : `FIRE_DLC_TDR_DERR_LSB
270// ~~~~~ derr field access ~~~~~
271`define FIRE_DLC_TDR_DERR `FIRE_DLC_TDR_DERR_MSB:`FIRE_DLC_TDR_DERR_LSB
272
273`define FIRE_DLC_TDR_CERR_LSB `FIRE_DLC_TDR_DERR_LSB + `FIRE_DLC_TDR_DERR_WDTH
274`define FIRE_DLC_TDR_CERR_WDTH 1
275`define FIRE_DLC_TDR_CERR_MSB `FIRE_DLC_TDR_CERR_LSB + `FIRE_DLC_TDR_CERR_WDTH - 1
276`define FIRE_DLC_TDR_CERR_BITS `FIRE_DLC_TDR_CERR_MSB : `FIRE_DLC_TDR_CERR_LSB
277// ~~~~~ cerr field access ~~~~~
278`define FIRE_DLC_TDR_CERR `FIRE_DLC_TDR_CERR_MSB:`FIRE_DLC_TDR_CERR_LSB
279
280`define FIRE_DLC_TDR_LSB `FIRE_DLC_TDR_DATA_LSB
281`define FIRE_DLC_TDR_WDTH `FIRE_DLC_TDR_CERR_LSB + `FIRE_DLC_TDR_CERR_WDTH
282`define FIRE_DLC_TDR_MSB `FIRE_DLC_TDR_WDTH - 1
283`define FIRE_DLC_TDR_BITS `FIRE_DLC_TDR_MSB : `FIRE_DLC_TDR_LSB
284
285//###########################
286// EGRESS PACKET RECORD (EPR)
287// From CRM to TCM
288//###########################
289
290`define FIRE_DLC_EPR_CNTXTNUM_LSB 0 // 0 start of CNTX# field
291`define FIRE_DLC_EPR_CNTXTNUM_WDTH 5
292`define FIRE_DLC_EPR_CNTXTNUM_MSB `FIRE_DLC_EPR_CNTXTNUM_LSB + `FIRE_DLC_EPR_CNTXTNUM_WDTH -1
293// ~~~~~ cntxtnum field access ~~~~~
294`define FIRE_DLC_EPR_CNTXTNUM `FIRE_DLC_EPR_CNTXTNUM_MSB:`FIRE_DLC_EPR_CNTXTNUM_LSB
295
296`define FIRE_DLC_EPR_PKSEQNUM_LSB `FIRE_DLC_EPR_CNTXTNUM_LSB + `FIRE_DLC_EPR_CNTXTNUM_WDTH // 5 start of PKSEQ# field
297`define FIRE_DLC_EPR_PKSEQNUM_WDTH 5
298`define FIRE_DLC_EPR_PKSEQNUM_MSB `FIRE_DLC_EPR_PKSEQNUM_LSB + `FIRE_DLC_EPR_PKSEQNUM_WDTH -1
299// ~~~~~ pkseqnum field access ~~~~~
300`define FIRE_DLC_EPR_PKSEQNUM `FIRE_DLC_EPR_PKSEQNUM_MSB:`FIRE_DLC_EPR_PKSEQNUM_LSB
301
302`define FIRE_DLC_EPR_DPTR_LSB `FIRE_DLC_EPR_PKSEQNUM_LSB + `FIRE_DLC_EPR_PKSEQNUM_WDTH //10 start of DPTR field
303`define FIRE_DLC_EPR_DPTR_WDTH 6
304`define FIRE_DLC_EPR_DPTR_MSB `FIRE_DLC_EPR_DPTR_LSB + `FIRE_DLC_EPR_DPTR_WDTH -1
305// ~~~~~ dptr field access ~~~~~
306`define FIRE_DLC_EPR_DPTR `FIRE_DLC_EPR_DPTR_MSB:`FIRE_DLC_EPR_DPTR_LSB
307
308`define FIRE_DLC_EPR_SBDTAG_LSB `FIRE_DLC_EPR_DPTR_LSB + `FIRE_DLC_EPR_DPTR_WDTH //16 start of SBD Tag field
309`define FIRE_DLC_EPR_SBDTAG_WDTH 5
310`define FIRE_DLC_EPR_SBDTAG_MSB `FIRE_DLC_EPR_SBDTAG_LSB + `FIRE_DLC_EPR_SBDTAG_WDTH -1
311// ~~~~~ sbdtag field access ~~~~~
312`define FIRE_DLC_EPR_SBDTAG `FIRE_DLC_EPR_SBDTAG_MSB:`FIRE_DLC_EPR_SBDTAG_LSB
313
314`define FIRE_DLC_EPR_ADDR_LSB `FIRE_DLC_EPR_SBDTAG_LSB + `FIRE_DLC_EPR_SBDTAG_WDTH //21 start of ADDR field
315`define FIRE_DLC_EPR_ADDR_WDTH 34
316`define FIRE_DLC_EPR_ADDR_MSB `FIRE_DLC_EPR_ADDR_LSB + `FIRE_DLC_EPR_ADDR_WDTH -1
317// ~~~~~ addr field access ~~~~~
318`define FIRE_DLC_EPR_ADDR `FIRE_DLC_EPR_ADDR_MSB:`FIRE_DLC_EPR_ADDR_LSB
319
320`define FIRE_DLC_EPR_DWBE_LSB `FIRE_DLC_EPR_ADDR_LSB + `FIRE_DLC_EPR_ADDR_WDTH //55 start of BYTE CNT field
321`define FIRE_DLC_EPR_DWBE_WDTH 8
322`define FIRE_DLC_EPR_DWBE_MSB `FIRE_DLC_EPR_DWBE_LSB + `FIRE_DLC_EPR_DWBE_WDTH -1
323
324`define FIRE_DLC_EPR_LEN_LSB `FIRE_DLC_EPR_DWBE_LSB + `FIRE_DLC_EPR_DWBE_WDTH //63 start of LENGTH field
325`define FIRE_DLC_EPR_LEN_WDTH 10
326`define FIRE_DLC_EPR_LEN_MSB `FIRE_DLC_EPR_LEN_LSB + `FIRE_DLC_EPR_LEN_WDTH -1
327// ~~~~~ len field access ~~~~~
328`define FIRE_DLC_EPR_LEN `FIRE_DLC_EPR_LEN_MSB:`FIRE_DLC_EPR_LEN_LSB
329
330`define FIRE_DLC_EPR_TYP_LSB `FIRE_DLC_EPR_LEN_LSB + `FIRE_DLC_EPR_LEN_WDTH //73 start of TYPE field
331`define FIRE_DLC_EPR_TYP_WDTH 7
332`define FIRE_DLC_EPR_TYP_MSB `FIRE_DLC_EPR_TYP_LSB + `FIRE_DLC_EPR_TYP_WDTH -1
333// ~~~~~ type field access ~~~~~
334`define FIRE_DLC_EPR_TYP `FIRE_DLC_EPR_TYP_MSB:`FIRE_DLC_EPR_TYP_LSB
335
336`define FIRE_DLC_EPR_REC_WDTH `FIRE_DLC_EPR_TYP_LSB + `FIRE_DLC_EPR_TYP_WDTH //80 Packet Record WIDTH
337
338`define FIRE_DLC_EPR_MSB `FIRE_DLC_EPR_REC_WDTH -1 // Packet Record MSB
339
340//#############################
341// EGRESS RETIRE RECORD (ERR)
342// From TCM to RRM
343//#############################
344
345`define FIRE_DLC_ERR_DPTR_LSB 0 // 0 start of DPTR field
346`define FIRE_DLC_ERR_DPTR_WDTH 6
347`define FIRE_DLC_ERR_DPTR_MSB `FIRE_DLC_ERR_DPTR_LSB + `FIRE_DLC_ERR_DPTR_WDTH -1
348// ~~~~ dptr field access ~~~~
349`define FIRE_DLC_ERR_DPTR `FIRE_DLC_ERR_DPTR_MSB:`FIRE_DLC_ERR_DPTR_LSB
350
351`define FIRE_DLC_ERR_SBDTAG_LSB `FIRE_DLC_ERR_DPTR_LSB + `FIRE_DLC_ERR_DPTR_WDTH // 6 start of SBD Tag field
352`define FIRE_DLC_ERR_SBDTAG_WDTH 5
353`define FIRE_DLC_ERR_SBDTAG_MSB `FIRE_DLC_ERR_SBDTAG_LSB + `FIRE_DLC_ERR_SBDTAG_WDTH -1
354// ~~~~ sbdtag field access ~~~~
355`define FIRE_DLC_ERR_SBDTAG `FIRE_DLC_ERR_SBDTAG_MSB:`FIRE_DLC_ERR_SBDTAG_LSB
356
357`define FIRE_DLC_ERR_ADDR_LSB `FIRE_DLC_ERR_SBDTAG_LSB + `FIRE_DLC_ERR_SBDTAG_WDTH //11 start of ADDR field
358`define FIRE_DLC_ERR_ADDR_WDTH 34
359`define FIRE_DLC_ERR_ADDR_MSB `FIRE_DLC_ERR_ADDR_LSB + `FIRE_DLC_ERR_ADDR_WDTH -1
360// ~~~~ addr field access ~~~~
361`define FIRE_DLC_ERR_ADDR `FIRE_DLC_ERR_ADDR_MSB:`FIRE_DLC_ERR_ADDR_LSB
362
363`define FIRE_DLC_ERR_FDWBE_LSB `FIRE_DLC_ERR_ADDR_LSB + `FIRE_DLC_ERR_ADDR_WDTH //45 start of FDWBE field
364`define FIRE_DLC_ERR_FDWBE_WDTH 4
365`define FIRE_DLC_ERR_FDWBE_MSB `FIRE_DLC_ERR_FDWBE_LSB + `FIRE_DLC_ERR_FDWBE_WDTH -1
366// ~~~~ fdwbe field access ~~~~
367`define FIRE_DLC_ERR_FDWBE `FIRE_DLC_ERR_FDWBE_MSB:`FIRE_DLC_ERR_FDWBE_LSB
368
369`define FIRE_DLC_ERR_LDWBE_LSB `FIRE_DLC_ERR_FDWBE_LSB + `FIRE_DLC_ERR_FDWBE_WDTH //49 start of LDWBE field
370`define FIRE_DLC_ERR_LDWBE_WDTH 4
371`define FIRE_DLC_ERR_LDWBE_MSB `FIRE_DLC_ERR_LDWBE_LSB + `FIRE_DLC_ERR_LDWBE_WDTH -1
372// ~~~~ ldwbe field access ~~~~
373`define FIRE_DLC_ERR_LDWBE `FIRE_DLC_ERR_LDWBE_MSB:`FIRE_DLC_ERR_LDWBE_LSB
374
375`define FIRE_DLC_ERR_LEN_LSB `FIRE_DLC_ERR_LDWBE_LSB + `FIRE_DLC_ERR_LDWBE_WDTH //53 start of LENGTH field
376`define FIRE_DLC_ERR_LEN_WDTH 10
377`define FIRE_DLC_ERR_LEN_MSB `FIRE_DLC_ERR_LEN_LSB + `FIRE_DLC_ERR_LEN_WDTH -1
378// ~~~~ len field access ~~~~
379`define FIRE_DLC_ERR_LEN `FIRE_DLC_ERR_LEN_MSB:`FIRE_DLC_ERR_LEN_LSB
380
381`define FIRE_DLC_ERR_TYP_LSB `FIRE_DLC_ERR_LEN_LSB + `FIRE_DLC_ERR_LEN_WDTH //63 start of TYPE field
382`define FIRE_DLC_ERR_TYP_WDTH 7
383`define FIRE_DLC_ERR_TYP_MSB `FIRE_DLC_ERR_TYP_LSB + `FIRE_DLC_ERR_TYP_WDTH -1
384// ~~~~ type field access ~~~~
385`define FIRE_DLC_ERR_TYP `FIRE_DLC_ERR_TYP_MSB:`FIRE_DLC_ERR_TYP_LSB
386
387`define FIRE_DLC_ERR_REC_WDTH `FIRE_DLC_ERR_TYP_LSB + `FIRE_DLC_ERR_TYP_WDTH //70 Retire Record Width
388
389`define FIRE_DLC_ERR_MSB `FIRE_DLC_ERR_REC_WDTH -1 // Retire Record MSB
390
391//#############################
392// INTERRUPT IN RECORD (IIN)
393// From LRM to IMU
394//#############################
395
396`define FIRE_DLC_IIN_LRMTAG_LSB 0 // Start of LRM TAG Field
397`define FIRE_DLC_IIN_LRMTAG_WDTH 8 // Width of LRM TAG Field
398`define FIRE_DLC_IIN_LRMTAG_MSB `FIRE_DLC_IIN_LRMTAG_LSB + `FIRE_DLC_IIN_LRMTAG_WDTH -1 // MSB of LRM TAG Field
399
400`define FIRE_DLC_IIN_DPTR_LSB `FIRE_DLC_IIN_LRMTAG_LSB + `FIRE_DLC_IIN_LRMTAG_WDTH // Start of Data Pointer Field
401`define FIRE_DLC_IIN_DPTR_WDTH 7 // Width of Data Pointer Field
402`define FIRE_DLC_IIN_DPTR_MSB `FIRE_DLC_IIN_DPTR_LSB + `FIRE_DLC_IIN_DPTR_WDTH -1 // MSB of Data Pointer Field
403
404`define FIRE_DLC_IIN_ADDR_LSB `FIRE_DLC_IIN_DPTR_LSB + `FIRE_DLC_IIN_DPTR_WDTH // Start of Address Field
405`define FIRE_DLC_IIN_ADDR_WDTH 62 // Width of Address Field
406`define FIRE_DLC_IIN_ADDR_MSB `FIRE_DLC_IIN_ADDR_LSB + `FIRE_DLC_IIN_ADDR_WDTH -1 // MSB of Address Field
407
408`define FIRE_DLC_IIN_DATA_LSB `FIRE_DLC_IIN_ADDR_LSB + `FIRE_DLC_IIN_ADDR_WDTH // Start of Data Field
409`define FIRE_DLC_IIN_DATA_WDTH 8 // Width of Data Field
410`define FIRE_DLC_IIN_DATA_MSB `FIRE_DLC_IIN_DATA_LSB + `FIRE_DLC_IIN_DATA_WDTH -1 // MSB of Data Field
411
412`define FIRE_DLC_IIN_TLPTAG_LSB `FIRE_DLC_IIN_DATA_LSB + `FIRE_DLC_IIN_DATA_WDTH // Start of TLP Tag Field
413`define FIRE_DLC_IIN_TLPTAG_WDTH 8 // Width of TLP Tag Field
414`define FIRE_DLC_IIN_TLPTAG_MSB `FIRE_DLC_IIN_TLPTAG_LSB + `FIRE_DLC_IIN_TLPTAG_WDTH -1 // MSB of TLP Tag Field
415
416`define FIRE_DLC_IIN_REQID_LSB `FIRE_DLC_IIN_TLPTAG_LSB + `FIRE_DLC_IIN_TLPTAG_WDTH // Start of REQ ID Field
417`define FIRE_DLC_IIN_REQID_WDTH 16 // Width of REQ ID Field
418`define FIRE_DLC_IIN_REQID_MSB `FIRE_DLC_IIN_REQID_LSB + `FIRE_DLC_IIN_REQID_WDTH -1 // MSB of REQ ID Field
419
420`define FIRE_DLC_IIN_LEN_LSB `FIRE_DLC_IIN_REQID_LSB + `FIRE_DLC_IIN_REQID_WDTH // Start of Length Field
421`define FIRE_DLC_IIN_LEN_WDTH 10 // Width of Length Field
422`define FIRE_DLC_IIN_LEN_MSB `FIRE_DLC_IIN_LEN_LSB + `FIRE_DLC_IIN_LEN_WDTH -1 // MSB of Length Field
423
424`define FIRE_DLC_IIN_ATR_LSB `FIRE_DLC_IIN_LEN_LSB + `FIRE_DLC_IIN_LEN_WDTH // Start of Attribute Field
425`define FIRE_DLC_IIN_ATR_WDTH 2 // Width of Attribute Field
426`define FIRE_DLC_IIN_ATR_MSB `FIRE_DLC_IIN_ATR_LSB + `FIRE_DLC_IIN_ATR_WDTH -1 // MSB of Attribute Field
427
428`define FIRE_DLC_IIN_TC_LSB `FIRE_DLC_IIN_ATR_LSB + `FIRE_DLC_IIN_ATR_WDTH // Start of TC Field
429`define FIRE_DLC_IIN_TC_WDTH 3 // Width of TC Field
430`define FIRE_DLC_IIN_TC_MSB `FIRE_DLC_IIN_TC_LSB + `FIRE_DLC_IIN_TC_WDTH -1 // MSB of TC Field
431
432`define FIRE_DLC_IIN_TYPE_LSB `FIRE_DLC_IIN_TC_LSB + `FIRE_DLC_IIN_TC_WDTH // Start of Type Field
433`define FIRE_DLC_IIN_TYPE_WDTH 7 // Width of Type Field
434`define FIRE_DLC_IIN_TYPE_MSB `FIRE_DLC_IIN_TYPE_LSB + `FIRE_DLC_IIN_TYPE_WDTH -1 // MSB of Type Field
435
436`define FIRE_DLC_IIN_REC_WDTH `FIRE_DLC_IIN_TYPE_LSB + `FIRE_DLC_IIN_TYPE_WDTH // Complete Record With
437
438//#############################
439// MSI DATA FORMAT (MDF)
440// From DIM to IMU
441//#############################
442
443`define FIRE_DLC_MDF_DATA_LSB 0 // Start of Data Field
444`define FIRE_DLC_MDF_DATA_WDTH 32 // Width of Data Field
445`define FIRE_DLC_MDF_DATA_MSB `FIRE_DLC_MDF_DATA_LSB + `FIRE_DLC_MDF_DATA_WDTH -1 // MSB of Data Field
446
447`define FIRE_DLC_MDF_PERR_LSB `FIRE_DLC_MDF_DATA_LSB + `FIRE_DLC_MDF_DATA_WDTH // Start of Parity Error Field
448`define FIRE_DLC_MDF_PERR_WDTH 1 // Width of Parity Error Field
449`define FIRE_DLC_MDF_PERR_MSB `FIRE_DLC_MDF_PERR_LSB + `FIRE_DLC_MDF_PERR_WDTH -1 // MSB of Parity Error Field
450
451`define FIRE_DLC_MDF_REC_WDTH `FIRE_DLC_MDF_PERR_LSB + `FIRE_DLC_MDF_PERR_WDTH // Complete Record With
452
453//#############################
454// STATIC CSR WIDTHS (SCW)
455// From IMU to TMU
456//#############################
457
458`define FIRE_DLC_SCW_MSI32_WDTH 16
459`define FIRE_DLC_SCW_MSI64_WDTH 48
460`define FIRE_DLC_SCW_MEM64_WDTH 40
461
462//#############################
463// INTERRUPT OUT RECORD (IOT)
464// From IMU to LRM
465//#############################
466
467`define FIRE_DLC_IOT_LRMTAG_LSB 0 // Start of LRM TAG Field
468`define FIRE_DLC_IOT_LRMTAG_WDTH 8 // Width of LRM TAG Field
469`define FIRE_DLC_IOT_LRMTAG_MSB `FIRE_DLC_IOT_LRMTAG_LSB + `FIRE_DLC_IOT_LRMTAG_WDTH -1 // MSB of LRM TAG Field
470
471`define FIRE_DLC_IOT_DPTR_LSB `FIRE_DLC_IOT_LRMTAG_LSB + `FIRE_DLC_IOT_LRMTAG_WDTH // Start of Data Pointer Field
472`define FIRE_DLC_IOT_DPTR_WDTH 7 // Width of Data Pointer Field
473`define FIRE_DLC_IOT_DPTR_MSB `FIRE_DLC_IOT_DPTR_LSB + `FIRE_DLC_IOT_DPTR_WDTH -1 // MSB of Data Pointer Field
474// ~~~~ dptr field access ~~~~
475`define FIRE_DLC_IOT_DPTR `FIRE_DLC_IOT_DPTR_MSB:`FIRE_DLC_IOT_DPTR_LSB
476
477`define FIRE_DLC_IOT_ADDR_LSB `FIRE_DLC_IOT_DPTR_LSB + `FIRE_DLC_IOT_DPTR_WDTH // Start of Address Field
478`define FIRE_DLC_IOT_ADDR_WDTH 62 // Width of Address Field
479`define FIRE_DLC_IOT_ADDR_MSB `FIRE_DLC_IOT_ADDR_LSB + `FIRE_DLC_IOT_ADDR_WDTH -1 // MSB of Address Field
480// ~~~~ addr field access ~~~~
481`define FIRE_DLC_IOT_ADDR `FIRE_DLC_IOT_ADDR_MSB:`FIRE_DLC_IOT_ADDR_LSB
482
483`define FIRE_DLC_IOT_DATA_LSB `FIRE_DLC_IOT_ADDR_LSB + `FIRE_DLC_IOT_ADDR_WDTH // Start of Data Field
484`define FIRE_DLC_IOT_DATA_WDTH 8 // Width of Data Field
485`define FIRE_DLC_IOT_DATA_MSB `FIRE_DLC_IOT_DATA_LSB + `FIRE_DLC_IOT_DATA_WDTH -1 // MSB of Data Field
486// ~~~~ data field access ~~~~
487`define FIRE_DLC_IOT_DATA `FIRE_DLC_IOT_DATA_MSB:`FIRE_DLC_IOT_DATA_LSB
488
489`define FIRE_DLC_IOT_TLPTAG_LSB `FIRE_DLC_IOT_DATA_LSB + `FIRE_DLC_IOT_DATA_WDTH // Start of TLP Tag Field
490`define FIRE_DLC_IOT_TLPTAG_WDTH 8 // Width of TLP Tag Field
491`define FIRE_DLC_IOT_TLPTAG_MSB `FIRE_DLC_IOT_TLPTAG_LSB + `FIRE_DLC_IOT_TLPTAG_WDTH -1 // MSB of TLP Tag Field
492
493`define FIRE_DLC_IOT_REQID_LSB `FIRE_DLC_IOT_TLPTAG_LSB + `FIRE_DLC_IOT_TLPTAG_WDTH // Start of REQ ID Field
494`define FIRE_DLC_IOT_REQID_WDTH 16 // Width of REQ ID Field
495`define FIRE_DLC_IOT_REQID_MSB `FIRE_DLC_IOT_REQID_LSB + `FIRE_DLC_IOT_REQID_WDTH -1 // MSB of REQ ID Field
496// ~~~~ reqid field access ~~~~
497`define FIRE_DLC_IOT_REQID `FIRE_DLC_IOT_REQID_MSB:`FIRE_DLC_IOT_REQID_LSB
498
499`define FIRE_DLC_IOT_LEN_LSB `FIRE_DLC_IOT_REQID_LSB + `FIRE_DLC_IOT_REQID_WDTH // Start of Length Field
500`define FIRE_DLC_IOT_LEN_WDTH 10 // Width of Length Field
501`define FIRE_DLC_IOT_LEN_MSB `FIRE_DLC_IOT_LEN_LSB + `FIRE_DLC_IOT_LEN_WDTH -1 // MSB of Length Field
502// ~~~~ reqid field access ~~~~
503`define FIRE_DLC_IOT_LEN `FIRE_DLC_IOT_LEN_MSB:`FIRE_DLC_IOT_LEN_LSB
504
505`define FIRE_DLC_IOT_ATR_LSB `FIRE_DLC_IOT_LEN_LSB + `FIRE_DLC_IOT_LEN_WDTH // Start of Attribute Field
506`define FIRE_DLC_IOT_ATR_WDTH 2 // Width of Attribute Field
507`define FIRE_DLC_IOT_ATR_MSB `FIRE_DLC_IOT_ATR_LSB + `FIRE_DLC_IOT_ATR_WDTH -1 // MSB of Attribute Field
508
509`define FIRE_DLC_IOT_TC_LSB `FIRE_DLC_IOT_ATR_LSB + `FIRE_DLC_IOT_ATR_WDTH // Start of TC Field
510`define FIRE_DLC_IOT_TC_WDTH 3 // Width of TC Field
511`define FIRE_DLC_IOT_TC_MSB `FIRE_DLC_IOT_TC_LSB + `FIRE_DLC_IOT_TC_WDTH -1 // MSB of TC Field
512
513`define FIRE_DLC_IOT_TYPE_LSB `FIRE_DLC_IOT_TC_LSB + `FIRE_DLC_IOT_TC_WDTH // Start of Type Field
514`define FIRE_DLC_IOT_TYPE_WDTH 7 // Width of Type Field
515`define FIRE_DLC_IOT_TYPE_MSB `FIRE_DLC_IOT_TYPE_LSB + `FIRE_DLC_IOT_TYPE_WDTH -1 // MSB of Type Field
516// ~~~~ type field access ~~~~
517`define FIRE_DLC_IOT_TYPE `FIRE_DLC_IOT_TYPE_MSB:`FIRE_DLC_IOT_TYPE_LSB
518
519`define FIRE_DLC_IOT_REC_WDTH `FIRE_DLC_IOT_TYPE_LSB + `FIRE_DLC_IOT_TYPE_WDTH // Complete Record With
520
521//#############################
522// MONDO REQUEST RECORD (MQR)
523// From IMU to LRM
524//#############################
525
526`define FIRE_DLC_MQR_ID_LSB 0 // Start of ID Field
527`define FIRE_DLC_MQR_ID_WDTH 2 // Width of ID Field
528`define FIRE_DLC_MQR_ID_MSB `FIRE_DLC_MQR_ID_LSB + `FIRE_DLC_MQR_ID_WDTH -1 // MSB of ID Field
529
530`define FIRE_DLC_MQR_TID_LSB `FIRE_DLC_MQR_ID_LSB + `FIRE_DLC_MQR_ID_WDTH // Start of TID Field
531`define FIRE_DLC_MQR_TID_WDTH 5 // Width of TID Field
532`define FIRE_DLC_MQR_TID_MSB `FIRE_DLC_MQR_TID_LSB + `FIRE_DLC_MQR_TID_WDTH -1 // MSB of TID Field
533
534`define FIRE_DLC_MQR_INO_LSB `FIRE_DLC_MQR_TID_LSB + `FIRE_DLC_MQR_TID_WDTH // Start of INO Field
535`define FIRE_DLC_MQR_INO_WDTH 6 // Width of INO Field
536`define FIRE_DLC_MQR_INO_MSB `FIRE_DLC_MQR_INO_LSB + `FIRE_DLC_MQR_INO_WDTH -1 // MSB of INO Field
537
538`define FIRE_DLC_MQR_MODE_LSB `FIRE_DLC_MQR_INO_LSB + `FIRE_DLC_MQR_INO_WDTH // Start of MODE Field
539`define FIRE_DLC_MQR_MODE_WDTH 1 // Width of MODE Field
540`define FIRE_DLC_MQR_MODE_MSB `FIRE_DLC_MQR_MODE_LSB + `FIRE_DLC_MQR_MODE_WDTH -1 // MSB of MODE Field
541
542`define FIRE_DLC_MQR_REC_WDTH `FIRE_DLC_MQR_MODE_LSB + `FIRE_DLC_MQR_MODE_WDTH +1 // Complete Record With
543
544//#############################
545// MONDO REPLY RECORD (MRR)
546// From RRM to IMU
547//#############################
548
549`define FIRE_DLC_MRR_ACK_LSB 0 // Start of ACK Field
550`define FIRE_DLC_MRR_ACK_WDTH 1 // Width of ACK Field
551`define FIRE_DLC_MRR_ACK_MSB `FIRE_DLC_MRR_ACK_LSB + `FIRE_DLC_MRR_ACK_WDTH -1 // MSB of ACK Field
552
553`define FIRE_DLC_MRR_TAG_LSB `FIRE_DLC_MRR_ACK_LSB + `FIRE_DLC_MRR_ACK_WDTH // Start of Tag Field
554`define FIRE_DLC_MRR_TAG_WDTH 2 // Width of Tag Field
555`define FIRE_DLC_MRR_TAG_MSB `FIRE_DLC_MRR_TAG_LSB + `FIRE_DLC_MRR_TAG_WDTH -1 // MSB of Tag Field
556
557`define FIRE_DLC_MRR_REC_WDTH `FIRE_DLC_MRR_TAG_LSB + `FIRE_DLC_MRR_TAG_WDTH // Complete Record With
558
559//#############################
560// IMU's DMS DIU RAM RECORD (IRD)
561// From IMU's DMS to DIU
562//#############################
563
564`define FIRE_DLC_IRD_ADDR_WDTH 4 // Address width, to address 16 entries
565`define FIRE_DLC_IRD_DATA_WDTH 128 // Data width, 16 bytes
566`define FIRE_DLC_IRD_DPAR_WDTH 5 // Parity width 32 bit parity on data 1 bit for 16 bit bmask
567`define FIRE_DLC_IRD_BMASK_WDTH 16 // 16 bit bmask
568
569//#############################
570// TMU's DIM DIU RAM RECORD (TRD)
571// From TMU's DIM to DIU
572//#############################
573
574`define FIRE_DLC_TRD_ADDR_WDTH 8 // Address width, to address 128 entries DMA / 64 entries PIO 1 bit select
575`define FIRE_DLC_TRD_DATA_WDTH 128 // Data width, 16 bytes
576`define FIRE_DLC_TRD_DPAR_WDTH 5 // Parity width 32 bit parity on data 1 bit for 16 bit bmask
577`define FIRE_DLC_TRD_BMASK_WDTH 16 // 16 bit bmask
578
579//#############################
580// CLU's CTM DIU RAM RECORD (CRD)
581// From CLU's CTM to DIU
582//#############################
583
584`define FIRE_DLC_CRD_ADDR_WDTH 9 // Address width, to address 128 entries DMA / 64 entries PIO / 16 entries INT 2 bit select
585
586// from DIU to CLU's CTM
587`define FIRE_DLC_CRD_DATA_WDTH 128 // Data with, 16 bytes
588`define FIRE_DLC_CRD_DPAR_WDTH 5 // Parity width 32 bit parity on data 1 bit for 16 bit bmask
589`define FIRE_DLC_CRD_BMASK_WDTH 16 // 16 bit bmask
590
591//#############################
592// CLU's CRM DOU DMA RAM RECORD (CDD)
593// From CLU's CRM to DOU
594//#############################
595
596`define FIRE_DLC_CDD_ADDR_WDTH 7 // Address width, to address 128 entries DMA
597`define FIRE_DLC_CDD_DATA_WDTH 128 // Data width, 16 bytes
598`define FIRE_DLC_CDD_DPAR_WDTH 4 // Parity width 32 bit parity on data
599
600//#############################
601// CLU's CRM DOU PIO RAM RECORD (CPD)
602// From CLU's CRM to DOU
603//#############################
604
605`define FIRE_DLC_CPD_ADDR_WDTH 6 // Address width, to address 64 entries PIO
606`define FIRE_DLC_CPD_DATA_WDTH 128 // Data width, 16 bytes
607`define FIRE_DLC_CPD_DPAR_WDTH 4 // Parity width 32 bit parity on data
608
609//#############################
610// ILU's EIL DOU RAM RECORD (ERD)
611// From ILU's EIL to DOU
612//#############################
613
614`define FIRE_DLC_ERD_ADDR_WDTH 8 // Address width, to address 128 entries DMA / 64 entries PIO
615
616//#############################
617// From DOU to ILU's EIL
618//#############################
619
620`define FIRE_DLC_ERD_DATA_WDTH 128 // Data width, 16 bytes
621`define FIRE_DLC_ERD_DPAR_WDTH 4 // Parity width 32 bit parity on data
622
623//#############################
624// Ingress Data Path TMU-ILU (ITI)
625//#############################
626
627`define FIRE_DLC_ITI_ADDR_WDTH 8 // Address width, to IDB
628`define FIRE_DLC_ITI_DATA_WDTH 128 // Data width, 16 bytes
629`define FIRE_DLC_ITI_DPAR_WDTH 4 // Parity width 32 bit parity on data
630
631//#############################
632// Ingress MPS width from ILU to CMU
633//#############################
634
635`define FIRE_DLC_MPS 3 // max. payload size
636
637//#############################
638// PSB RECORD (PSR)
639// From PMU and CLU to PSB
640//#############################
641
642`define FIRE_DLC_PSR_CMD_TYPE_LSB 0 // LSB of Command Type Field
643`define FIRE_DLC_PSR_CMD_TYPE_WDTH 4 // Command Type Width
644`define FIRE_DLC_PSR_CMD_TYPE_MSB `FIRE_DLC_PSR_CMD_TYPE_LSB + `FIRE_DLC_PSR_CMD_TYPE_WDTH-1 // MSB of Command Type Field
645
646`define FIRE_DLC_PSR_TRN_LSB 0 // LSB of PKTAG Field
647`define FIRE_DLC_PSR_TRN_WDTH 5 // PKTAG Width
648`define FIRE_DLC_PSR_TRN_MSB `FIRE_DLC_PSR_TRN_LSB + `FIRE_DLC_PSR_TRN_WDTH -1 // MSB of PKTAG Field
649
650// DMA READ, DMA WRITE
651
652`define FIRE_DLC_PSR_BYTECNT_LSB 0
653`define FIRE_DLC_PSR_BYTECNT_WDTH 12 // BYTE COUNT Width
654`define FIRE_DLC_PSR_BYTECNT_MSB `FIRE_DLC_PSR_BYTECNT_LSB + `FIRE_DLC_PSR_BYTECNT_WDTH -1 // MSB of BYTE COUNT Field
655// ~~~~ bytecount field access ~~~~
656`define FIRE_DLC_PSR_BYTECNT `FIRE_DLC_PSR_BYTECNT_MSB:`FIRE_DLC_PSR_BYTECNT_LSB
657
658`define FIRE_DLC_PSR_LENGTH_LSB `FIRE_DLC_PSR_BYTECNT_LSB + `FIRE_DLC_PSR_BYTECNT_WDTH // LSB of LENGTH Field
659`define FIRE_DLC_PSR_LENGTH_WDTH 10 // LENGTH Width
660`define FIRE_DLC_PSR_LENGTH_MSB `FIRE_DLC_PSR_LENGTH_LSB + `FIRE_DLC_PSR_LENGTH_WDTH -1 // MSB of LENGTH Field
661// ~~~~ length field access ~~~~
662`define FIRE_DLC_PSR_LENGTH `FIRE_DLC_PSR_LENGTH_MSB:`FIRE_DLC_PSR_LENGTH_LSB
663
664`define FIRE_DLC_PSR_CLTOT_LSB `FIRE_DLC_PSR_LENGTH_LSB + `FIRE_DLC_PSR_LENGTH_WDTH // LSB of CLTOT Field
665`define FIRE_DLC_PSR_CLTOT_WDTH 4 // CLTOT Width
666`define FIRE_DLC_PSR_CLTOT_MSB `FIRE_DLC_PSR_CLTOT_LSB + `FIRE_DLC_PSR_CLTOT_WDTH -1 // MSB of CLTOT Field
667// ~~~~ cl_total field access ~~~~
668`define FIRE_DLC_PSR_CLTOT `FIRE_DLC_PSR_CLTOT_MSB:`FIRE_DLC_PSR_CLTOT_LSB
669
670`define FIRE_DLC_PSR_PKSEQ_LSB `FIRE_DLC_PSR_CLTOT_LSB + `FIRE_DLC_PSR_CLTOT_WDTH // LSB of PKSEQ Field
671`define FIRE_DLC_PSR_PKSEQ_WDTH 5 // PKSEQ Width
672`define FIRE_DLC_PSR_PKSEQ_MSB `FIRE_DLC_PSR_PKSEQ_LSB + `FIRE_DLC_PSR_PKSEQ_WDTH -1 // MSB of PKSEQ Field
673// ~~~~ pkt_sequence field access ~~~~
674`define FIRE_DLC_PSR_PKSEQ `FIRE_DLC_PSR_PKSEQ_MSB:`FIRE_DLC_PSR_PKSEQ_LSB
675
676`define FIRE_DLC_PSR_CNTX_LSB `FIRE_DLC_PSR_PKSEQ_LSB + `FIRE_DLC_PSR_PKSEQ_WDTH // LSB of CNTX Field
677`define FIRE_DLC_PSR_CNTX_WDTH 5 // CNTX Width
678`define FIRE_DLC_PSR_CNTX_MSB `FIRE_DLC_PSR_CNTX_LSB + `FIRE_DLC_PSR_CNTX_WDTH -1 // MSB of CNTX Field
679// ~~~~ context_number field access ~~~~
680`define FIRE_DLC_PSR_CNTX `FIRE_DLC_PSR_CNTX_MSB:`FIRE_DLC_PSR_CNTX_LSB
681
682`define FIRE_DLC_PSR_TRTAG_LSB `FIRE_DLC_PSR_CNTX_LSB + `FIRE_DLC_PSR_CNTX_WDTH // LSB of TRTAG Field
683`define FIRE_DLC_PSR_TRTAG_WDTH 5 // TRTAG Width
684`define FIRE_DLC_PSR_TRTAG_MSB `FIRE_DLC_PSR_TRTAG_LSB + `FIRE_DLC_PSR_TRTAG_WDTH -1 // MSB of TRTAG Field
685// ~~~~ psb sbd tag field access ~~~~
686`define FIRE_DLC_PSR_TRTAG `FIRE_DLC_PSR_TRTAG_MSB:`FIRE_DLC_PSR_TRTAG_LSB
687
688`define FIRE_DLC_PSR_DMA_DATA_WDTH `FIRE_DLC_PSR_TRTAG_LSB + `FIRE_DLC_PSR_TRTAG_WDTH // DMA Read/Write Data width == 41
689
690
691// PIO READ, PIO WRITE
692//BP n2 5-24-04
693//`define FIRE_DLC_PSR_TRANSID_LSB 0 // LSB of TRANSID Field
694//`define FIRE_DLC_PSR_TRANSID_WDTH 2 // TRANSIDS Width
695//`define FIRE_DLC_PSR_TRANSID_MSB `FIRE_DLC_PSR_TRANSID_LSB + `FIRE_DLC_PSR_TRANSID_WDTH -1 // MSB of TRANSID Field
696
697//`define FIRE_DLC_PSR_AGENTID_LSB `FIRE_DLC_PSR_TRANSID_LSB + `FIRE_DLC_PSR_TRANSID_WDTH //
698//`define FIRE_DLC_PSR_AGENTID_WDTH 4 // AGENTID Width
699//`define FIRE_DLC_PSR_AGENTID_MSB `FIRE_DLC_PSR_AGENTID_LSB + `FIRE_DLC_PSR_AGENTID_WDTH -1 //
700
701`define FIRE_DLC_PSR_THRDID_LSB 0 //
702`define FIRE_DLC_PSR_THRDID_WDTH 7 // THRDID Width
703`define FIRE_DLC_PSR_THRDID_MSB `FIRE_DLC_PSR_THRDID_LSB + `FIRE_DLC_PSR_THRDID_WDTH -1 //
704
705//`define FIRE_DLC_PSR_PIO_DATA_WDTH `FIRE_DLC_PSR_AGENTID_LSB + `FIRE_DLC_PSR_AGENTID_WDTH // PIO Read/Write Data width == 6
706`define FIRE_DLC_PSR_PIO_DATA_WDTH `FIRE_DLC_PSR_THRDID_LSB + `FIRE_DLC_PSR_THRDID_WDTH // PIO Read/Write Data width == 7
707
708//#############################
709// TSB RECORD (TSR)
710// From RMU to TSB
711//#############################
712
713`define FIRE_DLC_TSR_CMD_TYPE_LSB 0 // LSB of COMMAND TYPE
714`define FIRE_DLC_TSR_CMD_TYPE_WDTH 4 // COMMAND TYPE Width
715`define FIRE_DLC_TSR_CMD_TYPE_MSB `FIRE_DLC_TSR_CMD_TYPE_LSB + `FIRE_DLC_TSR_CMD_TYPE_WDTH -1 // MSB of COMMAND TYPE
716
717`define FIRE_DLC_TSR_TRN_LSB 0 // LSB of TRN Field
718`define FIRE_DLC_TSR_TRN_WDTH 5 // TRN Width
719`define FIRE_DLC_TSR_TRN_MSB `FIRE_DLC_TSR_TRN_LSB + `FIRE_DLC_TSR_TRN_WDTH -1 // LSB of TRN Field
720
721
722`define FIRE_DLC_TSR_ADALIGN_LSB 0 // LSB of ADDRESS ALIGN Field
723`define FIRE_DLC_TSR_ADALIGN_WDTH 7 // ADDRESS ALIGN Width
724`define FIRE_DLC_TSR_ADALIGN_MSB `FIRE_DLC_TSR_ADALIGN_LSB + `FIRE_DLC_TSR_ADALIGN_WDTH -1 // MSB of ADDRESS ALIGN Field
725// ~~~~~ ADALIGN field access ~~~~~
726`define FIRE_DLC_TSR_ADALIGN `FIRE_DLC_TSR_ADALIGN_MSB:`FIRE_DLC_TSR_ADALIGN_LSB
727
728`define FIRE_DLC_TSR_TLPTAG_LSB `FIRE_DLC_TSR_ADALIGN_LSB + `FIRE_DLC_TSR_ADALIGN_WDTH // LSB of TLP TAG Field
729`define FIRE_DLC_TSR_TLPTAG_WDTH 8 // TLP TAG Width
730`define FIRE_DLC_TSR_TLPTAG_MSB `FIRE_DLC_TSR_TLPTAG_LSB + `FIRE_DLC_TSR_TLPTAG_WDTH -1 // MSB of TLP TAG Field
731// ~~~~~ TLPTAG field access ~~~~~
732`define FIRE_DLC_TSR_TLPTAG `FIRE_DLC_TSR_TLPTAG_MSB:`FIRE_DLC_TSR_TLPTAG_LSB
733
734`define FIRE_DLC_TSR_REQID_LSB `FIRE_DLC_TSR_TLPTAG_LSB + `FIRE_DLC_TSR_TLPTAG_WDTH // LSB of REQUEST ID Field
735`define FIRE_DLC_TSR_REQID_WDTH 16 // REQUEST ID Width
736`define FIRE_DLC_TSR_REQID_MSB `FIRE_DLC_TSR_REQID_LSB + `FIRE_DLC_TSR_REQID_WDTH -1 // MSB of REQUEST ID Field
737// ~~~~~ REQID field access ~~~~~
738`define FIRE_DLC_TSR_REQID `FIRE_DLC_TSR_REQID_MSB:`FIRE_DLC_TSR_REQID_LSB
739
740`define FIRE_DLC_TSR_BYTECNT_LSB `FIRE_DLC_TSR_REQID_LSB + `FIRE_DLC_TSR_REQID_WDTH // LSB of BYTE COUNT Field
741`define FIRE_DLC_TSR_BYTECNT_WDTH 12 // BYTE COUNT Width
742`define FIRE_DLC_TSR_BYTECNT_MSB `FIRE_DLC_TSR_BYTECNT_LSB + `FIRE_DLC_TSR_BYTECNT_WDTH -1 // MSB of BYTE COUNT Field
743// ~~~~~ BYTECNT field access ~~~~~
744`define FIRE_DLC_TSR_BYTECNT `FIRE_DLC_TSR_BYTECNT_MSB:`FIRE_DLC_TSR_BYTECNT_LSB
745
746`define FIRE_DLC_TSR_ATTR_LSB `FIRE_DLC_TSR_BYTECNT_LSB + `FIRE_DLC_TSR_BYTECNT_WDTH // LSB of ATTRIBUTE Field
747`define FIRE_DLC_TSR_ATTR_WDTH 2 // ATTRIBUTE Width
748`define FIRE_DLC_TSR_ATTR_MSB `FIRE_DLC_TSR_ATTR_LSB + `FIRE_DLC_TSR_ATTR_WDTH -1 // MSB of ATTRIBUTE Field
749// ~~~~~ ATTR field access ~~~~~
750`define FIRE_DLC_TSR_ATTR `FIRE_DLC_TSR_ATTR_MSB:`FIRE_DLC_TSR_ATTR_LSB
751
752`define FIRE_DLC_TSR_TC_LSB `FIRE_DLC_TSR_ATTR_LSB + `FIRE_DLC_TSR_ATTR_WDTH // LSB of TRAFFIC CLASS Field
753`define FIRE_DLC_TSR_TC_WDTH 3 // TRAFFIC CLASS Width
754`define FIRE_DLC_TSR_TC_MSB `FIRE_DLC_TSR_TC_LSB + `FIRE_DLC_TSR_TC_WDTH -1 // MSB of TRAFFIC CLASS Field
755// ~~~~~ TC field access ~~~~~
756`define FIRE_DLC_TSR_TC `FIRE_DLC_TSR_TC_MSB:`FIRE_DLC_TSR_TC_LSB
757
758`define FIRE_DLC_TSR_RD_DATA_WDTH `FIRE_DLC_TSR_TC_LSB + `FIRE_DLC_TSR_TC_WDTH // Read Data width == 48
759`define FIRE_DLC_TSR_WR_DATA_WDTH `FIRE_DLC_TSR_TC_LSB + `FIRE_DLC_TSR_TC_WDTH // Write Data width == 48
760
761//#############################
762// Ingress DIM Record (DIM)
763// From DIM to LRM
764//#############################
765
766`define FIRE_DLC_DIM_DPTR_LSB 0 // Start of DPTR Field
767`define FIRE_DLC_DIM_DPTR_WDTH 7 // Width of DPTR Field
768`define FIRE_DLC_DIM_DPTR_MSB `FIRE_DLC_DIM_DPTR_LSB + `FIRE_DLC_DIM_DPTR_WDTH -1 // MSB of DPTR Field
769
770`define FIRE_DLC_DIM_ADDR_LSB `FIRE_DLC_DIM_DPTR_LSB + `FIRE_DLC_DIM_DPTR_WDTH // Start of ADDR Field
771`define FIRE_DLC_DIM_ADDR_WDTH 62 // Width of ADDR Field
772`define FIRE_DLC_DIM_ADDR_MSB `FIRE_DLC_DIM_ADDR_LSB + `FIRE_DLC_DIM_ADDR_WDTH -1 // MSB of ADDR Field
773
774`define FIRE_DLC_DIM_FDWBE_LSB `FIRE_DLC_DIM_ADDR_LSB + `FIRE_DLC_DIM_ADDR_WDTH
775`define FIRE_DLC_DIM_FDWBE_WDTH 4
776`define FIRE_DLC_DIM_FDWBE_MSB `FIRE_DLC_DIM_FDWBE_LSB + `FIRE_DLC_DIM_FDWBE_WDTH -1
777
778`define FIRE_DLC_DIM_LDWBE_LSB `FIRE_DLC_DIM_FDWBE_LSB + `FIRE_DLC_DIM_FDWBE_WDTH // Start of Field
779`define FIRE_DLC_DIM_LDWBE_WDTH 4 // Width of Field
780`define FIRE_DLC_DIM_LDWBE_MSB `FIRE_DLC_DIM_LDWBE_LSB + `FIRE_DLC_DIM_LDWBE_WDTH -1 // MSB of Field
781
782`define FIRE_DLC_DIM_TAG_LSB `FIRE_DLC_DIM_LDWBE_LSB + `FIRE_DLC_DIM_LDWBE_WDTH // Start of Field
783`define FIRE_DLC_DIM_TAG_WDTH 8 // Width of Field
784`define FIRE_DLC_DIM_TAG_MSB `FIRE_DLC_DIM_TAG_LSB + `FIRE_DLC_DIM_TAG_WDTH -1 // MSB of Field
785
786`define FIRE_DLC_DIM_REQID_LSB `FIRE_DLC_DIM_TAG_LSB + `FIRE_DLC_DIM_TAG_WDTH // Start of Field
787`define FIRE_DLC_DIM_REQID_WDTH 16 // Width of Field
788`define FIRE_DLC_DIM_REQID_MSB `FIRE_DLC_DIM_REQID_LSB + `FIRE_DLC_DIM_REQID_WDTH -1 // MSB of Field
789
790`define FIRE_DLC_DIM_LEN_LSB `FIRE_DLC_DIM_REQID_LSB + `FIRE_DLC_DIM_REQID_WDTH // Start of Field
791`define FIRE_DLC_DIM_LEN_WDTH 10 // Width of Field
792`define FIRE_DLC_DIM_LEN_MSB `FIRE_DLC_DIM_LEN_LSB + `FIRE_DLC_DIM_LEN_WDTH -1 // MSB of Field
793
794`define FIRE_DLC_DIM_ATR_LSB `FIRE_DLC_DIM_LEN_LSB + `FIRE_DLC_DIM_LEN_WDTH // Start of Field
795`define FIRE_DLC_DIM_ATR_WDTH 2 // Width of Field
796`define FIRE_DLC_DIM_ATR_MSB `FIRE_DLC_DIM_ATR_LSB + `FIRE_DLC_DIM_ATR_WDTH -1 // MSB of Field
797
798`define FIRE_DLC_DIM_TC_LSB `FIRE_DLC_DIM_ATR_LSB + `FIRE_DLC_DIM_ATR_WDTH // Start of Field
799`define FIRE_DLC_DIM_TC_WDTH 3 // Width of Field
800`define FIRE_DLC_DIM_TC_MSB `FIRE_DLC_DIM_TC_LSB + `FIRE_DLC_DIM_TC_WDTH -1 // MSB of Field
801
802`define FIRE_DLC_DIM_TYPE_LSB `FIRE_DLC_DIM_TC_LSB + `FIRE_DLC_DIM_TC_WDTH // Start of Field
803`define FIRE_DLC_DIM_TYPE_WDTH 7 // Width of Field
804`define FIRE_DLC_DIM_TYPE_MSB `FIRE_DLC_DIM_TYPE_LSB + `FIRE_DLC_DIM_TYPE_WDTH -1 // MSB of Field
805
806`define FIRE_DLC_DIM_REC_WDTH `FIRE_DLC_DIM_TYPE_LSB + `FIRE_DLC_DIM_TYPE_WDTH // Complete Record With
807
808//#############################
809// Egress RRM Record (RRM)
810// From RRM to DEM
811//#############################
812
813`define FIRE_DLC_RRM_DPTR_LSB 0 // Start of Field
814`define FIRE_DLC_RRM_DPTR_WDTH 6 // Width of Field
815`define FIRE_DLC_RRM_DPTR_MSB `FIRE_DLC_RRM_DPTR_LSB + `FIRE_DLC_RRM_DPTR_WDTH -1 // MSB of Field
816
817`define FIRE_DLC_RRM_TAG_LSB `FIRE_DLC_RRM_DPTR_LSB + `FIRE_DLC_RRM_DPTR_WDTH // Start of Field
818`define FIRE_DLC_RRM_TAG_WDTH 8 // Width of Field
819`define FIRE_DLC_RRM_TAG_MSB `FIRE_DLC_RRM_TAG_LSB + `FIRE_DLC_RRM_TAG_WDTH -1 // MSB of Field
820
821`define FIRE_DLC_RRM_ADDR_LSB `FIRE_DLC_RRM_TAG_LSB + `FIRE_DLC_RRM_TAG_WDTH // Start of Field
822`define FIRE_DLC_RRM_ADDR_WDTH 34 // Width of Field
823`define FIRE_DLC_RRM_ADDR_MSB `FIRE_DLC_RRM_ADDR_LSB + `FIRE_DLC_RRM_ADDR_WDTH -1 // MSB of Field
824
825`define FIRE_DLC_RRM_FDWBE_LSB `FIRE_DLC_RRM_ADDR_LSB + `FIRE_DLC_RRM_ADDR_WDTH // Start of Field
826`define FIRE_DLC_RRM_FDWBE_WDTH 4 // Width of Field
827`define FIRE_DLC_RRM_FDWBE_MSB `FIRE_DLC_RRM_FDWBE_LSB + `FIRE_DLC_RRM_FDWBE_WDTH -1 // MSB of Field
828
829`define FIRE_DLC_RRM_LDWBE_LSB `FIRE_DLC_RRM_FDWBE_LSB + `FIRE_DLC_RRM_FDWBE_WDTH // Start of Field
830`define FIRE_DLC_RRM_LDWBE_WDTH 4 // Width of Field
831`define FIRE_DLC_RRM_LDWBE_MSB `FIRE_DLC_RRM_LDWBE_LSB + `FIRE_DLC_RRM_LDWBE_WDTH -1 // MSB of Field
832
833`define FIRE_DLC_RRM_REQID_LSB `FIRE_DLC_RRM_LDWBE_LSB + `FIRE_DLC_RRM_LDWBE_WDTH // Start of Field
834`define FIRE_DLC_RRM_REQID_WDTH 16 // Width of Field
835`define FIRE_DLC_RRM_REQID_MSB `FIRE_DLC_RRM_REQID_LSB + `FIRE_DLC_RRM_REQID_WDTH -1 // MSB of Field
836
837`define FIRE_DLC_RRM_LEN_LSB `FIRE_DLC_RRM_REQID_LSB + `FIRE_DLC_RRM_REQID_WDTH // Start of Field
838`define FIRE_DLC_RRM_LEN_WDTH 10 // Width of Field
839`define FIRE_DLC_RRM_LEN_MSB `FIRE_DLC_RRM_LEN_LSB + `FIRE_DLC_RRM_LEN_WDTH -1 // MSB of Field
840
841`define FIRE_DLC_RRM_ATR_LSB `FIRE_DLC_RRM_LEN_LSB + `FIRE_DLC_RRM_LEN_WDTH // Start of Field
842`define FIRE_DLC_RRM_ATR_WDTH 2 // Width of Field
843`define FIRE_DLC_RRM_ATR_MSB `FIRE_DLC_RRM_ATR_LSB + `FIRE_DLC_RRM_ATR_WDTH -1 // MSB of Field
844
845`define FIRE_DLC_RRM_TC_LSB `FIRE_DLC_RRM_ATR_LSB + `FIRE_DLC_RRM_ATR_WDTH // Start of Field
846`define FIRE_DLC_RRM_TC_WDTH 3 // Width of Field
847`define FIRE_DLC_RRM_TC_MSB `FIRE_DLC_RRM_TC_LSB + `FIRE_DLC_RRM_TC_WDTH -1 // MSB of Field
848
849`define FIRE_DLC_RRM_TYPE_LSB `FIRE_DLC_RRM_TC_LSB + `FIRE_DLC_RRM_TC_WDTH // Start of Field
850`define FIRE_DLC_RRM_TYPE_WDTH 7 // Width of Field
851`define FIRE_DLC_RRM_TYPE_MSB `FIRE_DLC_RRM_TYPE_LSB + `FIRE_DLC_RRM_TYPE_WDTH -1 // MSB of Field
852
853`define FIRE_DLC_RRM_REC_WDTH `FIRE_DLC_RRM_TYPE_LSB + `FIRE_DLC_RRM_TYPE_WDTH // Complete Record With
854
855//#############################
856// Ingress PEC Record (IPE)
857// From IIL to DIM
858//#############################
859
860`define FIRE_DLC_IPE_ADDR_LSB 0
861`define FIRE_DLC_IPE_ADDR_WDTH 62 // Width of Field
862`define FIRE_DLC_IPE_ADDR_MSB `FIRE_DLC_IPE_ADDR_LSB + `FIRE_DLC_IPE_ADDR_WDTH -1 // MSB of Field
863
864`define FIRE_DLC_IPE_FDWBE_LSB `FIRE_DLC_IPE_ADDR_LSB + `FIRE_DLC_IPE_ADDR_WDTH // Start of Field
865`define FIRE_DLC_IPE_FDWBE_WDTH 4 // Width of Field
866`define FIRE_DLC_IPE_FDWBE_MSB `FIRE_DLC_IPE_FDWBE_LSB + `FIRE_DLC_IPE_FDWBE_WDTH -1 // MSB of Field
867
868`define FIRE_DLC_IPE_LDWBE_LSB `FIRE_DLC_IPE_FDWBE_LSB + `FIRE_DLC_IPE_FDWBE_WDTH // Start of Field
869`define FIRE_DLC_IPE_LDWBE_WDTH 4 // Width of Field
870`define FIRE_DLC_IPE_LDWBE_MSB `FIRE_DLC_IPE_LDWBE_LSB + `FIRE_DLC_IPE_LDWBE_WDTH -1 // MSB of Field
871
872`define FIRE_DLC_IPE_TAG_LSB `FIRE_DLC_IPE_LDWBE_LSB + `FIRE_DLC_IPE_LDWBE_WDTH // Start of Field
873`define FIRE_DLC_IPE_TAG_WDTH 8 // Width of Field
874`define FIRE_DLC_IPE_TAG_MSB `FIRE_DLC_IPE_TAG_LSB + `FIRE_DLC_IPE_TAG_WDTH -1 // MSB of Field
875
876`define FIRE_DLC_IPE_REQID_LSB `FIRE_DLC_IPE_TAG_LSB + `FIRE_DLC_IPE_TAG_WDTH // Start of Field
877`define FIRE_DLC_IPE_REQID_WDTH 16 // Width of Field
878`define FIRE_DLC_IPE_REQID_MSB `FIRE_DLC_IPE_REQID_LSB + `FIRE_DLC_IPE_REQID_WDTH -1 // MSB of Field
879
880`define FIRE_DLC_IPE_LEN_LSB `FIRE_DLC_IPE_REQID_LSB + `FIRE_DLC_IPE_REQID_WDTH // Start of Field
881`define FIRE_DLC_IPE_LEN_WDTH 10 // Width of Field
882`define FIRE_DLC_IPE_LEN_MSB `FIRE_DLC_IPE_LEN_LSB + `FIRE_DLC_IPE_LEN_WDTH -1 // MSB of Field
883
884`define FIRE_DLC_IPE_ATR_LSB `FIRE_DLC_IPE_LEN_LSB + `FIRE_DLC_IPE_LEN_WDTH // Start of Field
885`define FIRE_DLC_IPE_ATR_WDTH 2 // Width of Field
886`define FIRE_DLC_IPE_ATR_MSB `FIRE_DLC_IPE_ATR_LSB + `FIRE_DLC_IPE_ATR_WDTH -1 // MSB of Field
887
888`define FIRE_DLC_IPE_TC_LSB `FIRE_DLC_IPE_ATR_LSB + `FIRE_DLC_IPE_ATR_WDTH // Start of Field
889`define FIRE_DLC_IPE_TC_WDTH 3 // Width of Field
890`define FIRE_DLC_IPE_TC_MSB `FIRE_DLC_IPE_TC_LSB + `FIRE_DLC_IPE_TC_WDTH -1 // MSB of Field
891
892`define FIRE_DLC_IPE_TYPE_LSB `FIRE_DLC_IPE_TC_LSB + `FIRE_DLC_IPE_TC_WDTH // Start of Field
893`define FIRE_DLC_IPE_TYPE_WDTH 5 // Width of Field
894`define FIRE_DLC_IPE_TYPE_MSB `FIRE_DLC_IPE_TYPE_LSB + `FIRE_DLC_IPE_TYPE_WDTH -1 // MSB of Field
895
896`define FIRE_DLC_IPE_F_LSB `FIRE_DLC_IPE_TYPE_LSB + `FIRE_DLC_IPE_TYPE_WDTH // Start of Field
897`define FIRE_DLC_IPE_F_WDTH 2 // Width of Field
898`define FIRE_DLC_IPE_F_MSB `FIRE_DLC_IPE_F_LSB + `FIRE_DLC_IPE_F_WDTH -1 // MSB of Field
899
900`define FIRE_DLC_IPE_REC_WDTH `FIRE_DLC_IPE_F_LSB + `FIRE_DLC_IPE_F_WDTH // Complete Record With
901
902//#############################
903// Egress PEC Record (EPE)
904// From DEM to EIL
905//#############################
906
907`define FIRE_DLC_EPE_DPTR_LSB 0 // Start of Field
908`define FIRE_DLC_EPE_DPTR_WDTH 6 // Width of Field
909`define FIRE_DLC_EPE_DPTR_MSB `FIRE_DLC_EPE_DPTR_LSB + `FIRE_DLC_EPE_DPTR_WDTH -1 // MSB of Field
910
911`define FIRE_DLC_EPE_ADDR_LSB `FIRE_DLC_EPE_DPTR_LSB + `FIRE_DLC_EPE_DPTR_WDTH // Start of Field
912`define FIRE_DLC_EPE_ADDR_WDTH 64 // Width of Field
913`define FIRE_DLC_EPE_ADDR_MSB `FIRE_DLC_EPE_ADDR_LSB + `FIRE_DLC_EPE_ADDR_WDTH -1 // MSB of Field
914
915`define FIRE_DLC_EPE_FDWBE_LSB `FIRE_DLC_EPE_ADDR_LSB + `FIRE_DLC_EPE_ADDR_WDTH // Start of Field
916`define FIRE_DLC_EPE_FDWBE_WDTH 4 // Width of Field
917`define FIRE_DLC_EPE_FDWBE_MSB `FIRE_DLC_EPE_FDWBE_LSB + `FIRE_DLC_EPE_FDWBE_WDTH -1 // MSB of Field
918
919`define FIRE_DLC_EPE_LDWBE_LSB `FIRE_DLC_EPE_FDWBE_LSB + `FIRE_DLC_EPE_FDWBE_WDTH // Start of Field
920`define FIRE_DLC_EPE_LDWBE_WDTH 4 // Width of Field
921`define FIRE_DLC_EPE_LDWBE_MSB `FIRE_DLC_EPE_LDWBE_LSB + `FIRE_DLC_EPE_LDWBE_WDTH -1 // MSB of Field
922
923`define FIRE_DLC_EPE_TAG_LSB `FIRE_DLC_EPE_LDWBE_LSB + `FIRE_DLC_EPE_LDWBE_WDTH // Start of Field
924`define FIRE_DLC_EPE_TAG_WDTH 8 // Width of Field
925`define FIRE_DLC_EPE_TAG_MSB `FIRE_DLC_EPE_TAG_LSB + `FIRE_DLC_EPE_TAG_WDTH -1 // MSB of Field
926
927`define FIRE_DLC_EPE_REQID_LSB `FIRE_DLC_EPE_TAG_LSB + `FIRE_DLC_EPE_TAG_WDTH // Start of Field
928`define FIRE_DLC_EPE_REQID_WDTH 16 // Width of Field
929`define FIRE_DLC_EPE_REQID_MSB `FIRE_DLC_EPE_REQID_LSB + `FIRE_DLC_EPE_REQID_WDTH -1 // MSB of Field
930
931`define FIRE_DLC_EPE_LEN_LSB `FIRE_DLC_EPE_REQID_LSB + `FIRE_DLC_EPE_REQID_WDTH // Start of Field
932`define FIRE_DLC_EPE_LEN_WDTH 10 // Width of Field
933`define FIRE_DLC_EPE_LEN_MSB `FIRE_DLC_EPE_LEN_LSB + `FIRE_DLC_EPE_LEN_WDTH -1 // MSB of Field
934
935`define FIRE_DLC_EPE_ATR_LSB `FIRE_DLC_EPE_LEN_LSB + `FIRE_DLC_EPE_LEN_WDTH // Start of Field
936`define FIRE_DLC_EPE_ATR_WDTH 2 // Width of Field
937`define FIRE_DLC_EPE_ATR_MSB `FIRE_DLC_EPE_ATR_LSB + `FIRE_DLC_EPE_ATR_WDTH -1 // MSB of Field
938
939`define FIRE_DLC_EPE_TC_LSB `FIRE_DLC_EPE_ATR_LSB + `FIRE_DLC_EPE_ATR_WDTH // Start of Field
940`define FIRE_DLC_EPE_TC_WDTH 3 // Width of Field
941`define FIRE_DLC_EPE_TC_MSB `FIRE_DLC_EPE_TC_LSB + `FIRE_DLC_EPE_TC_WDTH -1 // MSB of Field
942
943`define FIRE_DLC_EPE_TYPE_LSB `FIRE_DLC_EPE_TC_LSB + `FIRE_DLC_EPE_TC_WDTH // Start of Field
944`define FIRE_DLC_EPE_TYPE_WDTH 5 // Width of Field
945`define FIRE_DLC_EPE_TYPE_MSB `FIRE_DLC_EPE_TYPE_LSB + `FIRE_DLC_EPE_TYPE_WDTH -1 // MSB of Field
946
947`define FIRE_DLC_EPE_F_LSB `FIRE_DLC_EPE_TYPE_LSB + `FIRE_DLC_EPE_TYPE_WDTH // Start of Field
948`define FIRE_DLC_EPE_F_WDTH 2 // Width of Field
949`define FIRE_DLC_EPE_F_MSB `FIRE_DLC_EPE_F_LSB + `FIRE_DLC_EPE_F_WDTH -1 // MSB of Field
950
951`define FIRE_DLC_EPE_REC_WDTH `FIRE_DLC_EPE_F_LSB + `FIRE_DLC_EPE_F_WDTH // Complete Record With
952
953//#############################
954// Ingress (Upbound) Release Record (URR)
955// From DIM to IIL
956//#############################
957
958`define FIRE_DLC_URR_DPTR_LSB 0 // Start of Field
959`define FIRE_DLC_URR_DPTR_WDTH 8 // Width of Field
960`define FIRE_DLC_URR_DPTR_MSB `FIRE_DLC_URR_DPTR_LSB + `FIRE_DLC_URR_DPTR_WDTH -1 // MSB of Field
961
962`define FIRE_DLC_URR_TYPE_LSB `FIRE_DLC_URR_DPTR_LSB + `FIRE_DLC_URR_DPTR_WDTH // Start of Field
963`define FIRE_DLC_URR_TYPE_WDTH 1 // Width of Field
964`define FIRE_DLC_URR_TYPE_MSB `FIRE_DLC_URR_TYPE_LSB + `FIRE_DLC_URR_TYPE_WDTH -1 // MSB of Field
965
966`define FIRE_DLC_URR_REC_WDTH `FIRE_DLC_URR_TYPE_LSB + `FIRE_DLC_URR_TYPE_WDTH
967
968//#############################
969// Egress (Downbound) Release Record (DRR)
970// From EIL to RRM
971//#############################
972
973`define FIRE_DLC_DRR_DPTR_LSB 0 // Start of Field
974`define FIRE_DLC_DRR_DPTR_WDTH 8 // Width of Field
975`define FIRE_DLC_DRR_DPTR_MSB `FIRE_DLC_DRR_DPTR_LSB + `FIRE_DLC_DRR_DPTR_WDTH -1 // MSB of Field
976
977`define FIRE_DLC_DRR_TYPE_LSB `FIRE_DLC_DRR_DPTR_LSB + `FIRE_DLC_DRR_DPTR_WDTH // Start of Field
978`define FIRE_DLC_DRR_TYPE_WDTH 1 // Width of Field
979`define FIRE_DLC_DRR_TYPE_MSB `FIRE_DLC_DRR_TYPE_LSB + `FIRE_DLC_DRR_TYPE_WDTH -1 // MSB of Field
980
981`define FIRE_DLC_DRR_REC_WDTH `FIRE_DLC_DRR_TYPE_LSB + `FIRE_DLC_DRR_TYPE_WDTH
982
983//#############################
984// Ingress DIU Buffer Read/write Pointers
985// Between CLU to TMU
986//#############################
987
988`define FIRE_DLC_DMA_RPTR_WDTH 6
989`define FIRE_DLC_INT_RPTR_WDTH 5
990
991`define FIRE_DLC_DMA_WPTR_WDTH 6
992`define FIRE_DLC_PIO_WPTR_WDTH 5
993
994//#############################
995// Egress DOU Buffer Release
996// From RMU to CLU
997//#############################
998
999`define FIRE_DLC_DOU_REL_WDTH 5
1000
1001//#######################################
1002// Egress DOU DMA Read Completion Buffer
1003// Status Record Portion k2y_dou_dptr
1004// From CLU to ILU
1005//#######################################
1006
1007`define FIRE_DLC_DOU_DPTR_WDTH 5
1008`define FIRE_DLC_DOU_DPTR_DPTH 32
1009
1010
1011//#######################################
1012// Debug Ports
1013//
1014//#######################################
1015`define FIRE_DLC_DEBUG_SEL_WDTH 6
1016`define FIRE_DLC_DBG_SEL_BITS `FIRE_DLC_DEBUG_SEL_WDTH-1:0