interface Tile#(type ext_type, numeric type numReadClients, numeric type numWriteClients);
interface PhysMemSlave#(18,32) portals;
interface ReadOnly#(Bool) interrupt;
interface Vector#(numReadClients,MemReadClient#(DataBusWidth)) readers;
interface Vector#(numWriteClients,MemWriteClient#(DataBusWidth)) writers;
interface ext_type ext;
endinterface
Each tile would be loaded via partial reconfiguration into a Platform supporting one or more tiles:
interface Platform#(type pins, numeric type numMasters);
interface PhysMemSlave#(32,32) slave;
interface Vector#(numMasters,PhysMemMaster#(PhysAddrWidth, DataBusWidth)) masters;
interface Vector#(16,ReadOnly#(Bool)) interrupt;
interface pins pins;
endinterface
This is a work in progress, but there are a couple of tests in tests/test_tileread and tests/test_tilewrite.
Cheers,
Jamey