Skip to content

[enhancement] Add tool to visualize proc hierarchy and connections between procs #3315

@rw1nkler

Description

@rw1nkler

What's hard to do? (limit 100 words)

It is hard to reason about the structure of complex designs that include multiple procs. The hierarchy exists only at the DSLX level, while the IR representation is flattened. This makes it difficult to understand how the design is organized once it reaches the lower compilation stages. With the recent work on supporting proc-scoped channels (#869 (comment)), it seems possible to reconstruct or visualize the procs hierarchy directly from the IR.

Current best alternative workaround (limit 100 words)

Creating this kind of diagram manually is always possible. However, doing so is time-consuming and error-prone, especially for larger designs with many procs. Effectively, there is no easy and accessible way to generate this diagram automatically.

Your view of the "best case XLS enhancement" (limit 100 words)

It would be very useful to automatically generate diagrams showing the design hierarchy at the DSLX or IR level. Such diagrams could illustrate how procs are connected with channels. This would help both for understanding and documenting designs, as well as for debugging and performance analysis.

The XLS toolchain already includes visualization utilities such as proc_network_printer_main and sched_printer_main, which generate Graphviz DOT files of scheduling results. Building on this existing functionality, a new tool could create hierarchical block diagrams that show the design structure and connections between procs. This feature could integrate with current XLS workflows, offering users an easy way to inspect complex designs visually without leaving the toolchain. It could also export to DOT or other common formats for use in documentation or interactive visualization tools.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions