Quartus® Prime Pro Edition User Guide: Design Compilation

ID 683236
Date 7/08/2024
Public

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

Document Table of Contents

1.2. Using the Node Finder

Use the Node Finder tool to search for objects in the design databases based on specific search criteria. The Node Finder serves as a central tool for exploring nodes throughout the design cycle. It provides a list of matching nodes, that you can cross-probe with other tools like the RTL Analyzer and Timing Analyzer. Searches can be initiated after completing at least the Analysis and Elaboration compilation stage from the Quartus compilation dashboard.

To launch the Node Finder, on the Quartus® Prime software menu, click View > Node Finder.

The Named field serves as the starting point for initiating a search. It accepts partial or full-text characters and standard wildcard characters (" * " and " ? "). When you click Search, the Node Finder searches all node names matching the specified text. Your search strings are saved, so you can access previously searched strings using the drop-down. The Node Finder provides additional search options (described in the section below) to refine your search.

In the following example, the Node Finder has found all user-entered names in your design files:

This example uses a * wildcard to show all user-entered names in the design. To avoid reviewing a large list of nodes when you look for a particular node or nodes in your design, use a more specific wildcard, or search options.

The attributes of the Node Finder vary depending on the database being accessed. By default, the Named field is case-sensitive when retrieving elements from the design netlist database. However, you can adjust this setting through the option provided when you click the Options button. In contrast, elements retrieved from the timing netlist database are always case-insensitive.

Node Finder Search Options

Use the Show More Search Options button in the Node Finder to show or hide the Options panel where you can apply filters and refine your search. The button is to the right of Search button as shown highlighted in the following figure:

Figure 4. Show More Search Options Button


Search options available in the Node Finder vary based on the filter you select in the Filter drop-down list. For descriptions of the filters, refer to Node Finder Search Filters . You can also access additional options to customize the filter by clicking Options or Customize, depending on which button is displayed. The additional options available depend on the selected filter. Some options are enabled, disabled, or grayed out by default.

Figure 5. Filter Options


Table 5.  Node Finder Search Options
Node Finder Search Options Description
Customize

(Timing netlist searches)

  • Filter: Provides preset filter settings and facilitates the creation of custom filters based on existing ones.
  • View: Allows selection between retrieving data from current project settings or from the last compilation.
  • Use Netlist: Allows you to select the compiler netlist to use for searching in the Node Finder from the following options:
    • Pre-Synthesis: The netlist is written out after the Analysis and Elaboration step of Synthesis and before Logic Synthesis
    • Post-Synthesis: The netlist is written out at the end of Synthesis
    • Post-Fitting: The netlist is written out at the end of Fitter.
  • Show Names Matching: Determines the types of objects that will match the search.
  • Creator: Filters between netlist objects that are user entered or compiler-generated:
    • User-entered objects are those whose names are specified by the user in their design source files.
    • Compiler-generated objects are netlist objects instantiated by the compiler during the compilation and optimization process.
Options

(Design netlist searches)

  • Case-insensitivity: Allows searching case-insensitive node names. By default, the search is case-sensitive. With this option enabled, the search returns the same result irrespective of whether you use lowercase or uppercase search strings.
  • Object Type: Specifies the object type to search for. You can choose between instance, instance_bus, instance_port, port, port_bus, net, and net_bus.
  • Properties: Allows adding or removing object properties, such as object name, name of an object's parent, number of ports, source file or line number in the source, and so on. You can type the property values (integer or string) manually.
Table 6.  Node Finder Search Additional Options
Node Finder Search Options Description
Look in

Refines your search hierarchy path.

When you select Timing Netlist filter, use the Browse button to choose the desired search hierarchy level. Clicking the Browse opens the Select Hierarchy Level dialog box.

For a Design Netlist filter, select the desired hierarchy level in the hierarchy tree located below the Look In field.

Include subentities

Enable this option to include names that match the specified pattern in deeper hierarchies recursively during a search.

