add bus diagram and further work on Bus
This commit is contained in:
parent
c9356eecfd
commit
71fbb7d2e5
3 changed files with 732 additions and 8 deletions
20
bs/Bus.bs
20
bs/Bus.bs
|
@ -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)
|
||||
|
|
Reference in a new issue