Can anyone suggest what would be some better ways(purchased with minimal work if possible) to generate square waves at 3 tunable voltage levels toggling arbitrarily(EDIT: as in a PRBS/PRBS7/PRBS31, DC balanced, the stream of PRBS can be predefined and hardcoded, does not matter to the experiment) from one voltage to the other at high speed from 500 MHz to 1 GHz?

I have a Xilinx Kintex 7 KC705 eval kit and can purchase add on boards- the one way I was thinking of that is more conceptually straightforward is to just use a DAC board and drive the outputs at the desired voltages. https://www.abaco.com/products/fmc170-fpga-mezzanine-card are ok for a few hundred MHz, but none of the cards can get a ~10-20% of the cycle rise/fall time at 1GHz. For 1GHz arbitrary square waves with say 0.2ns rise/fall times, need about 3.5GHz minimum to get anything, then about >10GHz of analog bandwidth to make it appear "more square". For 500MHz, about ~ 8-10GHz (maybe 5GHz and a less square appearance) analog output bandwidth may be ok, and those cards may be sufficient, but I'd still be on the lookout for something suitable for the 1GHz square wave.

Effectively that is an AWG...Am I thinking about this the wrong way? I don't need all the fancy features of an AWG, but just able to set 3 voltages (roughly a range of voltages from 0-2.0V, a set of these 3 voltages, for example, 0.1V, 0.35V 1.5V would be fine, however, it's not critical bc I have high-speed amps and bias T's) and toggle between then arbitrarily (ideally driven by data patterns out of the Kintex FPGA). Everything is 50Ohm impedance. At the higher speeds (1 GHz/ 1ns per bit), 0.2ns rise/fall time would be acceptable-- this is experimental so if it ends up worse than 0.3ns then that's what I'll have to live with until I can buy more expensive things.

Thanks for your help!

  • \$\begingroup\$ Hmmm, there's one word that I can't grasp, and it's "arbitrarily". It is one thing saying "You can arbitrarily set any duty cycle you want on this PWM", no problems there. But it's an entire other thing saying "This will toggle arbitrarily" and not showing any example at all. Or if 1/0/1/0/1/0...(ever repeating) is an acceptable "arbitrary" sequence. Or if it is not acceptable at all. Or maybe it's preset? Not sure. "Arbitrarily". \$\endgroup\$ Jan 22, 2018 at 1:36
  • \$\begingroup\$ How quickly do you need to be able to switch between amplitudes? \$\endgroup\$
    – The Photon
    Jan 22, 2018 at 1:40
  • \$\begingroup\$ Hi Harry, The Photon, thanks for your questions for clarity, I have edited the question to specify PRBS, and the quicker the rise/fall time the better- this is all experimental, thanks again for your help and quick responses on stack exchange! \$\endgroup\$ Jan 22, 2018 at 4:09
  • \$\begingroup\$ Is the data balanced? What is the required tuning range for each of the 3 voltages? What is the required impedance for the output? \$\endgroup\$
    – pserra
    Jan 22, 2018 at 4:11
  • 1
    \$\begingroup\$ Thanks pserra, yes DC balanced, 0-2V, but not critical bc I have high speed amps and bias T's; everything is 50ohm impedance. \$\endgroup\$ Jan 22, 2018 at 4:25

1 Answer 1


You could attempt to build it with a pair of fast VCSEL laser drivers such as the ONET8501V. I'm not sure this would give you the output ranges that you are looking for, but it should be good in term of speed.


simulate this circuit – Schematic created using CircuitLab

If you end up building such circuit, please share your results, I am very curious about the performances you would get.

Edit: You may need some heavy RF engineering to combine the output of U2 and U3 over a wide frequency band.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.