Intel® Quartus® Prime Pro Edition User Guide: Design Compilation

ID 683236
Date 9/26/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents
Give Feedback

2.3.1.1. Sweep Hints Viewer

Sweep Hints Viewer is one of the RTL Analyzer tools you can access from the menu by selecting Tools > View Sweep Hints. It allows you to understand why Synthesis removed a logic in your design.

Hierarchy View

Recall from the DNI Flow (Beta) how sweep optimization (Swept checkpoint) happens as part of the Analysis & Elaboration stage. The sweep optimization phase leaves behind a database of objects that were swept away and 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 query, filter, and find regions of your interest quickly.
Figure 9. 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

Figure 10. 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 tool-tip 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 view 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 in filtering by 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.

Identifying the Root Cause of Swept Objects

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.

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 on 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 11. Related Swept Objects