Quartus® Prime Pro Edition User Guide: Design Compilation

ID 683236
Date 9/30/2024
Public
Document Table of Contents

1.2.2.1. Sweep Hints Viewer

Sweep Hints Viewer allows you to visualize and identify why Synthesis removed logic in your design. It is one of the RTL Analyzer tools you can access from the menu by selecting Tools > View Sweep Hints.
You can also launch Sweep Hints Viewer by right-clicking the object in question in the Netlist Navigator.
Note: Because the Swept snapshot shows only swept elements of the design, the Sweep Hints Viewer is not available for the Swept snapshot. The Sweep Hints Viewer is available only for the Constrained snapshot.

The RTL Analyzer highlights the top-level module port and leaf instance with associated sweep hints in orange color. When you hover over the swept port or instance, the tooltip displays the number of swept ports, sweep hint type, and sweep hint reason. These highlights and tooltips are available in both the schematic view and the Netlist Navigator, as shown in the following image:

Sweep Hints View in the RTL Analyzer


From the RTL Analyzer, you can launch Sweep Hints Viewer by selecting View Sweep Hints from the context-sensitive menu of the swept instance or the top-level module port in the netlist navigator or schematic view, as shown in the following image:

Upon selecting the View Sweep Hints option from the context-sensitive menu, the Sweep Hints Viewer auto-populates with sweep hints of the selected instance or port, as shown in the following image:

Auto-populated List of Sweep Hints for the Selected instance


Root Causes View of the Sweep Hints Viewer

To identify the root cause for a particular node in the design being swept away, you must understand various reasons behind why a single node was marked during the sweep, as listed in the following:

  • A node stuck at constant 0 or 1. For example, an input port of an AND gate stuck at 0 triggers a sweep of the AND gate since the output of the AND gate is also stuck at 0.
  • A node behaved as a wire and was deleted. For example, a multiplexer whose select line is connected to constant acts as a wire​.
  • A node was modified during the sweep but it was not deleted.
  • A node lost all fan-outs and it was deleted.
  • A port or instance port got disconnected because the parent or child did not have a fan-out.

The Root Causes tab of the Sweep Hints Viewer provides a list of sweep records and their root cause for being swept away, as shown in the following example:

Figure 10. Root Causes Tab of the Sweep Hints Viewer

The Root Causes view shows the root reason and total number of swept objects of a root object in the Swept Objects Count column, which you can trace to a sweep record in the Root Record column (for instance, 802137 in the above image). Selecting the Show Sweep Hints option in the context-sensitive menu switches the interface to the Sweep Hints view to show all sweep records that identify the root record as the root cause, as shown in the following image:

Figure 11. Tracing Sweep Records of a Root Record
Note: For more information about the Show Hint Trace, refer to the Sweep Hints View of the Sweep Hints Viewer section.

Hierarchy View of the Sweep Hints Viewer

Recall from the Design Analysis & Elaboration how to sweep optimization (Swept checkpoint) happens as part of the Analysis & Elaboration stage. The sweep optimization phase leaves behind a database of objects that are swept away along with the reason for their removal. The database also tracks relationships between the removed objects. For example, if an output of a gate is dangling, it is swept away. Few cells in the fan-in cone can also be swept away because their output does not drive anything useful. The Sweep Hints Viewer allows you to view the sweep hints database with a list of marked objects in the pre-swept design that are removed later.

Note: For large and complex designs, the total number of swept objects can be significant (in millions). Hence, the swept objects are hierarchically arranged so that you can quickly query, filter, and find regions of your interest.
Figure 12. Hierarchy Tab in the Sweep Hints Viewer

Within the Hierarchy tab of the Sweep Hints Viewer, you can observe various hierarchy levels and their sweep statistics. The logic unit here is a leaf cell, which refers to logical primitives, such as AND/OR gate or registers. A hierarchical cell is a composite of leaf cells and other hierarchical cells.

The Leaf Cells Count by Hierarchy table in the above image provides information about the percentage of the logic swept either locally or in the full hierarchy of a given hierarchical path. The table columns for the number of leaf cells indicate before and after a sweep and the type of hierarchical path, which can be USER (RTL you designed), Intel® IP, or MEGAFUNCTION ( Intel® -provided library modules). If the hierarchy table is large, use the filter options to refine the regions of your design.

Note: Intel® IP and MEGAFUNCTION types are hidden by default since you cannot modify them. However, you can view them in specific circumstances by selecting the desired option in the Hierarchy Type drop-down list. Encrypted modules are always hidden from this view.

Sweep Hints View of the Sweep Hints Viewer

Figure 13. Example of Swept Objects in the Sweep Hints Viewer

Notice the swept object highlighted with the teal color in the schematic view. If you hover over this object tooltip or view the sweep reason in the Sweep Hints Viewer, you can see that this instance was swept away because the instance port lost fanout. Similarly, you can select other swept objects to identify their root cause and view them in the schematic viewer and hierarchy view. All these objects are eventually swept away from the design when you proceed with the compilation flow.

While the Hierarchy tab helps filter by the sweep statistics of an instance, the Sweep Hints tab allows you to filter and query the leaf objects swept away in a given hierarchy level. Various columns in the table describe the object involved in the sweep and provide ways to query data. For instance, you can look for specific instance types or limit the results to specific sweep reasons, types, and so on.

Viewing Related Swept Objects

You can also view related swept objects by right-clicking on a select object under Sweep Hints and selecting Show Hint Trace in the context-sensitive menu. Hint Trace for ID <number> section displays a hierarchical listing of swept objects that caused a particular object to be swept away and objects swept away as a result of one object. The ability to highlight and select various objects in the chain allows you to narrow down the desired sweep information.

In the following figure, when you trace the sweep hints for a port with object ID 30, under Hint Trace for ID 30 , you notice an instance port with object ID 2 being related to the swept port 30. The sweep reason for both objects is disconnected fanout.

Figure 14. Related Swept Objects