summaryrefslogtreecommitdiff
path: root/mk/builtin/peakrdl_intfs/avalon_mm_intf.sv
diff options
context:
space:
mode:
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