How to make your Waveform viewer SMART!

In this blog, we will look at the Protocol Debug Analyzer (PDA) tool can analyze Signal Dump files and provide transaction and other higher abstraction views. We will explore how the tool augments your Waveform viewer, allowing you to drill down from transaction to signal level details and vice-versa. We will use an example Signal Dump file generated from a system consisting of AXI3 and USB3 interfaces.

example_soc

                                                                  Fig: Example System

Once the signal dump file is loaded onto the PDA, the PDA processes signal toggles in the signal dump to extract transaction level details. In this case, the PDA extracts USB3 and AXI3 transactions from the signal dump file.

In the list view menu, the PDA lists out the different views available for AXI3 and USB3. For example, in case of AXI3, you can look at AXI3 transactions or the individual phases.

Upon selecting the AXI3 transactions view, the PDA displays AXI3 transactions in a tabular, spreadsheet like format. Each column corresponds to one of the fields of the transaction.

transactions

                                                                    Fig: AXI3 Transactions View

Another view provided by the PDA for AXI3 is the Phase View. In this view, the phases of each of the transactions are shown separately.

phases

                                                                   Fig: AXI3 Phase View

The PDA performs the first level of debug for you by detecting and indicating protocol violations on the interface.

error_transaction

                                             Fig: PDA Highlighting Erroneous Transaction

In this case, the PDA indicates that the data phase of a write transaction is missing. When we select the erroneous transaction and switch to the phase view, the PDA highlights the address phase of the selected transaction.

error_phase

Fig: Phase View with Address Phase of the erroneous transaction highlighted

It can be seen that the address phase was followed immediately by a response phase: a violation of the AXI protocol.

To debug further, you might want to zoom in to the signal level. For this, the PDA provides the waveform view. Upon clicking on the Add Signals button, the PDA opens a waveform window and automatically adds the AXI3 signals to it. The waveform view and the transaction views are time-synchronized. So, the waveform marker is automatically placed at the timestamp corresponding to the address phase of the erroneous transaction.

waveform

             Fig: Waveform View – Marker is placed at the address phase of the erroneous transaction

Looking at the data signals, it is evident that there are timing issues in the design due to which the data phase has not completed successfully.

You can also zoom out to the transaction level details from the waveform window by placing the marker at the point of interest and switching to the transaction view in PDA.

waveform_phase

                                  Fig: Waveform View with the marker placed at the point of interest

The PDA highlights the corresponding AXI transaction in progress and summarizes it in a single line, even though the transaction spans across multiple clocks cycles in the waveform.

transaction_for_waveform

                               Fig: PDA Highlighting the transaction corresponding to the point of interest

The PDA can construct transfers, upto the software level, by looking at just the signal toggles.

Upon selecting hierarchical view for USB3 transfers, the PDA displays software level transfers, with dropdown buttons, using which you can breakdown the transfers into their corresponding transactions which can be further broken down to their corresponding packets.

hierarchical

                                                               Fig: Hierarchical View for USB3

This way the higher level transfers and the lower level transfers can be correlated with ease.

To summarize, the PDA upgrades your Waveform viewer and performs a first level debug for you by detecting and indicating protocol errors. The tool allows you to easily switch back and forth between transaction views and signal level views to make your debug painless. The tool also helps correlate and track data flowing through different system interfaces in a complex SOC environment.

Author: Sudhanshu A R

One thought on “How to make your Waveform viewer SMART!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s