Skip to content

Commit 4e54ac6

Browse files
authored
Merge pull request #350 from pulp-platform/vcs-fixes
axi_xbar_unmuxed: Disable for VCS compilation
2 parents 587355b + 34d2323 commit 4e54ac6

File tree

3 files changed

+30
-17
lines changed

3 files changed

+30
-17
lines changed

.ci/Memora.yml

+14
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ artifacts:
8383
- src/axi_pkg.sv
8484
- src/axi_intf.sv
8585
- src/axi_test.sv
86+
- src/axi_err_slv.sv
87+
- src/axi_demux.sv
88+
- src/axi_demux_simple.sv
8689
- src/axi_dw_downsizer.sv
8790
- src/axi_dw_converter.sv
8891
- test/tb_axi_dw_downsizer.sv
@@ -97,6 +100,9 @@ artifacts:
97100
- src/axi_pkg.sv
98101
- src/axi_intf.sv
99102
- src/axi_test.sv
103+
- src/axi_err_slv.sv
104+
- src/axi_demux.sv
105+
- src/axi_demux_simple.sv
100106
- src/axi_dw_upsizer.sv
101107
- src/axi_dw_converter.sv
102108
- test/tb_axi_dw_upsizer.sv
@@ -125,6 +131,9 @@ artifacts:
125131
- src/axi_pkg.sv
126132
- src/axi_intf.sv
127133
- src/axi_test.sv
134+
- src/axi_demux.sv
135+
- src/axi_demux_simple.sv
136+
- src/axi_err_slv.sv
128137
- src/axi_isolate.sv
129138
- test/tb_axi_isolate.sv
130139
outputs:
@@ -141,6 +150,7 @@ artifacts:
141150
- src/axi_id_prepend.sv
142151
- src/axi_id_remap.sv
143152
- src/axi_demux.sv
153+
- src/axi_demux_simple.sv
144154
- src/axi_serializer.sv
145155
- src/axi_mux.sv
146156
- src/axi_id_serialize.sv
@@ -294,6 +304,7 @@ artifacts:
294304
- src/axi_intf.sv
295305
- src/axi_test.sv
296306
- src/axi_demux.sv
307+
- src/axi_demux_simple.sv
297308
- src/axi_to_detailed_mem.sv
298309
- src/axi_to_mem.sv
299310
- src/axi_to_mem_banked.sv
@@ -310,8 +321,11 @@ artifacts:
310321
- src/axi_intf.sv
311322
- src/axi_test.sv
312323
- src/axi_demux.sv
324+
- src/axi_demux_simple.sv
313325
- src/axi_err_slv.sv
314326
- src/axi_mux.sv
327+
- src/axi_multicut.sv
328+
- src/axi_xbar_unmuxed.sv
315329
- src/axi_xbar.sv
316330
- test/tb_axi_xbar.sv
317331
outputs:

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77

88
## Unreleased
99

10+
### Fixed
11+
- Disabled the interface variant of `axi_xbar_unmuxed` for VCS, as VCS does not support multi-dimensional arrays of interfaces yet.
12+
1013
## 0.39.4 - 2024-07-25
1114
### Added
1215
- `axi_sim_mem`: Increase number of request ports, add multiport interface variant.

src/axi_xbar_unmuxed.sv

