From fe2fa21fcc57d03477e82ef0bfa9281de8ea1b10 Mon Sep 17 00:00:00 2001 From: Yehowshua Immanuel Date: Tue, 8 Apr 2025 23:04:30 -0400 Subject: [PATCH] skeletons of Bus module slowly forming --- bs/Bus.bs | 17 ++++++++++++++++- bs/BusTypes.bs | 5 +---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/bs/Bus.bs b/bs/Bus.bs index 87ca6ff..6d648f1 100644 --- a/bs/Bus.bs +++ b/bs/Bus.bs @@ -2,11 +2,16 @@ 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 :: ( + Bits t n, Arith t, Eq t + ) + => Module (TestType t) mkTestType = do return $ interface TestType {} @@ -16,5 +21,15 @@ mkTestTop = do testType <- mkTestType return $ interface Empty { } +mkBus :: Vector numClients (BusClient (UInt (TLog numClients))) + -> Vector numServers (BusServer (UInt (TLog numClients)) clientTagType) + -> Module Empty +mkBus clientVec serverVec = do + tagEngineByClient :: Vector numClients (TagEngine (TLog numClients)) + tagEngineByClient <- replicateM mkTagEngine + + return $ interface Empty { } + + a :: UInt 5 a = 3 diff --git a/bs/BusTypes.bs b/bs/BusTypes.bs index e6943c5..4828668 100644 --- a/bs/BusTypes.bs +++ b/bs/BusTypes.bs @@ -1,4 +1,5 @@ package BusTypes( + Bus(..), BusClient(..), BusServer(..), BusRequest(..), BusResponse(..), ReadRequest(..), ReadResponse(..), WriteRequest(..), WriteResponse(..), @@ -87,10 +88,6 @@ interface (BusServer :: * -> * -> *) transactionTagType clientTagType = dequeueResponse :: ActionValue (clientTagType, BusResponse, transactionTagType) peekClientTagDestination :: clientTagTye -interface (Bus :: # -> # -> * -> * -> *) numClients numServers transactionTagType clientTagType = - clients :: Vector numClients (BusClient transactionTagType) - servers :: Vector numServers (BusServer transactionTagType clientTagType) - type Token = UInt 5 type Numeric = 5