This repository has been archived on 2025-06-25. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
riscv-bluespec-classic/bs/Bus.bs

35 lines
814 B
Haskell

package Bus(a) where
import Types
import BusTypes
import TagEngine
import Vector
interface (TestType :: * -> *) t = {}
-- doSomething :: t -> Action
mkTestType :: (
Bits t n, Arith t, Eq t
)
=> Module (TestType t)
mkTestType = do
return $ interface TestType {}
mkTestTop :: Module Empty
mkTestTop = do
testType :: TestType (UInt 5)
testType <- mkTestType
return $ interface Empty { }
mkBus :: Vector numClients (BusClient inFlightTransactions)
-> Vector numServers (BusServer inFlightTransactions numClients)
-> Module Empty
mkBus clientVec serverVec = do
tagEngineByClient :: Vector numClients (TagEngine inFlightTransactions)
tagEngineByClient <- replicateM mkTagEngine
return $ interface Empty { }
a :: UInt 5
a = 3