Enabling this option can be helpful when searching for names that match a specific pattern throughout the entire design hierarchy.

Alternatively, if you are looking for a specific name within a module that contains other instantiations, specify the hierarchy level and disable this option to avoid a recursive search and unnecessary matches in deeper hierarchies.

Hierarchy view

A hierarchal view of search results is available for filters that target the timing netlist. This view can help you focus on specific instances in your design.

Use this option to switch between a list format and a hierarchical view of your results.

Node Finder Search Filters

The following search filters are available in the Node Finder:

Table 7.  Node Finder Filters and Search Mode
Filter Name Description
Design Entry (all names) Finds all user-entered names in the search hierarchy path.
Pins: assigned Finds all assigned pins in the search hierarchy path.
Pins: unassigned Finds all unassigned pins in the search hierarchy path.
Pins: input Finds all input pins in the search hierarchy path.
Pins: output Finds all output pins in the search hierarchy path.
Pins: bidirectional Finds all bidirectional pins in the search hierarchy path.
Pins: virtual Finds all I/O elements mapped to logic elements with a virtual pin logic option assignment.
Pins: all Finds all pins in the search hierarchy path.
Pins: all & Registers: post-fitting Finds all pins and registers that persist after physical synthesis and fitting within the search hierarchy path.
Note: This filter is a combination of the Pins: all and Registers: post-fitting filters.
Ports: partition Finds all user-entered and compiler-generated partition ports within the post-fit netlist and search hierarchy path.
Entity instance: pre-synthesis Finds all entity instances within the pre-synthesis netlist and search hierarchy path.
Registers: pre-synthesis Finds all user-entered register names contained in the design after Analysis & Elaboration, but before physical synthesis performs any synthesis optimizations.
Registers: post-fitting Finds all user-entered registers in the search hierarchy path that survived physical synthesis and fitting.
Post-synthesis Finds all user-entered and synthesis-generated nodes contained in the design after design elaboration and physical synthesis.
Post-synthesis: preserved for debug Finds all internal device nodes that you have designated with preserve for debug in the post-synthesis netlist.
Post-Compilation Finds all user-centered and compiler-generated names that persist post-fit and do not have location assignments.
Signal Tap: pre-synthesis Finds all internal device nodes in the pre-synthesis netlist that are preserved for analysis by the Signal Tap Logic Analyzer.
Signal Tap: post-fitting Finds all internal device nodes in the post-fit netlist that are preserved for analysis by the Signal Tap Logic Analyzer.
Signal Tap: post-fitting user defined Finds all user defined internal device nodes in the post-fit netlist that are preserved for analysis by the Signal Tap Logic Analyzer.
Signal Tap: pre-synthesis preserved for debug Finds all internal device nodes in the pre-synthesis netlist that are preserved for analysis by the Signal Tap Logic Analyzer.
Signal Tap: post-fitting preserved for debug Finds all internal device nodes in the post-fit netlist that are preserved for analysis by the Signal Tap Logic Analyzer.

In the following example, we want to verify that three arrays of registers named Sum1Stg1, Sum2Stg1, and Sum3Stg each contain six individual registers, and that these registers are included in the design after physical synthesis.

The Node Finder is configured to retrieve nodes that match the pattern " Sum*Stg1* ", with the " * " character serving as a wildcard character. This pattern enables the Node Finder to retrieve all the register arrays at once, including each individual register from Sum1Stg1, Sum2Stg1, and Sum3Stg1. The Post-synthesis filter targets synthesis-generated nodes contained in the design after design elaboration and physical synthesis.

Additionally, by specifying a particular hierarchy level through the Look In field, and using the Include subentities option, the Node Finder can save time by constraining the search to specific hierarchy levels.

The Hierarchy view provides a structured view of the results, making them easier to navigate.



The results of Node Finder search lets us see that some registers are missing in the Sum2Stg1 array.