Line 40... |
Line 40... |
|
|
port GROUP_STUB_MEM;
|
port GROUP_STUB_MEM;
|
|
|
|
|
//busy
|
//busy
|
wire ARREADY_pre;
|
wire ARBUSY;
|
wire RVALID_pre;
|
|
wire AWREADY_pre;
|
|
wire WREADY_pre;
|
|
wire BVALID_pre;
|
|
wire RBUSY;
|
wire RBUSY;
|
|
wire AWBUSY;
|
|
wire WBUSY;
|
wire BBUSY;
|
wire BBUSY;
|
|
|
//wcmd fifo
|
//wcmd fifo
|
wire [ADDR_BITS-1:0] wcmd_addr;
|
wire [ADDR_BITS-1:0] wcmd_addr;
|
wire [ID_BITS-1:0] wcmd_id;
|
wire [ID_BITS-1:0] wcmd_id;
|
wire [1:0] wcmd_size;
|
wire [SIZE_BITS-1:0] wcmd_size;
|
wire [LEN_BITS-1:0] wcmd_len;
|
wire [LEN_BITS-1:0] wcmd_len;
|
wire [1:0] wcmd_resp;
|
wire [1:0] wcmd_resp;
|
wire wcmd_timeout;
|
wire wcmd_timeout;
|
wire wcmd_ready;
|
wire wcmd_ready;
|
wire wcmd_empty;
|
wire wcmd_empty;
|
wire wcmd_full;
|
wire wcmd_full;
|
|
|
//rcmd fifo
|
//rcmd fifo
|
wire [ADDR_BITS-1:0] rcmd_addr;
|
wire [ADDR_BITS-1:0] rcmd_addr;
|
wire [ID_BITS-1:0] rcmd_id;
|
wire [ID_BITS-1:0] rcmd_id;
|
wire [1:0] rcmd_size;
|
wire [SIZE_BITS-1:0] rcmd_size;
|
wire [LEN_BITS-1:0] rcmd_len;
|
wire [LEN_BITS-1:0] rcmd_len;
|
wire [1:0] rcmd_resp;
|
wire [1:0] rcmd_resp;
|
wire rcmd_timeout;
|
wire rcmd_timeout;
|
wire rcmd_ready;
|
wire rcmd_ready;
|
|
wire rcmd_empty;
|
wire rcmd_full;
|
wire rcmd_full;
|
|
|
wire [ID_BITS-1:0] rcmd_id2;
|
wire [ID_BITS-1:0] rcmd_id2;
|
wire [LEN_BITS-1:0] rcmd_len2;
|
wire [LEN_BITS-1:0] rcmd_len2;
|
|
|
Line 86... |
Line 85... |
wire RD_last;
|
wire RD_last;
|
|
|
assign RID = rcmd_id2;
|
assign RID = rcmd_id2;
|
|
|
|
|
assign ARREADY_pre = (~rcmd_full) & (~AR_stall);
|
assign ARREADY = ((~rcmd_full) & (~AR_stall) & (~ARBUSY)) || (~ARVALID);
|
assign AWREADY_pre = (~wcmd_full) & (~AW_stall);
|
assign AWREADY = ((~wcmd_full) & (~AW_stall) & (~AWBUSY)) || (~AWVALID);
|
assign BVALID_pre = (~wresp_timeout) & (wresp_pending ? (~wresp_empty) : (~wresp_empty) & (~BBUSY));
|
assign BVALID = (~wresp_timeout) & (wresp_pending ? (~wresp_empty) : (~wresp_empty) & (~BBUSY));
|
|
|
CREATE axi_slave_busy.v
|
CREATE axi_slave_busy.v
|
PREFIX_busy
|
PREFIX_busy
|
PREFIX_busy (
|
PREFIX_busy (
|
.clk(clk),
|
.clk(clk),
|
.reset(reset),
|
.reset(reset),
|
.ARREADY_pre(ARREADY_pre),
|
.ARBUSY(ARBUSY),
|
.RVALID_pre(RVALID_pre),
|
|
.AWREADY_pre(AWREADY_pre),
|
|
.WREADY_pre(WREADY_pre),
|
|
.BVALID_pre(BVALID_pre),
|
|
.ARREADY(ARREADY),
|
|
.RVALID(RVALID),
|
|
.AWREADY(AWREADY),
|
|
.WREADY(WREADY),
|
|
.BVALID(BVALID),
|
|
.RBUSY(RBUSY),
|
.RBUSY(RBUSY),
|
|
.AWBUSY(AWBUSY),
|
|
.WBUSY(WBUSY),
|
.BBUSY(BBUSY)
|
.BBUSY(BBUSY)
|
);
|
);
|
|
|
CREATE axi_slave_cmd_fifo.v
|
CREATE axi_slave_cmd_fifo.v
|
PREFIX_cmd_fifo #(WCMD_DEPTH)
|
PREFIX_cmd_fifo #(WCMD_DEPTH)
|
Line 179... |
Line 171... |
.cmd_size(),
|
.cmd_size(),
|
.cmd_len(rcmd_len2),
|
.cmd_len(rcmd_len2),
|
.cmd_resp(),
|
.cmd_resp(),
|
.cmd_timeout(),
|
.cmd_timeout(),
|
.cmd_ready(),
|
.cmd_ready(),
|
.cmd_empty(),
|
.cmd_empty(rcmd_empty),
|
.cmd_full(rcmd_full)
|
.cmd_full(rcmd_full)
|
);
|
);
|
|
|
CREATE axi_slave_wresp_fifo.v
|
CREATE axi_slave_wresp_fifo.v
|
PREFIX_wresp_fifo #(WCMD_DEPTH)
|
PREFIX_wresp_fifo #(WCMD_DEPTH)
|
Line 229... |
Line 221... |
.restart(RD_last),
|
.restart(RD_last),
|
.ADDR(ADDR_RD)
|
.ADDR(ADDR_RD)
|
);
|
);
|
|
|
CREATE axi_slave_rd_buff.v
|
CREATE axi_slave_rd_buff.v
|
PREFIX_rd_buff #(DATA_BITS, ID_BITS)
|
PREFIX_rd_buff
|
PREFIX_rd_buff(
|
PREFIX_rd_buff(
|
.clk(clk),
|
.clk(clk),
|
.reset(reset),
|
.reset(reset),
|
.RD(RD),
|
.RD(RD),
|
.DOUT(DOUT),
|
.DOUT(DOUT),
|
.rcmd_len(rcmd_len),
|
.rcmd_len(rcmd_len),
|
.rcmd_len2(rcmd_len2),
|
.rcmd_len2(rcmd_len2),
|
.rcmd_resp(rcmd_resp),
|
.rcmd_resp(rcmd_resp),
|
.rcmd_timeout(rcmd_timeout),
|
.rcmd_timeout(rcmd_timeout),
|
.rcmd_ready(rcmd_ready),
|
.rcmd_ready(rcmd_ready),
|
.RVALID(RVALID_pre),
|
.RVALID(RVALID),
|
.RREADY(RREADY),
|
.RREADY(RREADY),
|
.RLAST(RLAST),
|
.RLAST(RLAST),
|
.RDATA(RDATA),
|
.RDATA(RDATA),
|
.RD_last(RD_last),
|
.RD_last(RD_last),
|
.RRESP(RRESP),
|
.RRESP(RRESP),
|
.RBUSY(RBUSY)
|
.RBUSY(RBUSY)
|
);
|
);
|
|
|
//wr_buff
|
//wr_buff
|
assign WREADY_pre = (~wcmd_timeout) & (~wcmd_empty);
|
assign WREADY = (~wcmd_timeout) & (~wcmd_empty) & (~WBUSY);
|
assign WR = WVALID & WREADY & (~wcmd_empty);
|
assign WR = WVALID & WREADY & (~wcmd_empty);
|
assign DIN = WDATA;
|
assign DIN = WDATA;
|
assign BSEL = WSTRB;
|
assign BSEL = WSTRB;
|
|
|
|
|