| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /* AXI FULL SLAVE */
- interface AxiMMBus #(parameter AXI_DATA_WIDTH = 64);
- /* Global Signals */
- logic s_axi_aclk_i;
- logic s_axi_aresetn_i;
- /* Input AXI4 FULL Signals */
- logic [AXI_DATA_WIDTH-1:0] s_axi_awaddr_i; // Write Address
- logic [7:0] s_axi_awlen_i; // Burst Length. Exact number of transfers in a burst.
- logic [2:0] s_axi_awsize_i; // Burst Size. Number of bytes in each transfer.
- /* Burst type. FIXED: 00, INCR: 01, WRAP: 10, Reserved: 11 */
- /* INCR - Incrementing burst. The address increments by the data width for each transfer. */
- /* WRAP - Wrapping burst. The address increments by the data width for each transfer, but the address does not increment to the next address when the burst wraps. */
- /* FIXED - Fixed burst. The address does not increment for the burst. */
- logic [1:0] s_axi_awburst_i; // Burst Type. Type of burst operation and size determine how the address is incremented.
- logic s_axi_awvalid_i; // Write Address Valid
- logic [AXI_DATA_WIDTH-1:0] s_axi_wdata_i;// Write Data
- logic [AXI_DATA_WIDTH/8-1:0] s_axi_wstrb_i; // Write Strobe. This signal indicates which byte lanes hold valid data.
- logic s_axi_wlast_i; // Write Last. This signal indicates the last transfer in a burst.
- logic s_axi_wvalid_i; // Write Valid. This signal indicates that the write data on the bus is valid.
- logic s_axi_bready_i; // Write Response Ready. This signal indicates that the master is ready to accept a write response.
- logic [AXI_DATA_WIDTH-1:0] s_axi_araddr_i; // Read Address. This signal is the address of the first transfer in a burst.
- logic [7:0] s_axi_arlen_i; // Burst Length. Exact number of transfers in a burst.
- logic [2:0] s_axi_arsize_i;
- logic [1:0] s_axi_arburst_i;
- logic s_axi_arvalid_i;
- logic s_axi_rready_i;
- /* Output AXI4 FULL Signals */
- logic s_axi_awready_o;
- logic s_axi_wready_o;
- logic [1:0] s_axi_bresp_o;
- logic s_axi_bvalid_o;
- logic s_axi_arready_o;
- logic [AXI_DATA_WIDTH-1:0] s_axi_rdata_o;
- logic s_axi_rlast_o;
- logic [1:0] s_axi_rresp_o;
- logic s_axi_rvalid_o;
-
- modport master (
- input s_axi_aclk_i,
- input s_axi_aresetn_i,
-
- /* Input AXI4 FULL Signals */
- output s_axi_awaddr_i, // Write Address
- output s_axi_awlen_i, // Burst Length. Exact number of transfers in a burst.
- output s_axi_awsize_i, // Burst Size. Number of bytes in each transfer.
-
- output s_axi_awburst_i, // Burst Type. Type of burst operation and size determine how the address is incremented.
- output s_axi_awvalid_i, // Write Address Valid
- output s_axi_wdata_i,// Write Data
- output s_axi_wstrb_i, // Write Strobe. This signal indicates which byte lanes hold valid data.
- output s_axi_wlast_i, // Write Last. This signal indicates the last transfer in a burst.
- output s_axi_wvalid_i, // Write Valid. This signal indicates that the write data on the bus is valid.
- output s_axi_bready_i, // Write Response Ready. This signal indicates that the master is ready to accept a write response.
- output s_axi_araddr_i, // Read Address. This signal is the address of the first transfer in a burst.
- output s_axi_arlen_i, // Burst Length. Exact number of transfers in a burst.
- output s_axi_arsize_i,
- output s_axi_arburst_i,
- output s_axi_arvalid_i,
- output s_axi_rready_i,
-
-
- input s_axi_awready_o,
- input s_axi_wready_o,
- input s_axi_bresp_o,
- input s_axi_bvalid_o,
- input s_axi_arready_o,
- input s_axi_rdata_o,
- input s_axi_rlast_o,
- input s_axi_rresp_o,
- input s_axi_rvalid_o
- );
- modport slave (
- input s_axi_aclk_i,
- input s_axi_aresetn_i,
-
- /* Input AXI4 FULL Signals */
- input s_axi_awaddr_i, // Write Address
- input s_axi_awlen_i, // Burst Length. Exact number of transfers in a burst.
- input s_axi_awsize_i, // Burst Size. Number of bytes in each transfer.
-
- input s_axi_awburst_i, // Burst Type. Type of burst operation and size determine how the address is incremented.
- input s_axi_awvalid_i, // Write Address Valid
- input s_axi_wdata_i,// Write Data
- input s_axi_wstrb_i, // Write Strobe. This signal indicates which byte lanes hold valid data.
- input s_axi_wlast_i, // Write Last. This signal indicates the last transfer in a burst.
- input s_axi_wvalid_i, // Write Valid. This signal indicates that the write data on the bus is valid.
- input s_axi_bready_i, // Write Response Ready. This signal indicates that the master is ready to accept a write response.
- input s_axi_araddr_i, // Read Address. This signal is the address of the first transfer in a burst.
- input s_axi_arlen_i, // Burst Length. Exact number of transfers in a burst.
- input s_axi_arsize_i,
- input s_axi_arburst_i,
- input s_axi_arvalid_i,
- input s_axi_rready_i,
-
-
- output s_axi_awready_o,
- output s_axi_wready_o,
- output s_axi_bresp_o,
- output s_axi_bvalid_o,
- output s_axi_arready_o,
- output s_axi_rdata_o,
- output s_axi_rlast_o,
- output s_axi_rresp_o,
- output s_axi_rvalid_o
- );
- endinterface
|