Agilent/Keysight 33622A Waveform Generator Review


The 33600 family is the successor to the 33500 line of waveform generators, based on the Trueform technology, bringing more bandwidth, higher sample rate, more memory and better jitter specs.

The unit under review is the 33622A model and I've been using it for several months already. During the time I had it, I found only a few minor issues, that we will discuss later in the review, but other than that, it's been a pleasure to use from all points of view and I'd have no reservations if I were to recommend it to a friend.

The price is a bit on the high side, but given the performance, the build quality it offers and all the good things that come with such a brand, it's fairly reasonable.

Key Features & Specifications

  • 1 GSa/s & 120 MHz bandwidth
  • 1 mVpp to 10 Vpp in 50 Ohms load & 2 mVpp to 20 Vpp in open circuit
  • Less than 1 ps of jitter
  • 14-bit resolution
  • 4 MSa / 64 MSa memory (4 MSa standard, upgradable to 64 MSa via the MEM option)
  • High bandwidth pulse
  • Noise generation with selectable bandwidth
  • PRBS
  • AM, FM, PM, FSK, BPSK, PWM, SUM, Burst and sweep modulation capability.


As you may notice, the design is very conservative and even tho I like it and enjoy the layout, it hardly passes as eye candy. That's to be expected from professional equipment where the design philosophy is "form follows function", which is usually a better turn on for engineers than flashy design.

Everything about it appears to be high quality and well engineered, giving it a very sturdy feel. The case is made out of one piece of folded metal sheet (like on most HP/Agilent instruments before) and the plastic is high quality too.

Front Panel

Sadly, it features a soft power button so the PSU is continuously powered on, even if you don't have the OCXO option - which is why it would need to stay on all the time. This wouldn't be a problem if when powered off, the PSU would be quiet, but instead it generates a high pitch noise and that's very first thing you notice when you plug it in. I'm sure Agilent will fix this in a future hardware revision.

The display is crisp and it has a wide viewing angle. If you have bad vision or you plan on having the unit further away from you, one of the 3 layout choices has bigger fonts (but less info is displayed).

The buttons appear to be made from some sort of hard rubber, that feels clean and hard like plastic would, but non slippery, like rubber. By far the best buttons I ever saw on an instrument. They have good tactile feedback and some of them get lit up to indicate that a specific function is enabled.

One of the things I'm still struggling with, is the arrangement of the output BNC connectors. Because the sync output is the first output connector, I keep using that one when I mean to use the channel 1 output connector, which is in the middle. I guess I would have preferred it if the sync output was on the right, rather than on the left.

The BNC connectors have a very strong bond with the front panel, so I haven't noticed any wiggling or any funny business in that regard. I don't think I'll ever damage them by applying too much force or due to regular usage.


Back Panel

The back of the unit is just as you'd expect it to be, but if you notice the missing fuse holder, know that it was a conscious decision from Agilent. They decided it's safer to send the unit to the service and have a professional look at it, rather than change the fuse and risk further damage to the unit.

In case it's not clear from the picture, we get modulation and trigger inputs, as well as a 10 MHz reference input and a 10 MHz reference output.

The white plastic cover is where the GPIB option can be installed. My waveform generator doesn't have it, but I believe you can install it yourself if you purchase the option. Agilent has even made a video about it:

User Interface

In terms of user interface, I believe this is the best thing I ever used. All the main functionality is easily accessible through the dedicated menu buttons, while the soft menu buttons are changing based on the context so getting anything done is usually one or two buttons away.

Entering values is also very straight forward. Can be done either directly by using the rotary encoder + the left and right buttons to specify the digit you're changing or by using the numeric keyboard, in which case the soft menu items become the various prefixes of the unit you're editing and the left button (from under the rotary encoder) becomes a backspace key.

Switching between channels is as simple as pushing the Channel 1 / 2 buttons, which will also bring up the output menus, from where you can turn the output on or off, set the load impedance, invert polarity, set voltage limits so you protect the DUT against misconfiguration and configure dual channel operation.

