add bus diagram and further work on Bus

This commit is contained in:
Yehowshua Immanuel 2025-04-10 10:59:52 -04:00
parent c9356eecfd
commit 71fbb7d2e5
3 changed files with 732 additions and 8 deletions

View file

@ -32,23 +32,27 @@ mkBus busMap = do
dummyVar :: Reg(Bool)
dummyVar <- mkReg False
-- Queues to hold requests from clients to servers
requestQueues :: Vector numServers (FIFOF (TaggedBusRequest inFlightTransactions))
requestQueues <- replicateM (mkSizedBypassFIFOF (valueOf inFlightTransactions))
-- Queues to hold requests from clients to arbiter
clientRequestQueues :: Vector numClients (FIFOF (TaggedBusRequest inFlightTransactions))
clientRequestQueues <- replicateM (mkSizedBypassFIFOF (valueOf inFlightTransactions))
-- Queues to hold responses from servers to clients
responseQueues :: Vector numClients (FIFOF (TaggedBusResponse inFlightTransactions))
responseQueues <- replicateM (mkSizedBypassFIFOF (valueOf inFlightTransactions))
-- Queues to hold responses from arbiter to clients
clientResponseQueues :: Vector numClients (FIFOF (TaggedBusResponse inFlightTransactions))
clientResponseQueues <- replicateM (mkSizedBypassFIFOF (valueOf inFlightTransactions))
-- -- Queues to hold requests from arbiter to server
-- serverRequestQueues :: Vector numServers (FIFOF (TaggedBusRequest inFlightTransactions))
-- serverRequestQueues <- replicateM (mkSizedBypassFIFOF (valueOf inFlightTransactions))
-- Client interface vector
let clients :: Vector numClients (BusClient inFlightTransactions)
clients = genWith $ \clientIdx ->
let
selectedClientRequestQueue :: FIFOF (TaggedBusRequest inFlightTransactions)
selectedClientRequestQueue = (select requestQueues clientIdx)
selectedClientRequestQueue = (select clientRequestQueues clientIdx)
selectedClientResponseQueue :: FIFOF (TaggedBusResponse inFlightTransactions)
selectedClientResponseQueue = (select responseQueues clientIdx)
selectedClientResponseQueue = (select clientResponseQueues clientIdx)
selectedTagEngine :: TagEngine inFlightTransactions
selectedTagEngine = (select tagEngineByClientVec clientIdx)