With more specifics on input and output Voltage range, a better answer can be provided.
To measure phase, as Steven says assuming they are equal amplitude and linearity you can subtract but this is a time-variant signal not DC phase output, so one might use a Peak Detector to rectify that signal to mix the result to generate a DC voltage for Phase difference.
The amplitude needs to be normalized (the same) so linear slicers or limiters are used as well as XOR gates ( which is a logic gate that also works here as a mixer/phase detector for logic level signals.
THere are many other ways too such as edge detect, S&H sawtooth clock and Time Interval counters.
.. A better way that I suggest is the 4046 PLL chip.
Do you want 0~180 deg = 0 to Vdd? then use TYPE I "XOR gate" chip or 0~360 deg then use the Type II edge detect phase detector.
CMOS 4046 PLL chip is very easy to use, and has been around since mid 70's, when I first used it.
I assume "as an analog signal" means on an oscilloscope as opposed to a logic analyser.
For a digital signal, it is important to be able to check the signal integrity and see whether it is subject to problems such as ringing, crosstalk, reflections, jitter, attenuation, etc.
This can only be done with a scope with a bandwidth > the frequencies present in the signal - remember with a digital signal there are frequencies much higher than the fundamental present, how high is dictated by the rise time of the signal. For a 1MHz digital signal you would generally want at least a 5MHz bandwidth, preferably much higher.
For debugging a typical small microcontroller (e.g. PIC, Atmel AVR, Arduino, etc) a scope bandwidth of at least 50MHz is preferable. This should be capable of handling just about all situations you might encounter.
There are many signals above 1MHz that need checking, most microcontroller clock signals are > 1MHz, SPI is often > 1MHz, USB, etc. FPGA designs may run at 100s of MHz, high speed ADCs and DACs, etc.
On a logic analyser all you can see is whether it is above a certain level or below a certain level (like a 1-bit scope) so while useful in other ways they are not suitable for checking signal integrity.
The image below (taken on an MSO - Mixed Signal Oscillscope, a combination of a scope and logic analyser) is a good example of crosstalk causing problems and why a scope is needed to see what's really happening. Notice the waveforms are quite a way from the idea of a "perfect" digital signal:
For the leftmost red arrow the second trace down is the transmitting trace, and the top trace down is the "victim" (receiving trace) and the right hand pulse they are reversed. We can see on the rise of the "transmitting" signal it causes a spike in the receiving trace, resulting in a unwanted glitch on the logic display, which is what the digital receiver would "see".
In this image at the top we can see signal degradation caused by an incorrectly terminated trace, causing reflections. At the bottom we can see the same signal after it has been correctly terminated:
On the logic analyser, both signals may work, but there is no way of knowing how marginal the first signal is without checking with a scope. The incorrectly terminated trace may only cause problems intermittently, so it's important to be able to check it's integrity.
Looking at your link to the DPScope design, I see it's dsPIC based. It won't be comparable to anything you can buy (you can get a 20MHz analogue scope for << £50 nowadays, and a 5-10MHz DSO for similar)
However, it would be a great project for educational purposes, and you will get something perfectly useable for low frequency (e.g. audio, UART, PWM) purposes. Plus you'll have fun building it. If your thinking of doing so, I'd say go for it, just don't expect it to take care of all your debugging needs. If your budget is limited, get a cheap analogue scope - you will generally get the highest bandwidth for your money.
Remember the chicken and egg problem - you need a scope in order to build and test a scope ;-)
Best Answer
The classical circuit is a multiplier, which will output a voltage whose DC mean is proportional to the sine of the phase between the signals.
Depending on the frequency of the signals, the multiplier could be something like an AD835, or an RF mixer. You could even make something with a comparator and a DT switch or XOR gate.
A single mixer will not measure unambiguously 0-360. For that you use two mixers in quadrature, whose outputs are then the sine and cosine of the phase angle, from which you can deduce the phase correctly.
For your specific application, where the amplitudes are variable, an analogue multiplier is not a good idea, as the gain will need normalising. It's probably best to use a fast (enough) comparator on each signal, and run the two logic signals into an XOR gate. In this case, the output will not be the sine of the phase difference, but directly proportional to it.
If you want a full 360 degrees measurement, then the best overall solution is to use the signal generator to deliver 4x your target frequency, divide it by 4 into two quadrature waveforms, and use two XOR gates, one for each channel. Your 4:1 frequency range is small enough to have a practical number of low pass filters reshaping the square wave from the divider back to something like sinusoidal. As you're going into a comparator, the harmonics will make a difference to phase accuracy. The needed accuracy will determine how close you need to be to sine.
Of course, this takes your requirement for analogue measurement at face value. It's far better to do it digitally. Capture the waveforms, process the signals in your language of choice. Assuming your likely minimum hardware, you can do that with little additional hardware by down-mixing your excitation and your measured signal to an audio IF (intermediate frequency), of say 10kHz. Put these two signals into the line input of your PC, capture (I use portAudio), and process (I use python+numpy). Worth a thought, you can recover the amplitudes as well, automatically log results, all sorts of good things.