data Bit = High | Low
deriving (P.Show, P.Eq, P.Read, Typeable)
-$(deriveLift1 ''Bit)
+deriveLift1 ''Bit
hwand :: Bit -> Bit -> Bit
hwor :: Bit -> Bit -> Bit
a ->
RangedWord s ->
RangedWord s ->
- Bit ->
+ Bool ->
((MemState s a), a )
blockRAM (State mem) data_in rdaddr wraddr wrenable =
((State mem'), data_out)
where
data_out = mem!rdaddr
-- Only write data_in to memory if write is enabled
- mem' = case wrenable of
- Low -> mem
- High -> replace mem wraddr data_in
+ mem' = if wrenable then
+ replace mem wraddr data_in
+ else
+ mem