1 {-# LANGUAGE TemplateHaskell, DeriveDataTypeable #-}
3 module CLasH.HardwareTypes
5 , module Data.Param.TFVec
6 , module Data.RangedWord
8 , module Data.SizedWord
19 import qualified Prelude as P
20 import Prelude hiding (
21 null, length, head, tail, last, init, take, drop, (++), map, foldl, foldr,
22 zipWith, zip, unzip, concat, reverse, iterate )
24 import qualified Data.Param.TFVec as TFVec
25 import Data.Param.TFVec hiding (TFVec)
26 import Data.RangedWord
30 import Language.Haskell.TH.Lift
33 newtype State s = State s deriving (P.Show)
35 type Vector = TFVec.TFVec
39 deriving (P.Show, P.Eq, P.Read, Typeable)
43 hwand :: Bit -> Bit -> Bit
44 hwor :: Bit -> Bit -> Bit
45 hwxor :: Bit -> Bit -> Bit
48 High `hwand` High = High
55 High `hwxor` Low = High
56 Low `hwxor` High = High