@@ -43,6 +43,8 @@ module axi_isolate #(
43
43
// / Gracefully terminate all incoming transactions in case of isolation by returning proper error
44
44
// / responses.
45
45
parameter bit TerminateTransaction = 1'b0 ,
46
+ // / Support atomic operations (ATOPs)
47
+ parameter bit AtopSupport = 1'b1 ,
46
48
// / Address width of all AXI4+ATOP ports
47
49
parameter int unsigned AxiAddrWidth = 32'd0 ,
48
50
// / Data width of all AXI4+ATOP ports
@@ -92,7 +94,7 @@ module axi_isolate #(
92
94
if (TerminateTransaction) begin
93
95
axi_demux # (
94
96
.AxiIdWidth ( AxiIdWidth ),
95
- .AtopSupport ( 1'b1 ),
97
+ .AtopSupport ( AtopSupport ),
96
98
.aw_chan_t ( aw_chan_t ),
97
99
.w_chan_t ( w_chan_t ),
98
100
.b_chan_t ( b_chan_t ),
@@ -129,7 +131,7 @@ module axi_isolate #(
129
131
.axi_resp_t ( axi_resp_t ),
130
132
.Resp ( axi_pkg :: RESP_DECERR ),
131
133
.RespData ( 'h1501A7ED ),
132
- .ATOPs ( 1'b1 ),
134
+ .ATOPs ( AtopSupport ),
133
135
.MaxTrans ( 1 )
134
136
) i_axi_err_slv (
135
137
.clk_i,
@@ -413,6 +415,7 @@ endmodule
413
415
module axi_isolate_intf # (
414
416
parameter int unsigned NUM_PENDING = 32'd16 ,
415
417
parameter bit TERMINATE_TRANSACTION = 1'b0 ,
418
+ parameter bit ATOP_SUPPORT = 1'b1 ,
416
419
parameter int unsigned AXI_ID_WIDTH = 32'd0 ,
417
420
parameter int unsigned AXI_ADDR_WIDTH = 32'd0 ,
418
421
parameter int unsigned AXI_DATA_WIDTH = 32'd0 ,
@@ -453,6 +456,7 @@ module axi_isolate_intf #(
453
456
axi_isolate # (
454
457
.NumPending ( NUM_PENDING ),
455
458
.TerminateTransaction ( TERMINATE_TRANSACTION ),
459
+ .AtopSupport ( ATOP_SUPPORT ),
456
460
.AxiAddrWidth ( AXI_ADDR_WIDTH ),
457
461
.AxiDataWidth ( AXI_DATA_WIDTH ),
458
462
.AxiIdWidth ( AXI_ID_WIDTH ),
0 commit comments