diff options
Diffstat (limited to 'fpga/src/CPU.bs')
-rw-r--r-- | fpga/src/CPU.bs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fpga/src/CPU.bs b/fpga/src/CPU.bs new file mode 100644 index 0000000..566ae92 --- /dev/null +++ b/fpga/src/CPU.bs @@ -0,0 +1,20 @@ +package CPU where + +import GetPut + +-- | The interface the CPU exposes. +interface CPU = + -- UART + uart_tx :: Get (Bit 8) + uart_rx :: Put (Bit 8) + +mkCPU :: Module CPU +mkCPU = module + byte :: Reg (Bit 8) <- mkReg 0 + + interface CPU + uart_tx = toGet byte + uart_rx = toPut $ \b -> do + byte := b + +-- vim: set ft=haskell : |