blob: 398045f643a19dd7c65bc25ca3ac80f5d2ea02ca [file] [log] [blame]
module axi_b_buffer
#(
parameter ID_WIDTH = 4,
parameter USER_WIDTH = 6,
parameter BUFFER_DEPTH = 8
)
(
clk_i,
rst_ni,
test_en_i,
slave_valid_i,
slave_resp_i,
slave_id_i,
slave_user_i,
slave_ready_o,
master_valid_o,
master_resp_o,
master_id_o,
master_user_o,
master_ready_i
);
//parameter ID_WIDTH = 4;
//parameter USER_WIDTH = 6;
//parameter BUFFER_DEPTH = 8;
input wire clk_i;
input wire rst_ni;
input wire test_en_i;
input wire slave_valid_i;
input wire [1:0] slave_resp_i;
input wire [ID_WIDTH - 1:0] slave_id_i;
input wire [USER_WIDTH - 1:0] slave_user_i;
output wire slave_ready_o;
output wire master_valid_o;
output wire [1:0] master_resp_o;
output wire [ID_WIDTH - 1:0] master_id_o;
output wire [USER_WIDTH - 1:0] master_user_o;
input wire master_ready_i;
wire [((2 + USER_WIDTH) + ID_WIDTH) - 1:0] s_data_in;
wire [((2 + USER_WIDTH) + ID_WIDTH) - 1:0] s_data_out;
assign s_data_in = {slave_id_i, slave_user_i, slave_resp_i};
assign {master_id_o, master_user_o, master_resp_o} = s_data_out;
generic_fifo #(
.DATA_WIDTH((2 + USER_WIDTH) + ID_WIDTH),
.DATA_DEPTH(BUFFER_DEPTH)
) buffer_i(
.clk(clk_i),
.rst_n(rst_ni),
.data_i(s_data_in),
.valid_i(slave_valid_i),
.grant_o(slave_ready_o),
.data_o(s_data_out),
.valid_o(master_valid_o),
.grant_i(master_ready_i),
.test_mode_i(test_en_i)
);
endmodule