summaryrefslogtreecommitdiff
path: root/cpu/example_cpu.ml
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/example_cpu.ml')
-rw-r--r--cpu/example_cpu.ml19
1 files changed, 19 insertions, 0 deletions
diff --git a/cpu/example_cpu.ml b/cpu/example_cpu.ml
new file mode 100644
index 0000000..2d60bec
--- /dev/null
+++ b/cpu/example_cpu.ml
@@ -0,0 +1,19 @@
+open Netlist_gen
+
+(* Dumb CPU that just does an 8-bit addition *)
+
+let sumz n i =
+ let x, set_x = loop n in
+ let r = reg n x in
+ let o1, o2 = Alu.nadder n i r (const "0") in
+ set_x o1, o2
+
+let p =
+ let width = 16 in
+ let sum, r = sumz width (get "in") in
+ program
+ [ "in", width ]
+ [ "out", width, sum;
+ "r", 1, r ]
+
+let () = Netlist_gen.print stdout p