vram/MemArbiter: remove MemArbiterClient, not needed right now
This commit is contained in:
parent
eca95e0fb6
commit
2ebf399d62
|
@ -5,7 +5,6 @@ import Vector::*;
|
||||||
|
|
||||||
export MemArbiterOp(..);
|
export MemArbiterOp(..);
|
||||||
export MemArbiterServer(..);
|
export MemArbiterServer(..);
|
||||||
export MemArbiterClient(..);
|
|
||||||
export MemArbiter(..), mkPriorityMemArbiter, mkRoundRobinMemArbiter;
|
export MemArbiter(..), mkPriorityMemArbiter, mkRoundRobinMemArbiter;
|
||||||
|
|
||||||
// A MemArbiterOp is an operation that a client is seeking permission
|
// A MemArbiterOp is an operation that a client is seeking permission
|
||||||
|
@ -31,25 +30,6 @@ interface MemArbiterServer#(type addr);
|
||||||
method Bool grant();
|
method Bool grant();
|
||||||
endinterface
|
endinterface
|
||||||
|
|
||||||
// A MemArbiterClient emits requests and receives grants.
|
|
||||||
interface MemArbiterClient#(type addr);
|
|
||||||
method Maybe#(MemArbiterOp#(addr)) request();
|
|
||||||
method Action grant();
|
|
||||||
endinterface
|
|
||||||
|
|
||||||
// Arbiter clients and servers can be connected in the obvious way.
|
|
||||||
instance Connectable#(MemArbiterClient#(addr), MemArbiterServer#(addr));
|
|
||||||
module mkConnection(MemArbiterClient#(addr) client, MemArbiterServer#(addr) server, Empty ifc);
|
|
||||||
rule send_request (client.request matches tagged Valid .req);
|
|
||||||
server.request(req);
|
|
||||||
endrule
|
|
||||||
|
|
||||||
rule send_grant (server.grant());
|
|
||||||
client.grant();
|
|
||||||
endrule
|
|
||||||
endmodule
|
|
||||||
endinstance
|
|
||||||
|
|
||||||
// A MemArbiter manages concurrent access to a memory port.
|
// A MemArbiter manages concurrent access to a memory port.
|
||||||
interface MemArbiter#(numeric type num_clients, type addr);
|
interface MemArbiter#(numeric type num_clients, type addr);
|
||||||
// ports allow clients to request memory access.
|
// ports allow clients to request memory access.
|
||||||
|
|
Loading…
Reference in New Issue