27 lines
473 B
Haskell
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
|