Add a haskell model for a half adder.
[matthijs/master-project/cλash.git] / Adders.hs
index c49ba810ce1ae4768ac2bd7efd673d1c198a0a28..2e8cf35c98e3fe622e31cc76c3043149ae27067a 100644 (file)
--- a/Adders.hs
+++ b/Adders.hs
@@ -15,6 +15,12 @@ show_add f = do print ("Sum:   " ++ (displaysigs s)); print ("Carry: " ++ (displ
 no_carry_adder :: (Bit, Bit) -> Bit
 no_carry_adder (a, b) = a `hwxor` b
 
+-- Combinatoric half adder
+-- A -> B -> (S, C)
+half_adder :: (Bit, Bit) -> (Bit, Bit)
+half_adder (a, b) = 
+  ( a `hwxor` b, a `hwand` b )
+
 -- Combinatoric (one-bit) full adder
 -- (A, B, C) -> (S, C)
 full_adder :: (Bit, Bit, Bit) -> (Bit, Bit)