Skip to content

Commit 8e172ec

Browse files
committed
Change master/mst/slave/slv to manager/mgr/subordinate/sbr
1 parent 3629789 commit 8e172ec

File tree

103 files changed

+6130
-6130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+6130
-6130
lines changed

.ci/Memora.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ artifacts:
209209
- src/axi_pkg.sv
210210
- src/axi_intf.sv
211211
- src/axi_test.sv
212-
- src/axi_err_slv.sv
212+
- src/axi_err_sbr.sv
213213
- src/axi_lite_demux.sv
214214
- src/axi_lite_mux.sv
215215
- src/axi_lite_to_axi.sv
@@ -296,7 +296,7 @@ artifacts:
296296
- src/axi_intf.sv
297297
- src/axi_test.sv
298298
- src/axi_demux.sv
299-
- src/axi_err_slv.sv
299+
- src/axi_err_sbr.sv
300300
- src/axi_mux.sv
301301
- src/axi_xbar.sv
302302
- test/tb_axi_xbar.sv

Bender.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ sources:
6262
- src/axi_rw_join.sv
6363
- src/axi_rw_split.sv
6464
- src/axi_serializer.sv
65-
- src/axi_slave_compare.sv
65+
- src/axi_subordinate_compare.sv
6666
- src/axi_throttle.sv
6767
- src/axi_to_mem.sv
6868
# Level 3
6969
- src/axi_cdc.sv
70-
- src/axi_err_slv.sv
70+
- src/axi_err_sbr.sv
7171
- src/axi_dw_converter.sv
7272
- src/axi_from_mem.sv
7373
- src/axi_id_serialize.sv
@@ -119,7 +119,7 @@ sources:
119119
- test/tb_axi_modify_address.sv
120120
- test/tb_axi_serializer.sv
121121
- test/tb_axi_sim_mem.sv
122-
- test/tb_axi_slave_compare.sv
122+
- test/tb_axi_subordinate_compare.sv
123123
- test/tb_axi_to_axi_lite.sv
124124
- test/tb_axi_to_mem_banked.sv
125125
- test/tb_axi_xbar.sv

README.md

Lines changed: 27 additions & 27 deletions
Large diffs are not rendered by default.

axi.core

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ filesets:
4444
- src/axi_rw_join.sv
4545
- src/axi_rw_split.sv
4646
- src/axi_serializer.sv
47-
- src/axi_slave_compare.sv
47+
- src/axi_subordinate_compare.sv
4848
- src/axi_throttle.sv
4949
- src/axi_to_mem.sv
5050
# Level 3
5151
- src/axi_cdc.sv
52-
- src/axi_err_slv.sv
52+
- src/axi_err_sbr.sv
5353
- src/axi_dw_converter.sv
5454
- src/axi_from_mem.sv
5555
- src/axi_id_serialize.sv
@@ -95,7 +95,7 @@ filesets:
9595
- test/tb_axi_modify_address.sv
9696
- test/tb_axi_serializer.sv
9797
- test/tb_axi_sim_mem.sv
98-
- test/tb_axi_slave_compare.sv
98+
- test/tb_axi_subordinate_compare.sv
9999
- test/tb_axi_to_axi_lite.sv
100100
- test/tb_axi_to_mem_banked.sv
101101
- test/tb_axi_xbar.sv
@@ -116,34 +116,34 @@ generators:
116116
module where the interconnect wrapper is intended to be used.
117117

118118
Parameters:
119-
masters: A dictionary where each key names a master interface connecting
119+
managers: A dictionary where each key names a manager interface connecting
120120
to the interconnect and the associated value contains
121121
configuration for that interface.
122122

123-
id_width (int): Width of the id signals for the master
123+
id_width (int): Width of the id signals for the manager
124124

125-
slaves: A dictionary where each key names a slave interface connecting
125+
subordinates: A dictionary where each key names a subordinate interface connecting
126126
to the interconnect and the associated value contains
127127
configuration for that interface. The following configuration
128128
keys are defined
129129

130-
offset (int): Base address for the slave
131-
size (int): Size of the allocated memory map for the slave
130+
offset (int): Base address for the subordinate
131+
size (int): Size of the allocated memory map for the subordinate
132132

133133
Example usage:
134134
The following config will generate an interconnect wrapper to which two
135-
AXI4 master interfaces (dma and ibus) with different id widths are
136-
connected, and connects downstream to three AXI4 slaves (rom, gpio, ram)
135+
AXI4 manager interfaces (dma and ibus) with different id widths are
136+
connected, and connects downstream to three AXI4 subordinates (rom, gpio, ram)
137137

