David Anderson
191cd1bfa2
vram: document MemArbiter, fix round-robin ordering bug
2024-09-08 14:10:52 -07:00
David Anderson
f31f64f5a2
vram: refactor MemArbiter into separate arbiters
...
Rather than hardcode one architecture for GARY, the arbiters
are now split and can be allocated per-port. The arbiter interface
includes plumbing so that one arbiter can propagate a write conflict
to another, so it can still implement multi-port arbitration as long
as every client is statically allocated to one port.
2024-09-08 13:26:25 -07:00
David Anderson
2760bad965
vram: move VRAM to VRAMCore, in prep for arbitrated VRAM
2024-09-08 09:28:28 -07:00
David Anderson
69b7ce7f9e
vram: adjust the MemoryArbiterClient interface a little
2024-09-08 09:27:25 -07:00
David Anderson
81e5264d22
vram: make arbiter clients and servers connectable
2024-09-07 19:49:43 -07:00
David Anderson
aa048537ef
vram/MemArbiter: rewrite to use client/server idioms
...
In preparation for making the two Connectable and defining an
arbitrated memory client/server for VRAM access.
2024-09-07 16:58:11 -07:00
David Anderson
b2b2c14009
vram/VRAM: finish the top-level VRAM module
...
Well, for now at least. It can build 112KiB and 128KiB memories that
seem to synthesize to something reasonable.
2024-09-07 16:04:21 -07:00
David Anderson
f7cb4b6ba2
vram/VRAM: early VRAM implementation
...
Only checked up to mkByteRAMArray, main VRAM still WIP
2024-09-06 16:11:55 -07:00
David Anderson
ab20db44f4
vram: rename MemoryArbiter to something shorter
...
As I implement the whole transaction-level modeling thing with
arbitration, the interface names are getting longer and longer.
2024-09-06 10:04:20 -07:00
David Anderson
7f10694371
vram: get rid of old commented code
2024-09-06 00:13:42 -07:00
David Anderson
f010693b9b
vram: compact the test output even more
2024-09-06 00:08:14 -07:00
David Anderson
71f422b8c1
vram: fix up documentation for MemoryArbiterWriter
2024-09-06 00:02:23 -07:00
David Anderson
e0d156cdd1
vram: a little more formatting of the vram test
...
Make it a bit more compact, for large test runs
2024-09-06 00:00:25 -07:00
David Anderson
d41ca7daae
vram: tidy up formatting
2024-09-05 23:51:21 -07:00
David Anderson
60348fefd2
vram: one more arbiter test for port conflicts
2024-09-05 23:46:01 -07:00
David Anderson
5e22d03e15
vram: implement a MemoryArbiter for VRAM
2024-09-05 23:39:21 -07:00