Anyway, the UI is very easy to explore and a pleasure to work with and to give you another example of how well thought out it is, in the modulation menu, the additional options that get added to the soft menu, based on the modulation type chosen, get inserted before some of the standard (modulation) menu items that are less likely to be used.

Very impressed!

Frequency Resolution

An interesting thing is that you can display the frequency in Hz or as a period. The difference is that when the display is set to frequency, you can adjust it down to 1 µHz, but when set to period, you can only adjust it in steps of 1 ps.

This was very tricky to measure, but I was able to spot differences in changes of down to 20 ps in period / pulse width. Chances are it's able to adjust the period down to 1 ps and the rest of the resolution (for frequency) is given by a phase accumulator.

I didn't feel like running a several days test in order to test its accuracy, but I was able to run an overnight one. I had 7 hours at my disposal for this test and I wanted to see a drift of 90º.

7 hours = 25,200 seconds

1 / (4 * 25,200) ~= 0.000,010 Hz

I set the frequency at 100.000,000,000,010 MHz and left it running overnight. 7 hours later the signal has shifted by 90º, just as expected. This shows us that the base synthesized frequency and the phase accumulator is spot on.

100.000,000,000,010 MHz

7 hours later

Vertical Resolution

From the datasheet we already know it has 14 bits of resolution, that's 16,384 steps, but judging by the relays that are clicking inside when you change the amplitude, my guess is that there are several specific ranges over which these 14 bits apply.

I'm not entirely sure how tightly related are the amplitude settings with the true resolution ranges (my guess is not very), but when setting the amplitude, you are given the following resolutions:

  • 0.001 mVpp from 1mVpp to 10 mVpp
  • 0.01  mVpp from 10 mVpp to 100 mVpp
  • 0.1  mVpp from 100 mVpp to 1 Vpp
  • 1 mVpp from 1 Vpp to 10 Vpp
  • 1 mVpp from 10Vpp to 20 Vpp

I was most curious about the 1 mVpp that is advertised, so I decided to take a look at it. That's well inside the noise floor of my scope, so I had to average every 8 samples to take the noise out, while triggering on the sync output.

Now, I don't know how one can test the resolution at this levels, but based on the fact that there's a relay clicking when you go up in amplitude, over 1.8 mVpp, I think it's safe to assume that that's the lowest range over which those 14 bits apply, leaving us with 9,102 points of resolution at 1 mVpp. Not bad!

Cardiac signal @ 1 mVpp

Reference signal @ 200 mVpp

Signal Fidelity

Before I started using this waveform generator I was actually doubting my scope. I used to think it can't display things exactly as they were and that some of the noise and the overshooting I was seeing was added by the scope. Well, that changed when I started displaying signals from the 33622A. They're just... perfect. Jitter so low (<1 ps) that I can't measure (and can't hope to measure without some really serious equipment) and a very good combination of digital and analog filtering that gives perfect waveforms with no preshoot or overshoot.

In the frequency domain, I was able to observe the 2nd and 3rd harmonics across most frequencies and they appear to sit at anything from -68 to -54 dBc and respectively -71 to -56 dBc. I also noticed, a few tones inherent to the device, that appeared to be present regardless if the output was on or off. These tones are sitting at about -100 dBm and don't appear to have any relation to the current settings of the waveform generator.

second harmonic of a 50 MHz sine @ -54.33 dB

third harmonic of a 50 MHz sine @ -56.67 dB


As for preshoot and overshoot, see for yourself:

1 MHz square

1 MHz square - zoom in on edge


Another thing that's worth mentioning here, is that for arbitrary waveforms, you get a choice of 2 filters and an off setting. The two filters are offering you a choice between 0% and 5% preshoot and overshoot, while the off setting will simply output the points, with no filtering, but at a maximum rate of 250 MSa/s. The 250 MSa/s results in a top frequency of 125 MHz, which is slightly above the rated 120 MHz.

