AXI
AXI
ISSN 2091-2730
Abstract The ARM (Advanced RISC Machine) has developed AMBA (Advanced Microcontroller Bus Architecture) bus protocol
which is widely used by System-on-Chip (SoC) designers. Systems-on-Chip are one of the biggest challenges engineers ever faced
which result a mix of microprocessor, memories, buses architectures, communication standards, protocol and interfaces.AMBA buses
act as the high-performance system backbone bus. It supports the efficient connection of processors, on-chip memories and off-chip
external memory interfaces. APB and AHB come under AMBA standard. ARM has come up with its latest on chip bus transfer bus
protocol, called AMBA AXI. AXI stands for Advanced Xtensible Interface.From a technology perspective, AMBA AXI (Advanced
eXtensible Interface) provides the means to perform low latency, high bandwidth on chip communication between multiple masters
and multiple slaves. Moving one stage further, from an implementationperspective, configurability and programmability are becoming
vital to ensuring IP can be tuned for a given application or project requirement.
Keywords: vhdl,fpga,digital design,protocol,axi,Xilinx,channel etc.
Introduction
Interconnect provides efficient connection between master (e.g. ARM processors, Direct Memory Access (DMA) or Digital Signal
Processor (DSP)) and slave (e.g. external memory interface, APB bridge and any internal memory).
The Interconnect is a highly configurable RTL component, which provides the entire infrastructure require to connect
number of AXI masters to a number of AXI slaves. This infrastructure is an integral part of an AXI-based system.
Architecture of interconnect is highly modular with each of the routers and associated control logic partitioned on a perchannel basis. It ensures, which bus master is allowed to initiate data transfers depending on highest priority or fair access.
As AXI provides many features such as out of order completion, interleaving; interconnect is responsible to take care of
interleaving and out of order. The block level RTL code is automatically configured from a system description file to specify no of
master, slave , width of address bus hence interconnect is implemented depending on the application requirements.
AXI Interconnect takes care of all 5 channels, using which data transfer between master and slave take place.
432
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
Features of Interconnect
The ACI features are:
It multiplexes and demultiplexes data and control information between connected masters and slaves
It enforces the AXI ordering rules that govern the flow of data and control information on different channels
OBJECTIVE
Design related TASKS
Design related tasks that were performed in the project are:
433
The Architecture of the design was thought by considering the specifications and then Block Diagram was prepared.
The Block Diagram was divided into sub- modules which are communicating with each other.
Block Diagram of 5 channels are made
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
SPECIFICATIONS
Design the AMBA AXI INERCONNECT for four Ports in which each port behave as AXI based master interfaces and slave
interfaces.
32 Bit Address Bus and 64 Bit Data Bus
Configurable Port Addresses (Slave size is configurable)
One outstanding transaction
Support all type of Burst Transaction (Wrap, INCR, Fixed)
Support Normal and Locked Operation
Support 200 MHz on VIRTEX 5
Following is the priority considered for masters :
Master0 > Master1 > Master2 > Master3
Read address channel: This channel gives information about Transaction ID for read operation, address of slave,
Burst length along with size and type, valid signal to indicate control information is valid and ready.
Write address channel: This channel gives information about Transaction ID for write operation, address of slave,
Burst length along with size and type, valid signal to indicate control information is valid and ready
Read data channel: This channel gives information about Transaction ID for read data, read data, read response
along with ready and valid signal
Write data channel: This channel gives information about Transaction ID for write data, write data with strobe
information ready and valid signal
Write response channel: This channel gives information about Transaction ID for write data, write response along
with ready and valid signal
Default slave is used when there is no fully decoded address map physically present. There can be address at
which there are no slave to respond to the transaction, then interconnect effectively routes the access to a default slave. As in
case of AXI protocol it is necessary that all transaction must be complete even there is any error.
434
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
ADDRESS CHANNEL
The address channel conveys address information along with control signal from master to the slave. AXI support different address
buses for write and read transfer, so that through put of the system is increased. Both channels (read/write) have same signals included
in the address channel.
The address channel includes address bus which is 32 bit, length of burst; it gives exact no of data transfer in burst, size of
transfer to indicate bytes in one burst, burst type which is WRAP, FIXED and INCR, lock information along with valid and ready
signals
Block diagram of address channel
Lw Lr
D
C
O
D
R
M0
OR
L
Ach_p0_Tx
M0_s0 M0_s0
M0_s1 M1_s0
M0_s2 M2_s0
M0_s3 M3_s0
M0_defL0
L1
L2
L3
P0
Lw Lr
OR
B L
SWCHG
CNTRL
For
Slave0
Salve
Select
(For
Data
Channel)
Busy
Lw/Lr
Ach_p2_Tx
B L
Master
Select_s2
SWCHG
CNTRL
For
Slave2
Salve
Select
(For Data
Channel)
Busy
Lock
END
R
E
G
Aready_P 0_Tx
Master
Select_s0
M0_s2
M1_s2
M2_s2
M3_s2
L0
L1
L2
L3
END
R
E
G
S0
Aready_P0_Rx
O
R
A
N
D
Master Select
O
R
M1
D
C
O
D
R
M1_s0 M0_s1
M1_s1 M1_s1
M1_s2 M2_s1
M1_s3 M3_s1
M1_defL0
L1
L2
L3
P1
B L
Master
Select_s0
SWCHG
CNTRL
For
Slave0
Salve
Select
(For
Data
Channel)
Busy
Lw/Lr
Master
Select_s2
Ach_p3_Tx
B L
SWCHG
CNTRL
For
Slave2
Salve
Select
(For Data
Channel)
Busy
Lock
M0_s3
M1_s3
M2_s3
M3_s3
L0
L1
L2
L3
END
END
R
E
G
Aready_P 1_Tx
R
E
G
S1
Master Select
A
N
D
Aready_P 3_Rx
Master Select
Aready_P 1_Rx
Ach_p1_Rx
O
R
E
N
B
L
E
N
B
L
O
R
435
www.ijergs.org
D
C
O
D
R
Aready_P 3_Tx
O
R
O
R
M3_s0
M3_s1
M3_s2
M3_s3
M3_def
Master Select
Master Select
A
N
D
Aready_P 2_Rx
Ach_p2_Rx
OR
L
OR
S2
Lw Lr
Lw Lr
Ach_p1_Tx
O
R
E
N
B
L
E
N
B
L
P2
Master Select
O
R
Master Select
Ach_p0_Rx
M2
Aready_P 2_Tx
Master Select
A
N
D
D
C
O
D
R
M2_s0
M2_s1
M2_s2
M2_s3
M2_def
Ach_p3_Tx
M3
P3
S3
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
When Master sends valid Address and control signal Slave Decoder decodes that address and generate output to indicate
request from master to slave.
Decoder has five output bits, each bit indicates request to particular slave S0, S1, S2, S3 and default slave.
Each decoder output is given to the each switching control unit as request.
S0 is given to switching control unit for slave0; S1 is to switching control unit for slave1 and so on.
Thus each switching control unit receives four request from four masters It gets request from each master for NORMAL and
LOCKED operation, depending on priority it will grant that slave to appropriate master.
Path select will enable granted master address channel other channel will remain disabled.
If the select signal is 1000 then master0 address channel is selected
If the select signal is 0100 then master1 address channel is selected
If the select signal is 0010 then master 2 address channel is selected
If the select signal is 0001 then master 3 address channel is selected
6.
7.
8. After receiving ready signal master de-asserts valid signal of address channel.
9. This switching control wont accept any further request for that slave till completion of transaction.
10. Switching control units output will remain in same state till End signal is received. Which indicates transaction is
completed.
For operation of address channel let us understand operation of each block in the channel with detail. Following points explain the
detailed functioning of Address channel interconnect
DECODER:
Decoder functions as an address decoder which generates control signals to enable or disable the channels to a particular slave
from particular master.
Decoder can receive the valid request (ARADDR [32] / AWADDR [32]) for read or write operation from any of the four
masters.
The decoder decodes the address by comparison to memory maps of slaves and generate control signals to enable master
request to the appropriate slave.
If the start address is 00000000 hex and end address is 00000fff then control signal enable the channel for S0 slave
436
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
If the start address is 00001000 hex and end address is 00001fff then control signal enable the channel for S1 slave
If the start address is 00002000 hex and end address is 00002fff then control signal enable the channel for S2 slave
If the start address is 00003000 hex and end address is 00003fff then control signal enable the channel for S3 slave.
If M0 wants to send the valid address and control information to the slave0 then Master0 will generate the address which
lies in the starting and end address of slave 0. Output of the decoder which is 5 bit signal will generate slave0 pin active high that is 1
and the rest of the bits for slave 1, slave 2 , slave3 and default slave is low that is zero .
The active high signal for slave 0 is connected to the switching control unit of slave 0.
Switching control
Switching control Description:
Switching control accepts requests form all four masters for normal or locked operation.M0L0 bits are for normal and locked
operation request from master0.
Similarly M1L1 bits are from master1, and so on.
Mx is active high bit, indicates request for slave from master x. It out put of slave decoder.
Lx bit indicates normal operation if it is 0 else locked operation.
Other inputs to switching control unit are Busy, Lock and End signal, Busy and Lock signals shows status of slave whether
its being accessed by other master.
End signal brings switching control unit to idle state on end of transaction.
Master select outputs used to select channels coming from mater to slave. I.e. address and write data channels.
Slave select outputs used to select channels coming from slave to master. i.e. Read data channel and write response channels.
READ DATA CHANNEL---------The read data channel conveys both the read data and read response information from the slave back to the master. The read data
channel includes:
data bus, which can be 8, 16, 32, 64, 128, 256, 512, or 1024 bits wide and read response indicating the completion status of the read
transaction.
Block diagram of Read data channel
Slave select
M0
PORT-0
O
R
A
N
D
Ena
ble
O
R
R
E
G
Slave select
Ena
ble
Rready
12 8 4 0
A
N
D
O
R
S0
R_END
A
N
D
R_END
M2
A
N
D
O
R
AND
AND
Rready0
R
E
G
O
R
O
R
PORT-2
S2
M1
PORT-1
R
E
G
A
N
D
Ena
ble
O
R
O
R
Ena
ble
Rready
13 9 5 1
O
R
S1
A
N
D
R_END
R_END
A
N
D
437
www.ijergs.org
M3
R
E
G
O
R
AND
AND
Rready0
O
R
O
R
A
N
D
PORT-3
S3
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
In read operation slave will send valid read data, this data is routed by switching control units output. Following points explain the
detailed functioning of read data channel interconnect
1.
The process starts when master sends an address and control information on the read address channel along with valid
information.
This address is decoded first to find which slave is to be access. Now signal will be given to the switching control logic of
particular slave. It generates appropriate enable signal to select particular masters path to that slave.
In the above case if select signal for slave 0 is generated by the arbiter then this select signal select particular master to read the
data from the slave 0.
2.
3.
4.
5.
6.
438
Enable module blocks the data to be unintentionally passing to the master from slave. As master has not given any request no
slave is selected and contains on the data bus is zero.
When master will assert Ready_M0 signal on bus at that time data from slave0 is accepted by master. This Ready_M0 signal is
first given to the AND block which will assert only that signal which is going to the slave0. At slave0 Ready_M1, Ready_M2,
Ready_M3 are also connected but as project support only one out standing transaction at a time only one READY signal is
high.
Slave internally calculates next address from the address specified by the master in the address channel. Data on that address
location is put by the slave on to the data bus along with valid signal to indicate that, there is valid data present.
Master will accept data when he will assert Ready_M0 signal high.
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
7.
This process proceeds until final transfer in the burst takes place. At the final transfer slave asserts the RLAST signal to show
that last data item is being transferred.
When RLAST signal appears on the line from slave along with RVALID and RREADY signal from same master,
are used to generate the R_END signal. This signal is given to the switching machine which will then reset all previous
output set by switching control logic block, as all Read data burst is transferred from slave to the master.
In the above case if slave0 is transferring data to master0 then path select will be 1000 to enable slave0s data
path.
At the RLAST signal from slave0 signal 0 will be active high which is OR with RVALID and result of this is
AND with RREADY signal of master0.
WRITE DATA CHANNEL-------------------The write data channel conveys write data information from the master to the slave. The write data channel includes data bus,
which can be 8, 16, 32, 64, 128, 256, 512, or 1024 bits wide and strobe indicating the valid byte lanes.
During the write burst, master can assert the WVALID signal only when it drives valid write data .WVALID must remain
asserted until the slave accepts the write data and asserts WREADY signal.
Write Strobe Signal, WSTRB enables data transfer on the write data bus. Each write strobe signal corresponds to one byte of
the write data bus. When asserted, a write strobe indicates that the corresponding byte lane of the data bus contains valid
information to be updated in memory. There is one write strobe for each eight bits of the write data bus.
A master must ensure that the write strobes are asserted only for byte lanes that can contain valid data as determined by the control
information for the transaction.
Block diagram of Write data channel
Wdata_P0_TX
Wdata_P2_TX
M0
M2
Wready_p0_t
x
PORT-0
Wready_p0_Rx
Master select
Master select
O
R
A
N
D
A
N
D
O
R
Wready_2p_t
x
Wready_2p_Rx
PORT-0
Master select
Master select
S0
O
R
Wdata_P0_RX
E
N
B
L
E
N
B
L
O
R
Wdata_P1_TX
Wdata_P3_TX
M1
M3
Wready_p0_t
x
PORT-0
Wready_p0_Rx
Master select
Master select
O
R
A
N
D
S1
O
R
Wdata_P1_RX
A
N
D
O
R
Master select
Master
select
439
S2
Wdata_P0_R
X
E
N
B
L
E
N
B
L
www.ijergs.org
Wready_2p_t
x
Wready_2p_R
PORT-0
x
O
R
S3
Wdata_P3_R
X
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
Following points explain the detailed functioning of write data channel interconnect:
In Write Data channel the master will write data to the slave.
The process starts when master sends an address and control information on the write address channel along with valid
information.
This address is decoded to find slave no. now signal will be given to the switching control logic for particular slave. It
generates appropriate signal to enable particular masters path to that slave. The select signal which is 4 bit is generated from
the SWITCHING CONTROL BLOCK. According to this select signal particular master and slave is selected in order to
write the data.
In the above case if select signal for slave 0 is generated by the arbiter then this select signal select particular master
to write the data to the slave 0.
440
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
R
E
G
M0
O
R
E
N
B
L
Rread
y
Bready_P0_R
x
Bready_P0_Tx
R
E
G
O
R
12 8 4 0
A
N
D
14 10 6
2
R_END
A
N
D
O
R
M2
Bready_P2_Tx
R_END
0
1
2
3
Bresp_P2_Rx
O
R
O
R
A
N
D
PORT-0
E
N
B
L
A
N
D
PORT-2
8
9
10
11
O
R
Bready_P2_R
x
S0
S2
Bresp_P0_Tx
Bresp_P2_Tx
Slave select (o/p of
SM -Switching
control)
Bresp_P1_Rx
R
E
G
M1
PORT-1
Rread
y
Bready_P1_R
x
Bready_P1_Tx
O
R
O
R
A
N
D
S1
Bresp_P3_Rx
E
N
B
L
E
N
B
L
O
R
4
5
6
7
13 9 5 1
15 11 7 3
R_END
O
R
A
N
D
R
E
G
O
R
N
D
R_END
A
N
D
M3
Bready_P3_R
x
A
O
R
PORT-3
12
13
14
15
Bready_P3_Tx
S3
Bresp_P1_Tx
Bresp_P3_Tx
Response channel is used for acknowledgement. Slave can assert signals on this channel to indicate status of transfer. Design of this
channel is same as that of read data channel (as both channel transfer data from slave to master) only signals are different.
In this operation slave will send response signal, which is routed by switching control units output. Following points
explain the detailed functioning of response channel interconnect
1.
When master sends an address and control information for write transfer after transferring all data response is send by the slave
i.e. after WLAST signal from master side.
2. When address is send then decoder in address channel will select slave and send request to switching control of particular slave.
Output generated by the switching control, are hold until response channel does not give W_END signal.
If master0 want to access slave0 then select signal for
slave 0 is generated by the arbiter. This select signal selects particular
slave for response of write transaction.
3.
Response channel signal from all the four slaves (Rresp_S0, Rresp_S1, Rresp_S2, Rresp_S3) may available at the master
ENABLE block, this enable block will select only that slave which is to be connected to the particular master.
Enable module blocks the response of other channel to be unintentionally passing to the master from slave. If master has not
given any request then no slave path going toward master is selected and output of this block is zero.
When master will assert BReady_M0 signal on bus at that time response signal from slave0 is accepted by master0. This
BReady_M0 signal is first given to the AND block which will assert only that signal which is going to the slave0. At slave0
www.ijergs.org
4.
5.
441
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
BReady_M1, BReady_M2, BReady_M3 are also connected but as project support only one out standing transaction at a time
only one BREADY signal will be high.
6. BVALID must remain asserted until the master accepts the write response and asserts BREADY. The default value of
BREADY can be HIGH, but only if the master can always accept
W_END signal generator block
BVALID and BREADY signal are used to generate the W_END signal. This signal is given to the switching
machine which will then reset all previous output set by switching control logic block, as all Write data burst is transferred
from master to the slave.
In the above case if slave0 is transferring response to master0 then path select will be 1000 to enable slave0s
response path.
BVALID signal from slave0 i.e. signal 0 will be active high which is AND with BREADY signal of master0.
DEFAULT SLAVE
With 5 channels, another important block of AXI interconnect is Default slave. When interconnect cannot
successfully decode a slave access (i.e. when slave is not present at Physical location specified by the master), it effectively routes
the access to a default slave, and the default slave returns the DECERR response.
Fig. shows waveform for write data transaction. Master sends address first, READY signal indicate that master can send
write data. After receiving last data from master slave gives response to indicate status of transfer.
The AXI protocol responses are:
OKAY
EXOKAY
SLVERR
DECERR
Decode error is generated typically by an interconnect component to indicate that there is no slave at the transaction address. AXI
protocol requires that, all data transfers in a transaction should be completed, even if an error condition occurs. As ones the master
places an address, it keeps on waiting until the address is not accepted. So someone has to accept this invalid address and complete the
burst corresponding to it.
Therefore any component giving a DECERR response must meet all requirements to complete data transfer and
generate appropriate signal along with response signal DECERR.
This is where DEFAULT SLAVE comes into picture. Default slave will accept such invalid addresses and will complete
transactions corresponding to such addresses by responding with a special error in response called DECERR, which means decoding
error. This error is meant to tell the master that no device is having the address for which transaction has been requested.
So default slave will be having two sections. One of these sections will handle write transactions and other will handle
read transactions.
Default slave write section:
The DECODER in write address channel interconnect enables default slave and routes the invalid addresses along
with control information attached with them to the DEFAULT Slaves write section.
442
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
AWID, AWLEN, AWSIZE, AWBURST are taken into account when AWVALID is high. AWID is used to generate BID
signal.
After accepting all control information default slave will write location by WDATA.
As soon as WLAST signal is received default slave will enable write completion channel generator block and this block will
generate appropriate error signal on BRESP bus.
This section, also work in the same way; as write section works. The DECODER in read address channel interconnect
enables default slave and routes the invalid addresses along with control information attached with them to the DEFAULT
Slaves read section.
443
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
Now default slave will give data to master by reading the information from register. Along with the LAST data,
Default slave places a response corresponding to this transaction on the channel.
In this way as specified in AXI specification, even the invalid transaction is completed by the default slave.
Following points explain the working of write section
of default slave:
The DECODER in write address channel interconnect enables default slave. After enable signal default slave will assert
ARREADY signal.
ARID, ARLEN, ARSIZE, ARBURST are taken into account when ARVALID is high. ARID is used to generate RID signal.
After accepting all control information default slave will read location and send data on RDATA.
It will calculate total burst size by considering ARLEN, ARSIZE and ARBURST signals. This value is decremented.
As soon as burst size value goes to zero (i.e. End_t signal is generated) default slave will assert RLAST signal along with
error signal on RRESP bus.
simulation results
444
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
445
www.ijergs.org
International Journal of Engineering Research and General Science Volume 2, Issue 4, June-July, 2014
ISSN 2091-2730
Conclusion
Functional verification is achieved successfully.
The interconnect can works at 100 MHz frequency at Vertex E as target Device. (synthesized by xilinx ISE 8.2i).
All the Errors and warnings were removed successfully from design coding except one warning signal is assigned but never use
REFERENCES:
Sr. No
Title of book
1.
2.
Author name
ARM Limited.
ARM Limited.
ARM Limited.
Technical Reference Manual
4.
5.
VHDL primer
j.bhasker
Stephen Brown,
Zvonko Vranesic
McGraw-Hill, 2000.
6.
Peter J.Ashenden
446
www.ijergs.org