You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`IdWidth`|`int unsigned`| The AXI ID width (of all ports). |
26
-
|`NoMstPorts`|`int unsigned`| The number of AXI master ports of the demultiplexer (in other words, how many AXI slave modules can be attached). |
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
27
|`MaxTrans`|`int unsigned`| The slave port can have at most this many transactions [in flight](../doc#in-flight). |
28
28
|`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`. |
29
29
|`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`. |
|`NoMstPorts`|`int unsigned`| The number of AXI4-Lite master ports of the demultiplexer (in other words, how many AXI4-Lite slave modules can be attached). |
22
+
|`NumMstPorts`|`int unsigned`| The number of AXI4-Lite master ports of the demultiplexer (in other words, how many AXI4-Lite slave modules can be attached). |
23
23
|`MaxTrans`|`int unsigned`| The slave port can have at most this many transactions [in flight](../doc#in-flight). |
24
24
|`FallThrough`|`bit`| Routing decisions on the AW channel fall through to the W channel (i.e. don't consume a cycle). 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`. |
25
25
|`SpillXX`|`bit`| Inserts one spill register on the respective channel (AW, W, B, AR, and R) before the demultiplexer. |
|`NoSlvPorts`|`int unsigned`| The number of AXI4-Lite slave ports of the crossbar (in other words, how many AXI4-Lite master modules can be attached). |
32
-
|`NoMstPorts`|`int unsigned`| The number of AXI4-Lite master ports of the crossbar (in other words, how many AXI4-Lite slave modules can be attached). |
31
+
|`NumSlvPorts`|`int unsigned`| The number of AXI4-Lite slave ports of the crossbar (in other words, how many AXI4-Lite master modules can be attached). |
32
+
|`NumMstPorts`|`int unsigned`| The number of AXI4-Lite master ports of the crossbar (in other words, how many AXI4-Lite slave modules can be attached). |
33
33
|`MaxMstTrans`|`int unsigned`| Each slave port can have at most this many transactions [in flight](../doc#in-flight). |
34
34
|`MaxSlvTrans`|`int unsigned`| Each master port can have at most this many transactions [in flight](../doc#in-flight). |
35
35
|`FallThrough`|`bit`| Routing decisions on the AW channel fall through to the W channel. Enabling this allows the crossbar 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 the AW channel. |
@@ -38,7 +38,7 @@ The crossbar is configured through the `Cfg` parameter with a `axi_pkg::xbar_cfg
38
38
|`IdUsedSlvPorts`|`int unsigned`| Not used by the AXI4-Lite crossbar. Set `default: '0`. |
39
39
|`AddrWidth`|`int unsigned`| The AXI4-Lite address width. |
40
40
|`DataWidth`|`int unsigned`| The AXI4-Lite data width. |
41
-
|`NoAddrRules`|`int unsigned`| The number of address map rules. |
41
+
|`NumAddrRules`|`int unsigned`| The number of address map rules. |
42
42
43
43
The other parameters are types to define the ports of the crossbar. The `*_chan_t` and `*_req_t`/`*_rsp_t` types must be bound in accordance to the configuration with the `AXI_TYPEDEF` macros defined in `axi/typedef.svh`. The `rule_t` type must be bound to an address decoding rule with the same address width as in the configuration, and `axi_pkg` contains definitions for 64- and 32-bit addresses.
Copy file name to clipboardExpand all lines: doc/axi_mux.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ The opposite function to the AXI demultiplexer is performed by the AXI Multiplex
7
7
The Multiplexer module is has a simpler structure than the demultiplexer introduced in the previous section. The requests on the AW and AR channels get merged with the same round robin arbitration used for merging the responses in the demultiplexer. One key difference however is the mechanism how the multiplexer determines from which slave port a request came. It uses for this the higher bits of the `axi_id` field of a request. The number of bits can be calculated with:
8
8
9
9
```systemverilog
10
-
$clog2(NoSlavePorts)
10
+
$clog2(NumSlavePorts)
11
11
```
12
12
13
13
This restricts the type of ID which can be sent through each slave port of the module. When the higher ID bits do not correspond to the index of the port the following response will be sent back through to the wrong master, leading to a breakdown of the functionality. So for using this module it is recommended to extend each AXI ID by the required amount of bits indicating the index of the respective slave port, before being sent over this module.
@@ -25,7 +25,7 @@ The following table shows the parameters of the module. The module further requi
Copy file name to clipboardExpand all lines: doc/axi_xbar.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ A block-diagram of the crossbar is shown below:
12
12
13
13
The crossbar has a configurable number of slave and master ports.
14
14
15
-
The ID width of the master ports is wider than that of the slave ports. The additional ID bits are used by the internal multiplexers to route responses. The ID width of the master ports must be `IdWidthSlvPorts + $clog_2(NoSlvPorts)`.
15
+
The ID width of the master ports is wider than that of the slave ports. The additional ID bits are used by the internal multiplexers to route responses. The ID width of the master ports must be `IdWidthSlvPorts + $clog_2(NumSlvPorts)`.
16
16
17
17
18
18
## Address Map
@@ -41,8 +41,8 @@ The crossbar is configured through the `Cfg` parameter with a `axi_pkg::xbar_cfg
|`NoSlvPorts`|`int unsigned`| The number of AXI slave ports of the crossbar (in other words, how many AXI master modules can be attached). |
45
-
|`NoMstPorts`|`int unsigned`| The number of AXI master ports of the crossbar (in other words, how many AXI slave modules can be attached). |
44
+
|`NumSlvPorts`|`int unsigned`| The number of AXI slave ports of the crossbar (in other words, how many AXI master modules can be attached). |
45
+
|`NumMstPorts`|`int unsigned`| The number of AXI master ports of the crossbar (in other words, how many AXI slave modules can be attached). |
46
46
|`MaxMstTrans`|`int unsigned`| Each slave port can have at most this many transactions [in flight](../doc#in-flight). |
47
47
|`MaxSlvTrans`|`int unsigned`| Each master port can have at most this many transactions per ID [in flight](../doc#in-flight). |
48
48
|`FallThrough`|`bit`| Routing decisions on the AW channel fall through to the W channel. Enabling this allows the crossbar 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 the AW channel. |
@@ -52,7 +52,7 @@ The crossbar is configured through the `Cfg` parameter with a `axi_pkg::xbar_cfg
52
52
|`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 crossbar. See the [`axi_demux` documentation](axi_demux#ordering-and-stalls) for details. |
53
53
|`AddrWidth`|`int unsigned`| The AXI address width. |
54
54
|`DataWidth`|`int unsigned`| The AXI data width. |
55
-
|`NoAddrRules`|`int unsigned`| The number of address map rules. |
55
+
|`NumAddrRules`|`int unsigned`| The number of address map rules. |
56
56
57
57
The other parameters are types to define the ports of the crossbar. The `*_chan_t` and `*_req_t`/`*_rsp_t` types must be bound in accordance to the configuration with the `AXI_TYPEDEF` macros defined in `axi/typedef.svh`. The `rule_t` type must be bound to an address decoding rule with the same address width as in the configuration, and `axi_pkg` contains definitions for 64- and 32-bit addresses.
0 commit comments