Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Identifiers (IDs) in AXI protocol?

Status
Not open for further replies.

Ashish Agrawal

Member level 3
Joined
Mar 24, 2015
Messages
60
Helped
8
Reputation
16
Reaction score
8
Trophy points
8
Activity points
502
Hi Guys,

Can anyone tell me why IDs (AWID, ARID, WID, RID, BID) are used in AXI? What type of information is contained by this ID ? Can this ID be used to select the particular slave or only AWADDR/ARADDR are used to select slave? When we say a single master can generate 2 different IDs, does it mean that master wants 2 different types of transactions with 2 different slaves? On what basis interconnect appends the additional bits to ID field? How is it used by slaves?

Please try to explain by taking some examples.
 

IDs are basically used to denote transactions. So transaction1 has id 1, tran2 has id2 and so on..
 

I remember the spec mentioning it in terms of out of order replies so the master can determine which transaction reply goes with which transaction it sent. This was done so a slave could take any length of time it required before responding but not hang the AXI bus while waiting for the transaction to finish.
 

Hi add-see,

Do you mean each transaction issued by the same master should have different IDs or that particular ID can be reused only after that transaction is completed?
But can a same master issue 2 transactions with 2 different IDs to the same slave (still don't know how the same slave will be selected for different IDs)?

It would be helpful if someone can tell me, what information is carried by this ID. Does it have only a transaction number or have some information about the master/slave device address as well?
 

Look in section A5.1 of the AMBA AXI and ACE Protocol Spec for how the AXI IDs are used. They have to do with the ordering models.

In a nutshell a master has a set of transaction channels (AWID, BID, ARID, and RID), which it uses when issuing a transaction to a slave device. There can be multiple IDs for each transaction channel corresponding to different slave devices (as they have their own transaction IDs) that may respond at different times out of order from how the master issued the transactions. This basically ends up forming a set of virtual channels that use a single AXI bus, and the transaction ordering to/from each device is independent of each other, but correctly ordered for each individual device.

Without cutting and pasting the pages in the spec, that's the extent of any explanation I'm giving.

If you are designing with AXI you should download the specification from: https://www.arm.com/products/system-ip/amba-specifications.php, you'll have to create a login on arm.com to download.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top