Files
axipg/common/axi.intf.sv
Mahesh Asolkar 800e9c4008 Initial commit
* Bare skeleton implementation of everything
* Testbench builds with Verilator
* Test runs
2025-08-23 14:34:23 -07:00

415 lines
20 KiB
Systemverilog

// Generated AXI Interface
// This file is automatically generated by scripts/gen_axi_intf.pl
// Do not edit this file directly.
//
// Interface Name: AXI Signal List
interface axi_intf #(
parameter ADDR_WIDTH = 1,
parameter ARSNOOP_WIDTH = 1,
parameter AWCMO_WIDTH = 1,
parameter AWSNOOP_WIDTH = 1,
parameter BRESP_WIDTH = 1,
parameter CEIL_DATA_WIDTH_DIV_128 = 1,
parameter CEIL_DATA_WIDTH_DIV_128_TMS_4 = 1,
parameter CEIL_DATA_WIDTH_DIV_64 = 1,
parameter DATA_WIDTH = 1,
parameter DATA_WIDTH_DIV_8 = 1,
parameter ID_R_WIDTH = 1,
parameter ID_W_WIDTH = 1,
parameter LOOP_R_WIDTH = 1,
parameter LOOP_W_WIDTH = 1,
parameter MECID_WIDTH = 1,
parameter MPAM_WIDTH = 1,
parameter RCHUNKNUM_WIDTH = 1,
parameter RCHUNKSTRB_WIDTH = 1,
parameter RRESP_WIDTH = 1,
parameter SECSID_WIDTH = 1,
parameter SID_WIDTH = 1,
parameter SSID_WIDTH = 1,
parameter SUBSYSID_WIDTH = 1,
parameter SUM_USER_DATA_WIDTH_USER_RESP_WIDTH = 1,
parameter USER_DATA_WIDTH = 1,
parameter USER_REQ_WIDTH = 1,
parameter USER_RESP_WIDTH = 1
)
(
input ACLK,
input ARESETn
);
// A2.4.1 Clock and reset signals
// External signal: ACLK; // External Global clock signal [External]
// External signal: ARESETn; // External Global reset signal [External]
// A2.1.1 Write request channel
logic AWVALID; // Valid indicator [Manager]
logic AWREADY; // Ready indicator [Subordinate]
logic [ID_W_WIDTH-1:0] AWID; // Transaction identifier for the write channels [Manager]
logic [ADDR_WIDTH-1:0] AWADDR; // Transaction address [Manager]
logic [3:0] AWREGION; // Region identifier [Manager]
logic [7:0] AWLEN; // Transaction length [Manager]
logic [2:0] AWSIZE; // Transaction size [Manager]
logic [1:0] AWBURST; // Burst attribute [Manager]
logic AWLOCK; // Exclusive access indicator [Manager]
logic [3:0] AWCACHE; // Memory attributes [Manager]
logic [2:0] AWPROT; // Access attributes [Manager]
logic AWNSE; // Non-secure extension bit for RME [Manager]
logic [3:0] AWQOS; // QoS identifier [Manager]
logic [USER_REQ_WIDTH-1:0] AWUSER; // User-defined extension to a request [Manager]
logic [1:0] AWDOMAIN; // Shareability domain of a request [Manager]
logic [AWSNOOP_WIDTH-1:0] AWSNOOP; // Write request opcode [Manager]
logic [10:0] AWSTASHNID; // Stash Node ID [Manager]
logic AWSTASHNIDEN; // Stash Node ID enable [Manager]
logic [4:0] AWSTASHLPID; // Stash Logical Processor ID [Manager]
logic AWSTASHLPIDEN; // Stash Logical Processor ID enable [Manager]
logic AWTRACE; // Trace signal [Manager]
logic [LOOP_W_WIDTH-1:0] AWLOOP; // Loopback signals on the write channels [Manager]
logic AWMMUVALID; // MMU signal qualifier [Manager]
logic [SECSID_WIDTH-1:0] AWMMUSECSID; // Secure Stream ID [Manager]
logic [SID_WIDTH-1:0] AWMMUSID; // StreamID [Manager]
logic AWMMUSSIDV; // SubstreamID valid [Manager]
logic [SSID_WIDTH-1:0] AWMMUSSID; // SubstreamID [Manager]
logic AWMMUATST; // Address translated indicator [Manager]
logic [1:0] AWMMUFLOW; // SMMU flow type [Manager]
logic [3:0] AWPBHA; // Page-based Hardware Attributes [Manager]
logic [3:0] AWNSAID; // Non-secure Access ID [Manager]
logic [SUBSYSID_WIDTH-1:0] AWSUBSYSID; // Subsystem ID [Manager]
logic [5:0] AWATOP; // Atomic transaction opcode [Manager]
logic [MPAM_WIDTH-1:0] AWMPAM; // MPAM information with a request [Manager]
logic AWIDUNQ; // Unique ID indicator [Manager]
logic [AWCMO_WIDTH-1:0] AWCMO; // CMO type [Manager]
logic [1:0] AWTAGOP; // Memory Tag operation for write requests [Manager]
logic [MECID_WIDTH-1:0] AWMECID; // Memory Encryption Context identifier [Manager]
// A2.1.1 Write request channel
logic WVALID; // Valid indicator [Manager]
logic WREADY; // Ready indicator [Subordinate]
logic [DATA_WIDTH-1:0] WDATA; // Write data [Manager]
logic [DATA_WIDTH_DIV_8-1:0] WSTRB; // Write data strobes [Manager]
logic [CEIL_DATA_WIDTH_DIV_128_TMS_4-1:0] WTAG; // Memory Tag [Manager]
logic [CEIL_DATA_WIDTH_DIV_128-1:0] WTAGUPDATE; // Memory Tag update [Manager]
logic WLAST; // Last write data [Manager]
logic [USER_DATA_WIDTH-1:0] WUSER; // User-defined extension to write data [Manager]
logic [CEIL_DATA_WIDTH_DIV_64-1:0] WPOISON; // Poison indicator [Manager]
logic WTRACE; // Trace signal [Manager]
// A2.1.3 Write response channel
logic BVALID; // Valid indicator [Subordinate]
logic BREADY; // Ready indicator [Manager]
logic [ID_W_WIDTH-1:0] BID; // Transaction identifier for the write channels [Subordinate]
logic BIDUNQ; // Unique ID indicator [Subordinate]
logic [BRESP_WIDTH-1:0] BRESP; // Write response code [Subordinate]
logic BCOMP; // Completion response indicator [Subordinate]
logic BPERSIST; // Persist response [Subordinate]
logic [1:0] BTAGMATCH; // Memory Tag Match response [Subordinate]
logic [USER_RESP_WIDTH-1:0] BUSER; // User-defined extension to a write response [Subordinate]
logic BTRACE; // Trace signal [Subordinate]
logic [LOOP_W_WIDTH-1:0] BLOOP; // Loopback signals on the write channels [Subordinate]
logic [1:0] BBUSY; // Busy indicator [Subordinate]
// A2.2.1 Read request channel
logic ARVALID; // Valid indicator [Manager]
logic ARREADY; // Ready indicator [Subordinate]
logic [ID_R_WIDTH-1:0] ARID; // Transaction identifier for the read channels [Manager]
logic [ADDR_WIDTH-1:0] ARADDR; // Transaction address [Manager]
logic [3:0] ARREGION; // Region identifier [Manager]
logic [7:0] ARLEN; // Transaction length [Manager]
logic [2:0] ARSIZE; // Transaction size [Manager]
logic [1:0] ARBURST; // Burst attribute [Manager]
logic ARLOCK; // Exclusive access indicator [Manager]
logic [3:0] ARCACHE; // Memory attributes [Manager]
logic [2:0] ARPROT; // Access attributes [Manager]
logic ARNSE; // Non-secure extension bit for RME [Manager]
logic [3:0] ARQOS; // QoS identifier [Manager]
logic [USER_REQ_WIDTH-1:0] ARUSER; // User-defined extension to a request [Manager]
logic [1:0] ARDOMAIN; // Shareability domain of a request [Manager]
logic [ARSNOOP_WIDTH-1:0] ARSNOOP; // Read request opcode [Manager]
logic ARTRACE; // Trace signal [Manager]
logic [LOOP_R_WIDTH-1:0] ARLOOP; // Loopback signals on the read channels [Manager]
logic ARMMUVALID; // MMU signal qualifier [Manager]
logic [SECSID_WIDTH-1:0] ARMMUSECSID; // Secure Stream ID [Manager]
logic [SID_WIDTH-1:0] ARMMUSID; // StreamID [Manager]
logic ARMMUSSIDV; // SubstreamID valid [Manager]
logic [SSID_WIDTH-1:0] ARMMUSSID; // SubstreamID [Manager]
logic ARMMUATST; // Address translated indicator [Manager]
logic [1:0] ARMMUFLOW; // SMMU flow type [Manager]
logic [3:0] ARPBHA; // Page-based Hardware Attributes [Manager]
logic [3:0] ARNSAID; // Non-secure Access ID [Manager]
logic [SUBSYSID_WIDTH-1:0] ARSUBSYSID; // Subsystem ID [Manager]
logic ARCHUNKEN; // Read data chunking enable [Manager]
logic ARIDUNQ; // Unique ID indicator [Manager]
logic [1:0] ARTAGOP; // Memory Tag operation for read requests [Manager]
logic [MECID_WIDTH-1:0] ARMECID; // Memory Encryption Context identifier [Manager]
// A2.2.2 Read data channel
logic RVALID; // Valid indicator [Subordinate]
logic RREADY; // Ready indicator [Manager]
logic [ID_R_WIDTH-1:0] RID; // Transaction identifier for the read channels [Subordinate]
logic RIDUNQ; // Unique ID indicator [Subordinate]
logic [DATA_WIDTH-1:0] RDATA; // Read data [Subordinate]
logic [CEIL_DATA_WIDTH_DIV_128_TMS_4-1:0] RTAG; // Memory Tag [Subordinate]
logic [RRESP_WIDTH-1:0] RRESP; // Read response [Subordinate]
logic RLAST; // Last read data [Subordinate]
logic [SUM_USER_DATA_WIDTH_USER_RESP_WIDTH-1:0] RUSER; // User-defined extension to read data and response [Subordinate]
logic [CEIL_DATA_WIDTH_DIV_64-1:0] RPOISON; // Poison indicator [Subordinate]
logic RTRACE; // Trace signal [Subordinate]
logic [LOOP_R_WIDTH-1:0] RLOOP; // Loopback signals on the read channels [Subordinate]
logic RCHUNKV; // Read data chunking valid [Subordinate]
logic [RCHUNKNUM_WIDTH-1:0] RCHUNKNUM; // Read data chunk number [Subordinate]
logic [RCHUNKSTRB_WIDTH-1:0] RCHUNKSTRB; // Read data chunk strobe [Subordinate]
logic [1:0] RBUSY; // Busy indicator [Subordinate]
// Modport for Manager role
modport MANAGER (
// A2.4.1 Clock and reset signals
input ACLK,
input ARESETn,
// A2.1.1 Write request channel
output AWVALID,
input AWREADY,
output AWID,
output AWADDR,
output AWREGION,
output AWLEN,
output AWSIZE,
output AWBURST,
output AWLOCK,
output AWCACHE,
output AWPROT,
output AWNSE,
output AWQOS,
output AWUSER,
output AWDOMAIN,
output AWSNOOP,
output AWSTASHNID,
output AWSTASHNIDEN,
output AWSTASHLPID,
output AWSTASHLPIDEN,
output AWTRACE,
output AWLOOP,
output AWMMUVALID,
output AWMMUSECSID,
output AWMMUSID,
output AWMMUSSIDV,
output AWMMUSSID,
output AWMMUATST,
output AWMMUFLOW,
output AWPBHA,
output AWNSAID,
output AWSUBSYSID,
output AWATOP,
output AWMPAM,
output AWIDUNQ,
output AWCMO,
output AWTAGOP,
output AWMECID,
// A2.1.1 Write request channel
output WVALID,
input WREADY,
output WDATA,
output WSTRB,
output WTAG,
output WTAGUPDATE,
output WLAST,
output WUSER,
output WPOISON,
output WTRACE,
// A2.1.3 Write response channel
input BVALID,
output BREADY,
input BID,
input BIDUNQ,
input BRESP,
input BCOMP,
input BPERSIST,
input BTAGMATCH,
input BUSER,
input BTRACE,
input BLOOP,
input BBUSY,
// A2.2.1 Read request channel
output ARVALID,
input ARREADY,
output ARID,
output ARADDR,
output ARREGION,
output ARLEN,
output ARSIZE,
output ARBURST,
output ARLOCK,
output ARCACHE,
output ARPROT,
output ARNSE,
output ARQOS,
output ARUSER,
output ARDOMAIN,
output ARSNOOP,
output ARTRACE,
output ARLOOP,
output ARMMUVALID,
output ARMMUSECSID,
output ARMMUSID,
output ARMMUSSIDV,
output ARMMUSSID,
output ARMMUATST,
output ARMMUFLOW,
output ARPBHA,
output ARNSAID,
output ARSUBSYSID,
output ARCHUNKEN,
output ARIDUNQ,
output ARTAGOP,
output ARMECID,
// A2.2.2 Read data channel
input RVALID,
output RREADY,
input RID,
input RIDUNQ,
input RDATA,
input RTAG,
input RRESP,
input RLAST,
input RUSER,
input RPOISON,
input RTRACE,
input RLOOP,
input RCHUNKV,
input RCHUNKNUM,
input RCHUNKSTRB,
input RBUSY
);
// Modport for Subordinate role
modport SUBORDINATE (
// A2.4.1 Clock and reset signals
input ACLK,
input ARESETn,
// A2.1.1 Write request channel
input AWVALID,
output AWREADY,
input AWID,
input AWADDR,
input AWREGION,
input AWLEN,
input AWSIZE,
input AWBURST,
input AWLOCK,
input AWCACHE,
input AWPROT,
input AWNSE,
input AWQOS,
input AWUSER,
input AWDOMAIN,
input AWSNOOP,
input AWSTASHNID,
input AWSTASHNIDEN,
input AWSTASHLPID,
input AWSTASHLPIDEN,
input AWTRACE,
input AWLOOP,
input AWMMUVALID,
input AWMMUSECSID,
input AWMMUSID,
input AWMMUSSIDV,
input AWMMUSSID,
input AWMMUATST,
input AWMMUFLOW,
input AWPBHA,
input AWNSAID,
input AWSUBSYSID,
input AWATOP,
input AWMPAM,
input AWIDUNQ,
input AWCMO,
input AWTAGOP,
input AWMECID,
// A2.1.1 Write request channel
input WVALID,
output WREADY,
input WDATA,
input WSTRB,
input WTAG,
input WTAGUPDATE,
input WLAST,
input WUSER,
input WPOISON,
input WTRACE,
// A2.1.3 Write response channel
output BVALID,
input BREADY,
output BID,
output BIDUNQ,
output BRESP,
output BCOMP,
output BPERSIST,
output BTAGMATCH,
output BUSER,
output BTRACE,
output BLOOP,
output BBUSY,
// A2.2.1 Read request channel
input ARVALID,
output ARREADY,
input ARID,
input ARADDR,
input ARREGION,
input ARLEN,
input ARSIZE,
input ARBURST,
input ARLOCK,
input ARCACHE,
input ARPROT,
input ARNSE,
input ARQOS,
input ARUSER,
input ARDOMAIN,
input ARSNOOP,
input ARTRACE,
input ARLOOP,
input ARMMUVALID,
input ARMMUSECSID,
input ARMMUSID,
input ARMMUSSIDV,
input ARMMUSSID,
input ARMMUATST,
input ARMMUFLOW,
input ARPBHA,
input ARNSAID,
input ARSUBSYSID,
input ARCHUNKEN,
input ARIDUNQ,
input ARTAGOP,
input ARMECID,
// A2.2.2 Read data channel
output RVALID,
input RREADY,
output RID,
output RIDUNQ,
output RDATA,
output RTAG,
output RRESP,
output RLAST,
output RUSER,
output RPOISON,
output RTRACE,
output RLOOP,
output RCHUNKV,
output RCHUNKNUM,
output RCHUNKSTRB,
output RBUSY
);
endinterface // axi_intf