Professional Documents
Culture Documents
Revision 1.0
LSI Confidential
All information provided herein is the copyright of LSI and is presented “AS IS”. All information is subject
to change.
AI Architecture Specification Revision 1.0
PREFACE
This document describes the functionality and signaling of the Address Indexed
interface.
Intended Audience
The intended audience includes ASIC Designers, ASIC Verification Engineers, Validation
Engineers, and Firmware Engineers.
Revision History
TABLE OF CONTENTS
PREFACE .................................................................................................................. 2
Intended Audience ............................................................................................... 2
Conventions used in this document ....................................................................... 2
Revision History ................................................................................................... 3
1 AI INTERFACE ..................................................................................................... 7
1.1 Data Alignment ............................................................................................. 7
1.2 RD Signals .................................................................................................... 8
1.2.1 Timing Diagram .................................................................................. 9
1.3 WR Signals ................................................................................................. 11
1.3.1 Timing Diagram ................................................................................ 12
LIST OF FIGURES
Figure 1-1 AI Data Alignment..................................................................................... 7
Figure 1-2 AI RD Connection Diagram ........................................................................ 8
Figure 1-3 AI RD Timing Diagram ............................................................................ 10
Figure 1-4 AI RD Timing Diagram ............................................................................ 10
Figure 1-5 AI WR Connection Diagram ..................................................................... 11
Figure 1-6 AI WR Timing Diagram ............................................................................ 13
Figure 2-1 AI Multi-Slave AI_RdData Connection Diagram ......................................... 14
LIST OF TABLES
Table 1-1 Revision History ......................................................................................... 3
Table 1-2 AI RD Signals............................................................................................. 8
Table 1-3 AI WR Signals .......................................................................................... 11
1 AI INTERFACE
AI is a 128-bit data and 32-bit address interface and has independent RD and WR
channels. Because of the channel independence, the RD and WR channels may be
active concurrently on the AI inteferface. The AI protocol allows throttling from the
slave to the master with the ability to stream data with no wait states. The AI protocol
involves presenting an address to the slave and the slave providing RD data or
accepting WR data. Once that request is accepted, the master will move to the next
request, that is, transition to the next address. Note, that a master’s transaction may
take one or more AI requests.
The master is allowed to present the address as is required to fulfill its current
transaction (i.e., master does not have to present addresses in any order). It is up to
the slave to process each AI request individually and not make any assumptions on the
current request based on past requests (i.e., the slave can’t assume the addresses are
coming in any specific order); it must provide data or accept data for the current
request (i.e., address).
32'hBEEF_BAD1 16'hFFFE V V V V V V V V V V V V V V V X
32'hBEEF_BADF 16'h8000 V X X X X X X X X X X X X X X X
32'hBEEF_BAD0 16'h000F X X X X X X X X X X X X V V V V
V = Valid Data Byte
X = Don't Care Byte (Can be any data,
including valid data)
1.2 RD Signals
The following signals will be used to perform RD requests on the AI interface.
AI_RdSel[N - 1:0]
AI_RdAddr[31:0]
AI_RdDone
AI_RdBe[15:0]
AI Master AI Slave
AI_RdRdy
AI_RdData[143:0]
AI_RdDataAck
AI_RdErr
AI_RdSel informs a slave that the AI_RdAddr presented is valid. AI_RdSel will be as
wide as needed to communicate with all slaves on the AI interface.
AI_RdAddr is the 32-bit byte address passed to the slave for the location of the data
requested. The value of AI_RdAddr is valid when the slave samples a high on
AI_RdSel. Refer to figure “AI Data Alignment”.
AI_RdDone informs the slave that the address presented is the last address needed to
fulfill the master’s RD transaction. This signal will be asserted concurrently with last
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
AI_RdSel
AI_RdAddr A B C D E F G0 H I J K0 L M N0
AI_RdBe A B C D E F G0 H I J K0 L M N0
AI_RdDone
AI_RdRdy
Latency – The initial latency is the amount of time it takes from when a master device asserts AI_RdSel for an address to when the master
device detects AI_RdRdy asserted. The slave device can insert wait states (hence, increase overall latency) in the data transfer by not
asserting AI_RdDataAck. For instance, the latency for data ‘A’ is 5 clocks and for ‘F’, 7 clocks.
AI_RdData O1 A B C D O1 E F H I J O1 L M O1
AI_RdDataAck
AI_RdErr
Data Read = A, B, C, D, E, F, H, I, J, L, M
Data Error = A, B, C, D, E, F, J, M
Note, that AI requests A-F, H-J, L, and M each constitute one transaction.
Note, AI_RdData is returned in the same order as addresses presented by master.
0
– Ignored, AI_RdSel not active
1
– O = {16'hFFFF,128'h0}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
AI_RdSel
AI_RdAddr A B0 C D0 E F0 G H0 I J0 K L0
AI_RdBe A B0 C D0 E F0 G H0 I J0 K L0
AI_RdDone
AI_RdRdy
AI_RdData O1 A C E O1 G O1 I O1 K O1
AI_RdDataAck
AI_RdErr
1.3 WR Signals
The following signals will be used to perform WR requests to the slave.
AI_WrSel[N - 1:0]
AI_WrAddr[31:0]
AI_WrDone
AI_WrBe[15:0]
AI Master AI Slave
Ai_WrData[143:0]
AI_WrRdy
AI_WrErr
AI_WrSel informs a slave that the WR context information (AI_WrAddr, AI_WrBE, and
AI_WrData) presented is valid. The AI_WrSel port will be as wide as needed to
communicate with all slaves on the AI interface
AI_WrAddr is the 32-bit byte address that is presented to the slave and is only valid
when AI_WrSel is sampled high by the slave. Refer to figure “AI Data Alignment”.
AI_WrDone informs the slave that the current WR data phase is the last data phase
for the transaction. Regardless of whether the WR transaction requires many requests
or just one request to be fulfilled, the assertion of this signal will indicate the currently
presented address is the last address for a WR transaction.
AI_WrBe is the byte-enables for the 16 byte data being presented to the slave and is
only valid when the AI_WrSel is sampled high by the slave.
AI_WrData is the 144-bit data port that is presented to the slave and is only valid
when the AI_WrSel is sampled high by the slave. The upper 16-bits are byte odd parity
bits and the lower 128-bits are the actual data bits. Anytime the master drives
AI_WrData, the master will also drive valid parity for all data byte lanes, regardless of
the byte enables.
AI_WrRdy informs the master that the slave is ready to accept valid WR context
information (AI_WrAddr, AI_WrBe, and AI_WrData) or it has accepted the valid WR
context information presented. This signal allows the slave to throttle masters on the
WR channel. If there was valid WR context information presented to the slave then the
master will transition to the next valid WR context information, if one exists, upon
sampling AI_WrRdy high. If the AI_WrRdy is sampled low then the master will have to
hold the valid WR context information until the slave indicates that the valid WR context
information presented was accepted, by sampling AI_WrRdy high. This signal should
be normally high from the slave to reduce latency, but is not prohibited from being
normally low.
AI_WrErr informs the master that the slave encountered an error with the particular
request. Normally, the signal will be driven low and should only be driven high to
indicate an error. This signal must be asserted during the request that caused the error.
Therefore, the signal must NOT be asserted before or after WR request has completed.
The signal may assert during all requests for a transaction or for any one particular
request anywhere in between, and including, the beginning and end of a transaction.
This signal is ONLY valid when a request is presented and AI_WrRdy is asserted.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
AI_WrSel
AI_WrAddr A B C D E F G0 H I J K0 L M N0
AI_WrData A B C D E F G0 H I J K0 L M N0
AI_WrBe A B C D E F G0 H I J K0 L M N0
AI_WrRdy
AI_WrDone
AI_WrErr
Data Written = A, B, C, D, E, F, H, I, J, L, M
Data Error = A, F, L
Note, that AI requests A-C, D-F, and H-L, and M each constitute one transaction.
0
– Ignored, AI_WrSel not active
2 IMPLEMENTATION GUIDE
Slaves that are not currently selected and not participating in the transfer will drive 0’s
for all outputs (except for parity and maybe AI_WrRdy and AI_RdRdy, which are driven
to 1’s). The master will receive all the “OR’d” and “AND’d” signals from all targets.
For instance, a target that is not providing read data will drive 128’h0 on AI_RdData
[127:0] and 16’hFFFF on AI_RdData [143:128] (i.e., parity). The master will receive
the “OR’d” AI_RdData [127:0] from all slaves and the “AND’d” AI_RdData [143:128]
from all slaves. See Figure 2-1. Note, Figure 2-1 only specifies how AI_RdData should
be “OR’d” and “AND’d” and sent back to the master. Other signals like AI_RdDataAck,
AI_RdErr, etc. will have to be “OR’d” in a similar fashion.
AI_RdSel[1:0] AI_RdSel[0]
AI_RdData[143:128]
AI Slave 0
AI_RdData[127:0]
AI_RdData[143:128]
AI Master
AI_RdData[127:0] AI_RdSel[1]
AI_RdData[143:128]
AI Slave 1
AI_RdData[127:0]