# # This is a one-bit adder. # require "csim" require "cgrp" require "oba" NumberOut.shush # Blueprint for a the one-bit adder bp = OBA.new # Two input senders, and the output device. na = SwitchBank.new nb = SwitchBank.new disp = NumberOut.new(" Sum") # We're going to build an 8-bit adder prev = nil 8.times do # Create the one-bit adder and join the data inputs and outputs. addr = bp.another na.join(addr) nb.join(addr) addr.join(disp) # Chain the carry, if this isn't he first one. if prev then prev.join(addr) end prev = addr end # Overflow light. prev.join(LED.new(" Oflow")) NumberOut.shush(false) 30.times do a = rand(256) b = rand(256) print a, " + ", b, ":\n" Gate.activate na.value = a nb.value = b Gate.deactivate end