proc SCHEMATIC_adder2_full_uint {} {
make input -name in1 -origin {350 -50}
make input -name in2 -origin {350 -20}
make output -name sum -origin {390 -20}
make output -name carry -origin {390 -50}
}

proc ICON_adder2_full_uint args {
  icon_setup $args {{origin {0 0}} {orient R0} {name x} {n 20}}
icon_term -type input -origin {-100 -30} -name in1
icon_term -type input -origin {-100 30} -name in2
icon_term -type output -origin {100 30} -name sum
icon_term -type output -origin {100 -30} -name carry
icon_property -origin {-90 -30} -label in1
icon_property -origin {-90 30} -label in2
icon_property -origin {90 30} -anchor e -label sum
icon_property -origin {90 -30} -anchor e -label carry
icon_property -origin {-90 -80} -label {$name}
icon_property -origin {-90 -60} -label adder2_full_uint
  icon_line -100 -70 100 -70 100 70 -100 70 -100 -70
icon_property -origin {-90 80} -label {n=$n (<= 30 bits)}
  icon_property -origin {-90 120} -type user -name name -default x
  icon_property -origin {-90 140} -type user -name n -default 20
icon_property -origin {-90 -10} -label (n-bits)
icon_property -origin {-90 50} -label (n-bits)
icon_property -origin {90 50} -anchor e -label (n-bits)
icon_property -origin {90 -10} -anchor e -label (1-bit)
}

