proc SCHEMATIC_split_msb_lsb_uint {} {
make input -name in -origin {50 -230}
make output -name out_msb -origin {220 -230}
make output -name out_lsb -origin {220 -160}
}

proc ICON_split_msb_lsb_uint args {
  icon_setup $args {{origin {0 0}} {orient R0} {name x} {n_msb 4} {n_lsb 16}}
icon_term -type input -origin {-80 -30} -name in
icon_term -type output -origin {80 -30} -name out_msb
icon_term -type output -origin {80 50} -name out_lsb
icon_property -origin {-70 -30} -label in
icon_property -origin {70 -30} -anchor e -label out_msb
icon_property -origin {70 50} -anchor e -label out_lsb
icon_property -origin {-70 -80} -label {$name}
icon_property -origin {-70 -60} -label split_msb_lsb_uint
  icon_line -80 -70 80 -70 80 70 -80 70 -80 -70
icon_property -origin {-70 80} -label {n_msb=$n_msb}
  icon_property -origin {-70 150} -type user -name name -default x
  icon_property -origin {-70 170} -type user -name n_msb -default 4
icon_property -origin {-70 100} -label {n_lsb=$n_lsb}
icon_property -origin {-70 120} -label {(Note:  n_msb+n_lsb <= 30 bits)}
  icon_property -origin {-70 190} -type user -name n_lsb -default 16
}