138138
soc_intercon:
139139
generator: axi_intercon_gen
140140
parameters:
141-
masters:
141+
managers:
142142
dma:
143143
id_width : 1
144144
ibus:
145145
id_width : 2
146-
slaves:
146+
subordinates:
147147
ram:
148148
offset : 0
149149
size: 0x10000000

doc/axi_demux.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
## Design Overview
77

8-
The demultiplexer has one *slave port* and a configurable number of *master ports*. A block diagram is shown below:
8+
The demultiplexer has one *subordinate port* and a configurable number of *manager ports*. A block diagram is shown below:
99

1010
![Block diagram of the AXI demultiplexer](axi_demux.png "Block diagram of the AXI demultiplexer")
1111

12-
The AW and AR channels each have a *select* input, to determine the master port to which they are sent. The select can, for example, be driven by an (external) address decoder to map address ranges to different AXI slaves.
12+
The AW and AR channels each have a *select* input, to determine the manager port to which they are sent. The select can, for example, be driven by an (external) address decoder to map address ranges to different AXI subordinates.
1313

1414
Beats on the W channel are routed by demultiplexer according to the selection for the corresponding AW beat. This relies on the AXI property that W bursts must be sent in the same order as AW beats and beats from different W bursts may not be interleaved.
1515

16-
Beats on the B and R channel are multiplexed from the master ports to the slave port with a round-robin arbitration tree.
16+
Beats on the B and R channel are multiplexed from the manager ports to the subordinate port with a round-robin arbitration tree.
1717

1818

