-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIIO.sv
30 lines (30 loc) · 1007 Bytes
/
IIO.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
`ifndef IO_INTERFACES_H
`define IO_INTERFACES_H
//verilator lint_off DECLFILENAME
interface IMemory(input clk,rst);
logic [31:2] instrAddr;
logic [31:0] instrRead;
logic instrReady;
logic [31:0] dataAddr;
logic [31:0] dataRead,dataWrite;
logic [3:0] dataBE;
logic dataWE,dataEN;
modport Memory(input clk,rst, instrAddr,output instrRead,instrReady,
input dataAddr,dataWrite,dataBE,dataWE,dataEN,output dataRead);
modport IF(output instrAddr,input instrRead,instrReady);
modport Access(output dataWrite,dataAddr,dataBE,dataWE,dataEN);
modport MEM(input dataRead);
endinterface
interface IBridge(input clk);
logic [31:0]PrWD,PrRD;
logic [31:2]PrAddr;
logic [3:0]PrBE;
logic [7:2]HWInt;
logic IOWrite,IORead;
modport CPU(input PrRD,HWInt,
output PrWD,PrAddr,PrBE,IOWrite,IORead);
modport Access(output PrWD,PrAddr,PrBE,IOWrite,IORead);
modport MEM(input PrRD);
modport CP0(input HWInt);
endinterface
`endif