summaryrefslogtreecommitdiff
path: root/mk/builtin/peakrdl_intfs/avalon_mm_intf.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
committerAlejandro Soto <alejandro@34project.org>2024-04-27 11:30:47 -0600
commita4b94d40e61e634aa8e970af3911a7671e7d8d50 (patch)
treee7fc9b2b9d84a32aa9f01aa744008d3308feac92 /mk/builtin/peakrdl_intfs/avalon_mm_intf.sv
parentd5dd7bf1879c2a99779b70b8f063f3f16d8b2df8 (diff)
mk: implement peakrdl support
Diffstat (limited to 'mk/builtin/peakrdl_intfs/avalon_mm_intf.sv')
-rw-r--r--mk/builtin/peakrdl_intfs/avalon_mm_intf.sv46
1 files changed, 46 insertions, 0 deletions
diff --git a/mk/builtin/peakrdl_intfs/avalon_mm_intf.sv b/mk/builtin/peakrdl_intfs/avalon_mm_intf.sv
new file mode 100644
index 0000000..1d3d0c3
--- /dev/null
+++ b/mk/builtin/peakrdl_intfs/avalon_mm_intf.sv
@@ -0,0 +1,46 @@
+interface avalon_mm_intf #(
+ parameter DATA_WIDTH = 32,
+ parameter ADDR_WIDTH = 32 // Important! Avalon uses word addressing
+);
+ // Command
+ logic read;
+ logic write;
+ logic waitrequest;
+ logic [ADDR_WIDTH-1:0] address;
+ logic [DATA_WIDTH-1:0] writedata;
+ logic [DATA_WIDTH/8-1:0] byteenable;
+
+ // Response
+ logic readdatavalid;
+ logic writeresponsevalid;
+ logic [DATA_WIDTH-1:0] readdata;
+ logic [1:0] response;
+
+ modport host (
+ output read,
+ output write,
+ input waitrequest,
+ output address,
+ output writedata,
+ output byteenable,
+
+ input readdatavalid,
+ input writeresponsevalid,
+ input readdata,
+ input response
+ );
+
+ modport agent (
+ input read,
+ input write,
+ output waitrequest,
+ input address,
+ input writedata,
+ input byteenable,
+
+ output readdatavalid,
+ output writeresponsevalid,
+ output readdata,
+ output response
+ );
+endinterface