WP_Term Object
(
    [term_id] => 45
    [name] => Aldec
    [slug] => aldec
    [term_group] => 0
    [term_taxonomy_id] => 45
    [taxonomy] => category
    [description] => 
    [parent] => 157
    [count] => 96
    [filter] => raw
    [cat_ID] => 45
    [category_count] => 96
    [category_description] => 
    [cat_name] => Aldec
    [category_nicename] => aldec
    [category_parent] => 157
    [is_post] => 1
)

Plotting to take over the time-domain only world

Plotting to take over the time-domain only world
by Don Dingee on 03-16-2013 at 10:00 am

The state machine nature of many digital designs has made time-domain debugging the favorite tool for most designers. We provide a set of inputs, data gets clocked in, and a set of outputs appears. We look for specific patterns in parallel paths, or sequences on serial lines.

One factor of complexity, especially with serial interfaces, is a lengthy and prescriptive protocol where both content and timing relationships need to be strictly observed for a block to be interoperable. Protocol analyzers for interfaces such as USB and MIPI have come to the rescue, with the ability to automatically capture, verify, and debug long sequences quickly.

Another factor of complexity is designs which operate on sophisticated data sets beyond simple time-domain waveforms. One type of waveform typically found in advanced mobile devices today provides a great example of where a time-domain only view falls short.

The concept of digital data modulated onto a carrier signal was a breakthrough in communications, allowing computer-aided transmission and recovery of data with minimal error rates, even in significant noise. However, designers using simple amplitude modulation (AM) or frequency modulation (FM) techniques soon found themselves against the limits of Shannon-Hartley capacity encoding data one bit at a time. The solution was to increase bandwidth efficiency by encoding multiple bits into symbols for transmission.

A widely employed technique is QAM – quadrature amplitude modulation. Entire books have been written on this stuff, but in the simplest terms QAM combines at least two amplitudes of signal with at least two phases of signal to produce uniquely separable data symbols. By increasing the number of amplitudes and phases, more symbols can be packed into the same space, but noise becomes more of a factor in error rates as the separation between symbols is reduced.

Taking an example of a 16-point QAM constellation, the power of visualizing data graphically becomes very evident. In an ideal scenario, constellation points would be exactly that – points, with the same values. More likely, your world looks like mine, and factors like noise and jitter cause those clean transmitted points to become more scattered at the receiver.

Now consider that cable TV systems use 64- or 256-QAM, and LTE Advanced uses 128-QAM, and you can see how complex this data gets. Of course, you could whip out an expensive hardware analyzer and look at the RF analog waveforms, but that yields little information about how a digital IP block may be working, or how to fix it. Without a way to visualize data with multiple domain relationships in plots, looking at those data streams in digital form using only time-domain techniques could be very unproductive.

The latest release of Aldec Riviera-PRO 2013.02 contains a set of visual debugging tools for presenting simulation results in a variety of plot types without any extra programming. It also contains features such as virtual signal expressions and conditional breakpoints – for instance, maybe setting a breakpoint on an instance of a SystemVerilog class. There are also improvements in simulation speed with this release.

Engineers have also created a white paper, Using Plots for HDL Debugging as a Powerful Alternative to Traditional Waveforms, showing various ways to use visual debugging and contrasting the efficiency compared to slugging it out looking at just time-domain data. In addition to constellation diagrams, other modes include polar, vector, and image array plots.

The idea is visualizing data quickly, without bolting in expensive hardware analyzers or simulator testbench extensions with additional code involved. Do you work with complex data sets where time-domain debugging leaves you stymied? Have you had to wait until actual silicon only to find a problem in a digital signal processing application, where visualization tools could have helped in simulation? I’d like to hear your thoughts.