vram/VRAM: only expect a response on reads
The VRAMCore doesn't generate responses for writes, so demanding one here deadlocks the port the first time it writes something.
This commit is contained in:
parent
e021e7d356
commit
65d13a0e50
|
@ -44,9 +44,12 @@ module mkArbitratedVRAMServers(VRAMServer ram, MemArbiter#(n, VRAMAddr) arb, Vec
|
||||||
(* fire_when_enabled *)
|
(* fire_when_enabled *)
|
||||||
rule submit (awaiting_response[1] matches tagged Invalid);
|
rule submit (awaiting_response[1] matches tagged Invalid);
|
||||||
let port = arb.granted_port();
|
let port = arb.granted_port();
|
||||||
ram.request.put(requests[port].first);
|
let req = requests[port].first;
|
||||||
|
ram.request.put(req);
|
||||||
requests[port].deq();
|
requests[port].deq();
|
||||||
awaiting_response[1] <= tagged Valid port;
|
// Only reads generate a response.
|
||||||
|
if (req.data matches tagged Invalid)
|
||||||
|
awaiting_response[1] <= tagged Valid port;
|
||||||
endrule
|
endrule
|
||||||
|
|
||||||
(* fire_when_enabled *)
|
(* fire_when_enabled *)
|
||||||
|
|
Loading…
Reference in New Issue