package TopSim where import GetPut import Top import Uart mkTopSim :: Module Empty mkTopSim = module timer :: Reg (Bit 8) <- mkReg 0 next :: Reg (Bit 8) <- mkReg 0 saved :: Reg (Bit 8) <- mkReg 0x6a uart <- mkUart 1 rules when True ==> timer := timer + 1 when True ==> uart.rxPin uart.txPin when True ==> do b <- uart.recv.get next := timer + 5 saved := b when (timer == next) ==> do uart.send.put saved when (timer == 0x40) ==> $finish -- vim: set ft=haskell :