proc SCHEMATIC_signal_source_clocked {} {
make input -name phase -origin {-100 40}
make output -name out -origin {-20 40}
make input -name clk_in -origin {-100 90}
make output -name clk_out -origin {-20 90}
}

proc ICON_signal_source_clocked args {
  icon_setup $args {{origin {0 0}} {orient R0} {name x} {stype 0} {period_clk_samples 10}}
icon_term -type input -origin {-110 -40} -name phase
icon_term -type output -origin {120 -40} -name out
icon_term -type input -origin {-110 50} -name clk_in
icon_term -type output -origin {120 50} -name clk_out
icon_property -origin {-100 -80} -label {$name}
icon_property -origin {-100 80} -label {stype=$stype}
  icon_property -origin {-100 150} -type user -name name -default x
  icon_property -origin {-100 170} -type user -name stype -default 0
icon_property -origin {-100 100} -label {period_clk_samples=$period_clk_samples}
  icon_property -origin {-100 190} -type user -name period_clk_samples -default 10
icon_property -origin {0 -60} -anchor center -label signal_source_clocked
icon_property -origin {-100 -40} -label phase
icon_property -origin {110 -40} -anchor e -label out
  icon_line -110 -70 -110 70 120 70 120 -70 -110 -70
icon_property -origin {-100 -10} -label {Signal: 0:square, 1:sine, 2:imp}
icon_property -origin {-100 20} -label {PRBS Data:  3:square, 4:imp}
icon_property -origin {-100 50} -label clk_in
  icon_line -110 40 -100 50 -110 60
icon_property -origin {110 50} -anchor e -label clk_out
}

