Axi WB Bridge
Axi WB Bridge
Block Diagram
DESCRIPTION:
AXI master-slave includes:
- Write address channels
- Read address channels
- Read data channel
- Write data channel
- Write response channel
An access or a transaction consists of four basic pieces of information:
- Address Information: Identifies the destination (location, slave) where the
transaction will be processed.
- Control Information: Specifies the attributes of the transaction, such as burst
type, burst length, burst size, and other properties.
- Data Information: Contains the transaction’s data.
- Response Information: Indicates the transaction’s status, whether it has
encountered an error or not.
A read transaction is managed by two channels:
- AR Channel
- R Channel
A write transaction is managed by three channels:
- AW Channel
- W Channel
- B Channel
For read transactions, both data information and response information are transmitted on
the R channel.
For write transactions, data information is transmitted on the W channel, while response
information is transmitted on a separate B channel.
Read Transaction
A read transaction involves two processing steps:
- Initiation by Master: The master sends address information and control
information to initiate a read transaction on the AR channel.
- Response by Slave: The slave sends the data along with response information on
the R channel. The amount of data and the response information are determined by
the control information sent from the master on the AR channel.
Figure 8: AXI Read Transaction
Write Transaction
A write transaction involves three processing steps:
- Initiation by Master: The master sends address information and control
information to initiate a write transaction on the AW channel.
- Data Transfer by Master: The master sends the write data on the W channel.
The amount of write data is determined by the control information sent from the
master on the AW channel.
- Response by Slave: The slave sends the response information on the B channel
once the write burst is completed.
Each FIFO has these inputs and outputs according to the above FIFO diagram
Width and Depth:
● Width: 32 bits (matching the data width of the AXI-Lite and Wishbone buses)
● Depth: 16 entries
Inputs:
Outputs:
1. Check Full Status: Before writing, the FIFO checks if it is full by comparing the
write pointer with the read pointer and considering the FIFO depth.
2. Write Enable Signal: If write_enable is asserted and the FIFO is not full, the data
present on data_in is written into the FIFO at the location indicated by the write
pointer.
3. Update Write Pointer: After writing, the write pointer is incremented. If it reaches
the end of the FIFO, it wraps around to the beginning.
4. Update Status: The FIFO's full and almost full status signals are updated based on
the new state of the pointers.
1. Check Empty Status: Before reading, the FIFO checks if it is empty by comparing
the read pointer with the write pointer.
2. Read Enable Signal: If read_enable is asserted and the FIFO is not empty, the
data at the location indicated by the read pointer is read from the FIFO and placed
on data_out.
3. Update Read Pointer: After reading, the read pointer is incremented. If it reaches
the end of the FIFO, it wraps around to the beginning.
4. Update Status: The FIFO's empty and almost empty status signals are updated
based on the new state of the pointers.
1. Wishbone to FIFO:
○ Wishbone master performs a read operation and the read data is stored in
the WB2AXI FIFO.
2. FIFO to AXI-Lite:
○ The WB2AXI FIFO provides the buffered read data to the AXI-Lite
interface.
○ The AXI-Lite master receives the read data and processes it accordingly.
3. Status Handling:
○ The FIFO provides status signals (e.g., empty, almost_empty) to indicate its
current state.
BLOCK DIAGRAM
FINITE STATE MACHINE
DESCRIPTION:
1. Idle State:
○ Monitors FIFO signals (fifo_read_en and fifo_write_en).
○ Transitions to Read Request or Write Request states based on FIFO signals.
2. Read Request State:
○ Activates when fifo_read_en is asserted.
○ Prepares and sends a read request to the Wishbone slave.
○ Moves to Read Response State after sending the request.
3. Read Response State:
○ Waits for the Wishbone slave’s ack_i and the read data.
○ Captures the data and writes it back to the FIFO.
○ Returns to Idle State upon receiving the acknowledgment.
4. Write Request State:
○ Activates when fifo_write_en is asserted.
○ Prepares and sends a write request to the Wishbone slave.
○ Moves to Write Response State after sending the request.
5. Write Response State:
○ Waits for acknowledgment from the Wishbone slave.
○ Returns to Idle State upon receiving the acknowledgment.