summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rtl/inc/bus/ari.svh41
1 files changed, 41 insertions, 0 deletions
diff --git a/rtl/inc/bus/ari.svh b/rtl/inc/bus/ari.svh
new file mode 100644
index 0000000..86a3915
--- /dev/null
+++ b/rtl/inc/bus/ari.svh
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2026, Apollo Telephone Laboratories.
+// Provided under the BSD-3 clause.
+//
+
+`ifndef BUS_ARI_SVH
+`define BUS_ARI_SVH 1
+
+//
+// Number of bus segments / endpoints supported, this value
+// should be bumped per every new device added to the chip.
+//
+parameter ARI_SEGMENT_COUNT = 3;
+
+// Physical memory address bit-width
+parameter PMA_XLEN = 32;
+
+//
+// ARI bus tags for determining payload type
+//
+// @ARI_NOP: No-operation, as per the spec
+//
+typedef enum logic [3:0] {
+ ARI_NOP
+} AriTag;
+
+//
+// Represents an ARI frame that encapsulates a payload.
+// Refer to the ARI specification.
+//
+// @tag: Frame tag / kind
+// @seq: Frame sequence
+// @payload: Payload (reserved if tag = ARI_NOP)
+//
+typedef struct packed {
+ AriTag tag;
+ logic [3:0] seq;
+ logic [127:0] payload;
+} AriFrame;
+
+`endif // !BUS_ARI_SVH