+13-17
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ import cf_math_pkg::idx_width;
3030
parameter type w_chan_t = logic,
3131
/// AXI4+ATOP B channel struct type for the slave ports.
3232
parameter type b_chan_t = logic,
33-
/// AXI4+ATOP AR channel struct type for the slave ports.
33+
/// AXI4+ATOP AR channel struct type for the slave ports.
3434
parameter type ar_chan_t = logic,
35-
/// AXI4+ATOP R channel struct type for the slave ports.
35+
/// AXI4+ATOP R channel struct type for the slave ports.
3636
parameter type r_chan_t = logic,
3737
/// AXI4+ATOP request struct type for the slave ports.
3838
parameter type req_t = logic,
@@ -56,17 +56,17 @@ import cf_math_pkg::idx_width;
5656
) (
5757
/// Clock, positive edge triggered.
5858
input logic clk_i,
59-
/// Asynchronous reset, active low.
59+
/// Asynchronous reset, active low.
6060
input logic rst_ni,
6161
/// Testmode enable, active high.
6262
input logic test_i,
63-
/// AXI4+ATOP requests to the slave ports.
63+
/// AXI4+ATOP requests to the slave ports.
6464
input req_t [Cfg.NoSlvPorts-1:0] slv_ports_req_i,
65-
/// AXI4+ATOP responses of the slave ports.
65+
/// AXI4+ATOP responses of the slave ports.
6666
output resp_t [Cfg.NoSlvPorts-1:0] slv_ports_resp_o,
67-
/// AXI4+ATOP requests of the master ports.
67+
/// AXI4+ATOP requests of the master ports.
6868
output req_t [Cfg.NoMstPorts-1:0][Cfg.NoSlvPorts-1:0] mst_ports_req_o,
69-
/// AXI4+ATOP responses to the master ports.
69+
/// AXI4+ATOP responses to the master ports.
7070
input resp_t [Cfg.NoMstPorts-1:0][Cfg.NoSlvPorts-1:0] mst_ports_resp_i,
7171
/// Address map array input for the crossbar. This map is global for the whole module.
7272
/// It is used for routing the transactions to the respective master ports.
@@ -77,12 +77,12 @@ import cf_math_pkg::idx_width;
7777
`ifdef VCS
7878
/// Enables a default master port for each slave port. When this is enabled unmapped
7979
/// transactions get issued at the master port given by `default_mst_port_i`.
80-
/// When not used, tie to `'0`.
80+
/// When not used, tie to `'0`.
8181
input logic [Cfg.NoSlvPorts-1:0][MstPortsIdxWidth-1:0] default_mst_port_i
8282
`else
8383
/// Enables a default master port for each slave port. When this is enabled unmapped
8484
/// transactions get issued at the master port given by `default_mst_port_i`.
85-
/// When not used, tie to `'0`.
85+
/// When not used, tie to `'0`.
8686
input logic [Cfg.NoSlvPorts-1:0][idx_width(Cfg.NoMstPorts)-1:0] default_mst_port_i
8787
`endif
8888
);
@@ -284,6 +284,8 @@ import cf_math_pkg::idx_width;
284284
// pragma translate_on
285285
endmodule
286286

287+
`ifndef VCS
288+
// As of now, VCS does not support multi-dimensional array of interfaces.
287289
`include "axi/assign.svh"
288290
`include "axi/typedef.svh"
289291

@@ -295,10 +297,6 @@ import cf_math_pkg::idx_width;
295297
parameter bit ATOPS = 1'b1,
296298
parameter bit [Cfg.NoSlvPorts-1:0][Cfg.NoMstPorts-1:0] CONNECTIVITY = '1,
297299
parameter type rule_t = axi_pkg::xbar_rule_64_t
298-
`ifdef VCS
299-
, localparam int unsigned MstPortsIdxWidth =
300-
(Cfg.NoMstPorts == 32'd1) ? 32'd1 : unsigned'($clog2(Cfg.NoMstPorts))
301-
`endif
302300
) (
303301
input logic clk_i,
304302
input logic rst_ni,
@@ -307,11 +305,7 @@ import cf_math_pkg::idx_width;
307305
AXI_BUS.Master mst_ports [Cfg.NoMstPorts-1:0][Cfg.NoSlvPorts-1:0],
308306
input rule_t [Cfg.NoAddrRules-1:0] addr_map_i,
309307
input logic [Cfg.NoSlvPorts-1:0] en_default_mst_port_i,
310-
`ifdef VCS
311-
input logic [Cfg.NoSlvPorts-1:0][MstPortsIdxWidth-1:0] default_mst_port_i
312-
`else
313308
input logic [Cfg.NoSlvPorts-1:0][idx_width(Cfg.NoMstPorts)-1:0] default_mst_port_i
314-
`endif
315309
);
316310

317311
typedef logic [Cfg.AxiIdWidthSlvPorts -1:0] id_t;
@@ -371,3 +365,5 @@ import cf_math_pkg::idx_width;
371365
);
372366

373367
endmodule
368+
369+
`endif

0 commit comments

Comments
 (0)