proc SCHEMATIC_signal_source {} {
make input -name phase -origin {-100 40}
make output -name out -origin {-20 40}
make output -name clk -origin {-20 80}
}

proc ICON_signal_source args {
  icon_setup $args {{origin {0 0}} {orient R0} {name x} {stype 0} {freq 1}}
icon_term -type input -origin {-100 -20} -name phase
icon_term -type output -origin {130 -20} -name out
icon_term -type output -origin {130 60} -name clk
icon_property -origin {-90 -60} -label {$name}
icon_property -origin {-90 90} -label {stype=$stype}
  icon_property -origin {-70 160} -type user -name name -default x
  icon_property -origin {-70 180} -type user -name stype -default 0
icon_property -origin {-90 110} -label {freq=$freq Hz}
  icon_property -origin {-70 200} -type user -name freq -default 1
icon_property -origin {10 -40} -anchor center -label signal_source
icon_property -origin {-90 -20} -label phase
icon_property -origin {120 -20} -anchor e -label out
  icon_line -100 -50 -100 80 130 80 130 -50 -100 -50
icon_property -origin {-90 10} -label {Signal: 0:square, 1:sine, 2:imp}
icon_property -origin {-90 40} -label {PRBS Data:  3:square, 4:imp}
icon_property -origin {120 60} -anchor e -label clk
}

