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.
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.
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.
Fig: AXI3 Phase View
The PDA performs the first level of debug for you by detecting and indicating protocol violations on the interface.
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.
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.
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.
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.
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.
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!”