Stellarion
Tools

stellarion_find_eda_calls [Pro · EDA]

Find call sites of EDA-classified commands (Quartus / Qsys / SDC) across the workspace
This is a Pro tool that requires EDA mode (--mode eda). It uses the Eda license feature; a 180-day free trial starts automatically. See the EDA Mode guide to enable it.

Aggregates EDA call sites across the indexed workspace and groups them by category. Surfaces Quartus assignment locations, Qsys component declarations, OpenROAD/Synopsys tool flow commands, SDC reads/writes, and timing queries — across files and across repos.

The TCL/SDC/UPF parser classifies every command at parse time. This tool is the cross-cutting query path on top of that classification.

When to Use

  • To audit all set_global_assignment sites in a Quartus project before a constraint cleanup
  • To locate every Qsys component declaration (set_module_property NAME …) for a release-note inventory
  • To find which procs touch a given EDA stage (timing, reporting, etc.)
  • To build a cross-repo EDA dependency view: which files emit which categories
  • As a precursor to refactoring — count how many sites a category has before extracting a shared helper

Parameters

ParameterTypeRequiredDefaultDescription
categorystringNoExact match for one EDA category (e.g. qsys_interface, quartus_assignment)
categoryPrefixstringNoMatch all categories with this prefix (e.g. qsys_ or quartus_)
filePatternstringNoSubstring match on file path (e.g. mem_ss or _hw.tcl)
callerNamestringNoCaller proc/file name to scope to a single caller
limitnumberNo100Maximum entries to return

Categories

EDA commands are grouped into 40+ categories across these families:

FamilyExamples
quartus_*quartus_project, quartus_assignment, quartus_messaging, quartus_report, quartus_timing, quartus_execution, quartus_package
qsys_*qsys_module, qsys_interface, qsys_parameter, qsys_fileset, qsys_instantiation, qsys_callback
query_*query_clock, query_pin, query_register, query_port, query_net, query_cell
read_* / write_*read_verilog, read_sdc, write_def, write_sdc (HDL/SDC I/O)
Tool flowsynthesis, placement, routing, cts, timing, power, physical, verification
openroadsta::*, gpl::*, drt::*, … (OpenROAD namespace prefixes)

Examples

Distribution across the workspace

What EDA commands does this codebase use?

Calls with no filters; returns a by_category breakdown plus the top entries.

All Quartus assignments

Where are all the set_global_assignment calls?

Sets category: "quartus_assignment" and lists every call site.

Just the Qsys family

Show me every Qsys component DSL call.

Sets categoryPrefix: "qsys_".

Scoped to a subdirectory

What EDA calls live in src/fpga_family/agilex?

Sets filePattern: "fpga_family/agilex".

Inside one proc

Which EDA commands does emitMacros call?

Sets callerName: "emitMacros".

Output Format

{
  "total_matches": 1899,
  "returned": 100,
  "by_category": {
    "qsys_interface": 623,
    "qsys_parameter": 477,
    "quartus_assignment": 112,
    "quartus_messaging": 86,
    "...": 0
  },
  "results": [
    {
      "file": "/abs/path/file.tcl",
      "caller": "emitMacros",
      "callee": "project_open",
      "category": "quartus_project",
      "line": 40,
      "source": "node",
      "key": "...",
      "value": "...",
      "target": "..."
    }
  ]
}
  • source is "node" for unresolved DSL calls (the bulk) and "edge" for resolved proc-to-proc EDA calls.
  • key / value / target come from the Phase 4A argument extractor — present for declarative commands like set_global_assignment -name FAMILY "Stratix 10" and absent for argument-less commands.

Tips

  • Use categoryPrefix rather than category when exploring — the prefix view shows whether your codebase leans Qsys (_hw.tcl heavy) or tool-flow (synthesis scripts).
  • Combine with stellarion_get_flow_graph for the architectural view of how categories connect to flow stages.
  • The same caller can appear under multiple categories — that's a flow orchestrator signal worth investigating.
  • Pair with stellarion_find_duplicate_constraints to find drift among the key values surfaced here.