Using Analog Waveforms - 2023.2 English

Vivado Design Suite User Guide: Logic Simulation (UG900)

Document ID
Release Date
2023.2 English

Using Radixes and Analog Waveforms

Bus values are interpreted as numeric values, which are determined by the radix setting on the bus wave object, as follows:

  • Binary, octal, hexadecimal, ASCII, and unsigned decimal radixes cause the bus values to be interpreted as unsigned integers.
  • If any bit in the bus is neither 0 nor 1, the entire bus value is interpreted as 0.
  • The signed decimal and signed magnitude radixes cause the bus values to be interpreted as signed integers.
  • Real radixes cause bus values to be interpreted as fixed point or floating point real numbers, based on settings of the Real Settings dialog box.

To set a wave object to the Real radix:

  1. In the waveform configuration window, select an HDL object, and right-click to open the popup menu.
  2. Select Radix > Real Settings to open the Real Settings dialog box, shown in the following figure.

You can set the radix of a wave to Real to display the values of the object as real numbers. Before selecting this radix, you must choose settings to instruct the waveform viewer how to interpret the bits of the values.

The Real Setting dialog box options are:

  • Fixed Point: Specifies that the bits of the selected bus wave object(s) are interpreted as a fixed point, signed, or unsigned real number.
  • Binary Point: Specifies how many bits to interpret as being to the right of the binary point. If the Binary Point is larger than the bit width of the wave object, wave object values cannot be interpreted as fixed point, and when the wave object is shown in Digital waveform style, all values show as <Bad Radix>. When shown as analog, all values are interpreted as zero.
  • Floating Point: Specifies that the bits of the selected bus wave object(s) should be interpreted as an IEEE floating point real number.
    Note: Only single precision and double precision (and custom precision with values set to those of single and double precision) are supported.

    Other values result in <Bad Radix> values as in Fixed Point. Exponent Width and Fraction Width must add up to the bit width of the wave object, or else <Bad Radix> values result.

    Tip: If the row indices separator lines are not visible, you can turn them on in the Using the Waveform Settings Dialog Box to make them visible.

Displaying Waveforms as Analog

Important: When viewing an HDL bus object as an analog waveform—to produce the expected waveform, select a radix that matches the nature of the data in the HDL object. For example:
  • If the data encoded on the bus is a 2's-compliment signed integer, you must choose a signed radix.
  • If the data is floating point encoded in IEEE format, you must choose a real radix.

Customizing the Appearance of Analog Waveforms

To customize the appearance of an analog waveform, right-click an HDL object in the Name column of the waveform configuration window and select Waveform Style from the drop-down menu. A popup menu appears, showing the following options:

  • Analog: Sets the waveform to Analog.
  • Digital: Sets the waveform object to Digital.
  • Analog Settings: Opens the Analog Settings dialog box (shown in the following figure), which provides options for the analog waveform display.
The Wave window can display analog waveforms only for buses that are 64 bits wide or smaller.
Figure 1. Analog Settings Dialog Box

Analog Settings Dialog Box Option Descriptions

  • Row Height: Specifies how tall to make the select wave object(s), in pixels. Changing the row height does not change how much of a waveform is exposed or hidden vertically, but rather stretches or contracts the height of the waveform.

    When switching between Analog and Digital waveform styles, the row height is set to an appropriate default for the style (20 for digital, 100 for analog).

    Tip: If the row indices separator lines are not visible, enable the checkbox in the Waveform Settings to turn them on. Using the Waveform Settings Dialog Box for information on how to change the options settings. You can also change the row height by dragging the row index separator line to the left and below the waveform name.
  • Y Range: Specifies the range of numeric values to be shown in the waveform area.
    • Auto: Specifies that the range should continually expand whenever values in the visible time range of the window are discovered to lie outside the current range.
    • Fixed: Specifies that the time range is to remain at a constant interval.
    • Min: Specifies the value displayed at the bottom of the waveform area.
    • Max: Specifies the value displays at the top.

    Both values can be specified as floating points; however, if the wave object radix is an integer, the values are truncated to integers.

  • Interpolation Style: Specifies how the line connecting data points is to be drawn.
    • Linear: Specifies a straight line between two data points.
    • Hold: Specifies that of two data points, a horizontal line is drawn from the left point to the X-coordinate of the right point, then another line is drawn connecting that line to the right data point, in an L shape.
  • Off Scale: Specifies how to draw waveform values that lie outside the Y range of the waveform area.
    • Hide: Specifies that outlying values are not shown, such that a waveform that reaches the upper or lower bound of the waveform area disappears until values are again within the range.
    • Clip: Specifies that outlying values be altered so that they are at the top or bottom of the waveform area. So, a waveform that reaches the upper or lower bound of the waveform area follows the bound as a horizontal line until values are once again within the range.
    • Overlap: Specifies that the waveform be drawn wherever its values are, even if they lie outside the bounds of the waveform area and overlap other waveforms, up to the limits of the Wave window itself.
  • Horizontal Line: Specifies whether to draw a horizontal rule at the given value. If the checkbox is on, a horizontal grid line is drawn at the vertical position of the specified Y value, if that value is within the Y range of the waveform.

    As with Min and Max, the Y value accepts a floating point number but truncates it to an integer if the radix of the selected wave objects is an integer.