In this example, we have a waveform with 6 points, sampled at 40 kSa/s:

No filter

Normal filter (5% preshoot and overshoot)

Step filter (0% preshoot and overshoot)

Output Load

I've been using it a lot since I had it and I have to say that its output is flawless. It can properly drive its own 50 Ohm output impedance even in short (and it can sustain short circuits to ground indefinitely - I tried). This gives me great confidence that the output at the load is dependent only on the load impedance and the characteristics of the transmission line.

To reach this conclusion I ran several tests, driving a 5, a 10 and a 50 Ohms load as well as shorting the output for several minutes (with 3.3Vpp set for 50 Ohms). In all cases (except the short), the waveform at the output was practically unchanged between the loads.

The Pulse

The pulse waveform is one of the key features and I found myself using it quite a lot, maybe more than any of the other waveforms. It goes up to 100 MHz in frequency and can have both its edges adjusted individually within the limits of the pulse width. The smallest pulse width being 5 ns, while the leading and trailing edges going down to 2.9 ns.

Edge settings

The width can be expressed in duty cycle too

And it looks great:

100 µs pulse

100 µs pulse edge

100 µs pulse, 50 µs leading edge

It comes as no surprise to know that the signal's shape stays the same, regardless of the set amplitude. Also notice that the only thing that changes is the pulse width, while the edges stay exactly the same (because I didn't change them):

50 MHz pulse @ 200 mVpp

100 MHz pulse @ 200 mVpp

50 MHz pulse @ 2 Vpp

100 MHz pulse @ 2 Vpp


Other stuff

I don't think it's worth it to get into all the other features since they work just as you'd expect they would, but it's probably worth noting that it can also do PRBS, noise output and supports a number of modulations that can be fed either from an internal source, the other channel or an external input. It also features a very well designed Burst mode, that can do both nr. of cycles and gated output.


In the software department we are offered two programs: BenchVue, which is free and Agilent BenchLink Waveform Builder, which is not.

BenchVue is basically a client application for a lot of Agilent test equipment. It has a nice interface and it's easy to use, but during the time I tried it I couldn't help but feel that it still needs to be polished.

Agilent BenchLink Waveform Builder is just that, a waveform builder that can send the created waveform or sequence of waveforms directly to the device. You can insert math generated waveforms, perform math on existing waveforms and generally speaking, edit them in pretty much any way you'd need to. It feels like a mature and capable tool, so if you have to generate a particular test signal, look it up, it's very interesting.

That being said, I didn't end up using either of them longer than I needed to get an idea on what they do and what they're capable of. I still prefer working directly with the device.

One thing I was particularly impressed with, was the SDK, the examples and the documentation that came with it. From a programming point of view it's a breeze of fresh air compared to what else is out there and makes working with the device seem like a walk in the park.



I couldn't find too much wrong with it, but I did find a few things that annoyed me. One of them was that in PRBS mode, I couldn't do frequency coupling with the other channel - probably because baudrate is not frequency, but this doesn't mean that there can't be a relation between the two.

Another one was that I was not able to internally trigger two bursts at the same time. I had to build an external pulse generator that I used as a trigger for both channels (while they were configured in burst mode).

And finally, I found an issue with delayed triggering, where if you have both channels set in burst mode and you're externally triggering them and you want to add a trigger delay on one of the channels, it only works properly with a delay of up to 31 ns. Once you go above that, there's going to be a lot of jitter present on that channel. An interesting thing here is that if you increase the delay to more than 40 ns on both channels, the jitter between the channels is reduced to only 3 positions and it gets canceled for every difference between the delay timers, that is a multiple of 4.

trigger delay > 31 ns on channel 2

trigger delay > 40 ns on both channels



Well, it's what you'd expect from Agilent, a very rugged, high performance device that won't let you down. Personally, I've been very happy with it and I think it's one of the most useful tools on my bench.

It's well worth the money and considering the performance it exhibits, I think it's going to stay relevant for a long time.

comments powered by Disqus