I'm not sure what level of technology it's easy for you to
work with, e.g. if you're able to make simple PC-boards
for this, if you can work with surface-mount SOIC / TSSOP /
TQFP type parts, if you have any basic programming knowledge in C or assembler or VHDL or whatever.
If you want to do phase shift as well as pulse width
control in a very simple microcontroller you could use
something like the MSP430F2xx series parts from
Texas Instruments. They run the processor and timers
at frequencies up to 16MHz which can be
internally generated unless you have cause to want to
clock them externally. At 16MHz you'll have 16 steps
or 360/16 = 22.5 degree resolution phase control of
a 1MHz signal or simply 1/16000000 = 62.5ns timing
resolution when you're controlling pulse timings and
widths. Obviously the output relative resolution just
gets better and better as your desired output frequency
goes down from 1MHz into the kHz and Hz ranges.
It'd be trivial to program these to replace a function
generator in the sense that they'd generate not only
the phase delay between outputs, but also the pulse
width control, and also the master clock frequency as
well if desired.
You could use something like a couple of the
MSP430F2234 parts available in quantity 1 from DigiKey
for $5.50 or so per piece, and available in 38 pin TSSOP
surface mount chip packages which aren't too hard to work
with manually with only a moderately good hobbyist level
PCB and soldering capability.
A couple of those would give you enough I/O pins to
do things like add a numeric keypad or whatever similar
switch/interface mechanism you may want to to set
the timings, if desired, or you could just use the serial
port and do it from a control PC.
Or for a simpler construction you could use something like
three MSP430F2012 / MSP430F2013 chips,
one for each output channel, and those are available in
14 pin through-hole DIP packages that could be used
with wire-wrap, perf-board, breadboard, or dead bug
type manual assembly and construction techniques.
They're between $2.70 to $3.83 a piece from digikey
depending on the part/package.
For $20 you can get the whole MSP430 programming
hardware and software for their basic series of parts:
http://www.ti-estore.com/Merchant2/merchant.mvc?Screen=PROD&Product_Code=EZ430-F2013
and for $10 you can get *three* of the MSP430F2012
chips attached to little test/prototype PC-boards that
give you access to all their signals as well as which
plug right into the programming tool I mentioned just
above:
http://www.ti-estore.com/Merchant2/merchant.mvc?Screen=PROD&Product_Code=EZ430-T2012
They're programmable in C or their own assembly
language, and, as I said, the amount of programming
is literally trivial if you're just doing things like setting
up the built in timers to generate / measure various
pulse widths and frequencies etc.
Now if you wanted really *excellent* phase resolution
at 1Mhz, e.g. in the 1 degree range or fractions thereof,
you could use something like an Altera EP1C
Cyclone FPGA or similar with an internal digital PLL
clock synthesizer to generate a multi-phase 100-200MHz
range clock, program a few 28 bit divider counters
to set the phase and pulse width of your various outputs
and measure the input signals, etc. I'm sure the chips
are pretty inexpensive like under $20ish quantity one,
but you'd need to be comfortable programming them,
soldering surface mount packages with fair numbers of
pins, etc. etc. and if that was all easy for you you probably
wouldn't be asking the question and using analog
phase shifters and timers...
In between those ranges of performance you could
get like 40MHz, 50Mhz, 80Mhz type microcontrollers
that could give you better timing resolution, also pretty
cheap and relatively easy to program, but not quite
as easy/cheap as something like the MSP430 or PIC
microcontrollers, so it all depends on your cost/time
budget and capabilities / requirements.
a CoolRunner CPLD or something like that to