playground/haskell/clash-unsorted/Merge.hs

27 lines
473 B
Haskell

module Merge where
import Clash.Prelude
merge
:: Maybe a
-> Maybe a
-> Maybe a
merge (Just x) _ = Just x
merge Nothing y = y
mergef
:: Applicative f
=> f (Maybe a)
-> f (Maybe a)
-> f (Maybe a)
mergef x y = Merge.merge <$> x <*> y
topEntity
:: Clock System
-> Reset System
-> Enable System
-> Signal System (Maybe (Signed 8))
-> Signal System (Maybe (Signed 8))
-> Signal System (Maybe (Signed 8))
topEntity = exposeClockResetEnable $ mergef