Skip to content

Instantly share code, notes, and snippets.

@Sgeo
Created November 22, 2018 07:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sgeo/801abf60cc4348c160c5662472a29e2f to your computer and use it in GitHub Desktop.
Save Sgeo/801abf60cc4348c160c5662472a29e2f to your computer and use it in GitHub Desktop.
def prim(name, default, actions):
action_string = ", ".join(actions)
if default:
animate_string = ", animate me . 1 1 0"
else:
animate_string = ""
print("create name %s%s; adone %s" % (name, animate_string, action_string))
def action_prim_mem(name, value):
action_string = "animate %s . 1 1 %s" % (name, ("0" if value else "2147483647"))
return action_string
def action_signal(name):
return "astart " + name
def bit(name, default, actions_true, actions_false):
to_signal = []
if actions_false:
prim(name + "$0", not default, actions_false)
to_signal += [action_signal(name + "$0")]
if actions_true:
prim(name + "$1", default, actions_true)
to_signal += [action_signal(name + "$1")]
if to_signal:
prim(name, True, to_signal)
def action_bit_mem(name, value):
return ", ".join([action_prim_mem(name + "$0", not value), action_prim_mem(name + "$1", value)])
"""
Input bits named name$a and name$b
"""
def and_(name, output):
prim(name, True, [action_bit_mem(output, True), action_signal(name + "$a"), action_signal(name + "$b")])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment