@@ -26,9 +26,21 @@
|
||||
`endif
|
||||
{% endif -%}
|
||||
|
||||
logic axi_wr_valid;
|
||||
logic axi_wr_invalid;
|
||||
logic cpuif_wr_ack_int;
|
||||
logic cpuif_rd_ack_int;
|
||||
|
||||
assign axi_wr_valid = {{cpuif.signal("AWVALID")}} & {{cpuif.signal("WVALID")}};
|
||||
assign axi_wr_invalid = {{cpuif.signal("AWVALID")}} ^ {{cpuif.signal("WVALID")}};
|
||||
|
||||
// Ready/acceptance follows the simplified single-beat requirement
|
||||
assign {{cpuif.signal("AWREADY")}} = axi_wr_valid;
|
||||
assign {{cpuif.signal("WREADY")}} = axi_wr_valid;
|
||||
assign {{cpuif.signal("ARREADY")}} = {{cpuif.signal("ARVALID")}};
|
||||
|
||||
assign cpuif_req = {{cpuif.signal("AWVALID")}} | {{cpuif.signal("ARVALID")}};
|
||||
assign cpuif_wr_en = {{cpuif.signal("AWVALID")}} & {{cpuif.signal("WVALID")}};
|
||||
assign cpuif_wr_en = axi_wr_valid;
|
||||
assign cpuif_rd_en = {{cpuif.signal("ARVALID")}};
|
||||
|
||||
assign cpuif_wr_addr = {{cpuif.signal("AWADDR")}};
|
||||
@@ -42,12 +54,14 @@ assign cpuif_wr_byte_en = {{cpuif.signal("WSTRB")}};
|
||||
// Read: ack=RVALID, err=RRESP[1] (SLVERR/DECERR), data=RDATA
|
||||
//
|
||||
assign {{cpuif.signal("RDATA")}} = cpuif_rd_data;
|
||||
assign {{cpuif.signal("RVALID")}} = cpuif_rd_ack;
|
||||
assign cpuif_rd_ack_int = cpuif_rd_ack | cpuif_rd_sel.cpuif_err;
|
||||
assign {{cpuif.signal("RVALID")}} = cpuif_rd_ack_int;
|
||||
assign {{cpuif.signal("RRESP")}} = (cpuif_rd_err | cpuif_rd_sel.cpuif_err | cpuif_wr_sel.cpuif_err) ? 2'b10 : 2'b00;
|
||||
|
||||
// Write: ack=BVALID, err=BRESP[1]
|
||||
assign {{cpuif.signal("BVALID")}} = cpuif_wr_ack;
|
||||
assign {{cpuif.signal("BRESP")}} = (cpuif_wr_err | cpuif_wr_sel.cpuif_err | cpuif_rd_sel.cpuif_err) ? 2'b10 : 2'b00;
|
||||
assign cpuif_wr_ack_int = cpuif_wr_ack | cpuif_wr_sel.cpuif_err | axi_wr_invalid;
|
||||
assign {{cpuif.signal("BVALID")}} = cpuif_wr_ack_int;
|
||||
assign {{cpuif.signal("BRESP")}} = (cpuif_wr_err | cpuif_wr_sel.cpuif_err | cpuif_rd_sel.cpuif_err | axi_wr_invalid) ? 2'b10 : 2'b00;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Fanout CPU Bus interface signals
|
||||
@@ -64,4 +78,4 @@ assign {{cpuif.signal("BRESP")}} = (cpuif_wr_err | cpuif_wr_sel.cpuif_err | cpu
|
||||
//--------------------------------------------------------------------------
|
||||
// Fanin CPU Bus interface signals
|
||||
//--------------------------------------------------------------------------
|
||||
{{fanin|walk(cpuif=cpuif)}}
|
||||
{{fanin|walk(cpuif=cpuif)}}
|
||||
|
||||
Reference in New Issue
Block a user