summaryrefslogtreecommitdiff
path: root/rtl/inc/bus/ari.svh
diff options
context:
space:
mode:
authorIan M. <ian@aptel.org>2026-09-26 01:15:49 +0000
committerIan M. <ian@aptel.org>2026-09-26 01:17:40 +0000
commit662c81b33d812a69cdbfa9a1e148ae4b73d43b90 (patch)
treefe02d92cc83d2c7353001f3ab1cab5a43145e424 /rtl/inc/bus/ari.svh
parent826f773af17ee09a2bb03fe184aa8967b0083df3 (diff)
bus: Add ARI specific defs
Signed-off-by: Ian M. <ian@aptel.org>
Diffstat (limited to 'rtl/inc/bus/ari.svh')
-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