43 lines
899 B
Haskell
43 lines
899 B
Haskell
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
|
|
module BusTypes(
|
|
BusError(..),
|
|
TransactionSize(..),
|
|
ReadRequest(..),
|
|
BusResponse(..),
|
|
BusVal(..),
|
|
) where
|
|
|
|
import Clash.Prelude
|
|
|
|
import Types(Addr,
|
|
Byte, HalfWord, FullWord, DoubleWord, QuadWord)
|
|
|
|
data BusError
|
|
= UnMapped
|
|
| UnAligned
|
|
deriving (Generic, Show, Eq, NFDataX)
|
|
|
|
data TransactionSize
|
|
= SizeByte
|
|
| SizeHalfWord
|
|
| SizeFullWord
|
|
| SizeDoubleWord
|
|
| SizeQuadWord
|
|
deriving (Generic, Show, Eq, NFDataX)
|
|
|
|
data ReadRequest = Request Addr TransactionSize
|
|
deriving (Generic, Show, Eq, NFDataX)
|
|
|
|
data BusResponse a
|
|
= Result a
|
|
| Error BusError
|
|
deriving (Generic, Show, Eq, NFDataX)
|
|
|
|
data BusVal
|
|
= BusByte Byte
|
|
| BusHalfWord HalfWord
|
|
| BusFullWord FullWord
|
|
| BusDoubleWord DoubleWord
|
|
| BusQuadWord QuadWord
|
|
deriving (Generic, Show, Eq, NFDataX)
|