1919
## Configuration
@@ -23,11 +23,11 @@ This demultiplexer is configured through the parameters listed in the following
2323
| Name | Type | Definition |
2424
|:---------------------|:-------------------|:-----------|
2525
| `IdWidth` | `int unsigned` | The AXI ID width (of all ports). |
26-
| `NumMstPorts` | `int unsigned` | The number of AXI master ports of the demultiplexer (in other words, how many AXI slave modules can be attached). |
27-
| `MaxTrans` | `int unsigned` | The slave port can have at most this many transactions [in flight](../doc#in-flight). |
26+
| `NumMgrPorts` | `int unsigned` | The number of AXI manager ports of the demultiplexer (in other words, how many AXI subordinate modules can be attached). |
27+
| `MaxTrans` | `int unsigned` | The subordinate port can have at most this many transactions [in flight](../doc#in-flight). |
2828
| `LookBits` | `int unsigned` | The number of ID bits (starting at the least significant) the demultiplexer uses to determine the uniqueness of an AXI ID (see section *Ordering and Stalls* below). This value has to be less or equal than `IdWidth`. |
2929
| `UniqueIds` | `bit` | If you can guarantee that the ID of each transaction is always unique among all in-flight transactions in the same direction, setting this parameter to `1'b1` simplifies the demultiplexer (see section *Ordering and Stalls* below). Defaults to `1'b0`. |
30-
| `FallThrough` | `bit` | Routing decisions on the AW channel fall through to the W channel. Enabling this allows the demultiplexer to accept a W beat in the same cycle as the corresponding AW beat, but it increases the combinatorial path of the W channel with logic from `slv_aw_select_i`. |
30+
| `FallThrough` | `bit` | Routing decisions on the AW channel fall through to the W channel. Enabling this allows the demultiplexer to accept a W beat in the same cycle as the corresponding AW beat, but it increases the combinatorial path of the W channel with logic from `sbr_aw_select_i`. |
3131
| `SpillXX` | `bit` | Inserts one spill register on the respective channel (AW, W, B, AR, and R) before the demultiplexer. |
3232

3333
The other parameters are types to define the ports of the demultiplexer. The `_*chan_t` types must be bound in accordance to the configuration using the `AXI_TYPEDEF` macros defined in `axi/typedef.svh`.
@@ -46,21 +46,21 @@ If all `SpillXX` and `FallThrough` are disabled, all paths through this multiple
4646
| `clk_i` | Clock to which all other signals (except `rst_ni`) are synchronous. |
4747
| `rst_ni` | Reset, asynchronous, active-low. |
4848
| `test_i` | Test mode enable (active-high). |
49-
| `slv_*` (except `slv_*_select_i`) | Single slave port of the demultiplexer. |
50-
| `slv_{aw,ar}_select_i` | Index of the master port to which a write or read, respectively, is demultiplexed. This signal must be stable while a handshake on the AW respectively AR channel is [pending](../doc#pending). |
51-
| `mst_*` | Array of master ports of the demultiplexer. The array index of each port is the index of the master port. |
49+
| `sbr_*` (except `sbr_*_select_i`) | Single subordinate port of the demultiplexer. |
50+
| `sbr_{aw,ar}_select_i` | Index of the manager port to which a write or read, respectively, is demultiplexed. This signal must be stable while a handshake on the AW respectively AR channel is [pending](../doc#pending). |
51+
| `mgr_*` | Array of manager ports of the demultiplexer. The array index of each port is the index of the manager port. |
5252

5353

5454
## Ordering and Stalls
5555

56-
When the demultiplexer receives two transactions with the same ID and direction (i.e., both read or both write) but targeting two different master ports, it will not accept the second transaction until the first has completed. During this time, the demultiplexer stalls the AR or AW channel, respectively. To determine whether two transactions have the same ID, the `LookBits` least-significant bits are compared. That parameter can be set to the full `IdWidth` to avoid false ID conflicts, or it can be set to a lower value to reduce area and delay at the cost of more false conflicts.
56+
When the demultiplexer receives two transactions with the same ID and direction (i.e., both read or both write) but targeting two different manager ports, it will not accept the second transaction until the first has completed. During this time, the demultiplexer stalls the AR or AW channel, respectively. To determine whether two transactions have the same ID, the `LookBits` least-significant bits are compared. That parameter can be set to the full `IdWidth` to avoid false ID conflicts, or it can be set to a lower value to reduce area and delay at the cost of more false conflicts.
5757

5858
The reason for this behavior are AXI ordering constraints, see the [documentation of the crossbar](axi_xbar.md#ordering-and-stalls) for details.
5959

6060
There are use cases that do not require the demultiplexer to keep track of and enforce this ordering, and the `UniqueIds` parameter can be set to specialize the demultiplexer for these cases:
6161
`UniqueIds` may be set to `1'b1` if and only if
6262
- each transaction has an ID that is unique among all in-flight transactions in the same direction;
63-
- or for any ID, all transactions with that ID target the same master port as all other in-flight transactions with the same ID and direction;
63+
- or for any ID, all transactions with that ID target the same manager port as all other in-flight transactions with the same ID and direction;
6464
- or both.
6565

6666
Setting the `UniqueIds` parameter to `1'b1` when those conditions are not always met leads to undefined behavior.
@@ -69,11 +69,11 @@ Setting the `UniqueIds` parameter to `1'b1` reduces the area complexity of the d
6969

7070
### Implementation
7171

72-
`2 * 2^LookBits` counters track the number of [in-flight](../doc#in-flight) transactions. That is, for each ID in the (potentially) reduced set of IDs of `LookBits` bits, there is one counter for write transactions and one for read transactions. Each counter can count up to (and including) `MaxTrans`, and there is a register that holds the index of the master port to which a counter is assigned.
72+
`2 * 2^LookBits` counters track the number of [in-flight](../doc#in-flight) transactions. That is, for each ID in the (potentially) reduced set of IDs of `LookBits` bits, there is one counter for write transactions and one for read transactions. Each counter can count up to (and including) `MaxTrans`, and there is a register that holds the index of the manager port to which a counter is assigned.
7373

74-
When the demultiplexer gets an AW or an AR, it indexes the counters with the AXI ID. If the indexed counter has a value greater than zero and its master port index register is not equal to the index to which the AW or AR is to be sent, a transaction with the same direction and ID is already in flight to another master port. The demultiplexer then stalls the AW or AR. In all other cases, the demultiplexer forwards the AW or AR, increments the value of the indexed counter, and sets the master port index of the counter. A counter is decremented upon a handshake a B respectively last R beat at a slave port.
74+
When the demultiplexer gets an AW or an AR, it indexes the counters with the AXI ID. If the indexed counter has a value greater than zero and its manager port index register is not equal to the index to which the AW or AR is to be sent, a transaction with the same direction and ID is already in flight to another manager port. The demultiplexer then stalls the AW or AR. In all other cases, the demultiplexer forwards the AW or AR, increments the value of the indexed counter, and sets the manager port index of the counter. A counter is decremented upon a handshake a B respectively last R beat at a subordinate port.
7575

76-
W beats are routed to the master port defined by the value of `slv_aw_select_i` for the corresponding AW. As the order of the W bursts is given by the order of the AWs, the select signals are stored in a FIFO queue. This FIFO is pushed upon a handshake on the AW slave channel and popped upon a handshake of the last W beat of a burst on a W master channel.
76+
W beats are routed to the manager port defined by the value of `sbr_aw_select_i` for the corresponding AW. As the order of the W bursts is given by the order of the AWs, the select signals are stored in a FIFO queue. This FIFO is pushed upon a handshake on the AW subordinate channel and popped upon a handshake of the last W beat of a burst on a W manager channel.
7777

7878

7979
## Atomic Transactions

0 commit comments

Comments
 (0)