Figure 34: Requester Request Descriptor Format for All Other Messages
0
1
2
3
4
5
6
7
+0
0
1
2
3
4
5
6
7
+1
0
1
2
3
4
5
6
7
+2
0
1
2
3
4
5
6
7
+3
0
1
2
3
4
5
6
7
+4
0
1
2
3
4
5
6
7
+5
0
1
2
3
4
5
6
7
+6
0
1
2
3
4
5
6
7
+7
Dword Count
0
1
2
3
4
5
6
7
+8
0
1
2
3
4
5
6
7
+9
0
1
2
3
4
5
6
7
+10
0
1
2
3
4
5
6
7
+11
Tag
0
1
2
3
4
5
6
7
+12
0
1
2
3
4
5
6
7
+13
0
1
2
3
4
5
6
7
+14
0
1
2
3
4
5
6
7
+15
Req Type
96
64
32
Msg Code
Message
Routing
TC
Attr
R
OBFF Code
(for OBFF message);
Reserved (for others)
No-Snoop Latency
(for LTR message);
Reserved (for others)
Snoop Latency
(for LTR message);
Reserved (for others)
R
Bus
Device
/
Function
Requester ID
0
127
63
DW + 0
DW + 1
DW + 2
DW + 3
Poisoned
Request
Requester ID Enable
Force ECRC
X16186-030217
Table 50: Requester Request Descriptor Fields
Bit Index
Field Name
Description
1:0
Address Type
This field is defined for memory transactions and Atomic Operations
only. The core copies this field into the AT of the TL header of the
request TLP.
•
00: Address in the request is un-translated
•
01: Transaction is a Translation Request
•
10: Address in the request is a translated address
•
11: Reserved
63:2
Address
This field applies to memory, I/O and Atomic Op requests. This is the
address of the first Dword referenced by the request. The user logic
must also set the First_BE and Last_BE bits in
s_axis_rq_tuser
to
indicate the valid bytes in the first and last Dwords, respectively.
When the transaction specifies a 32-bit address, bits [63:32] of this
field must be set to 0.
74:64
Dword Count
These 11 bits indicate the size of the block (in Dwords) to be read or
written (for messages, size of the message payload). Its range is 0 –
256 Dwords. For I/O accesses, the Dword count is always 1.
For a zero length memory read/write request, the Dword count must
be 1, with the
First_BE
bits set to all zeros.
The core does not check the setting of this field against the actual
length of the payload supplied (for requests with payload), nor
against the maximum payload size or read request size settings of
the core.
78:75
Request Type
Identifies the transaction type. The transaction types and their
encodings are listed in the following table.
79
Poisoned Request
This bit can be used by the user logic to poison the request TLP being
sent. This bit must be set to 0 for all requests, except when the user
logic has detected an error in the block of data following the
descriptor and wants to communicate this information using the
Data Poisoning feature of PCI Express.
Chapter 4: Designing with the Core
PG346 (v3.3) November 16, 2022
CPM Mode for PCI Express
159