Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add module statistics viewer #19

Merged
merged 34 commits into from
Nov 26, 2023
Merged

Add module statistics viewer #19

merged 34 commits into from
Nov 26, 2023

Conversation

malmeloo
Copy link
Member

@malmeloo malmeloo commented Oct 8, 2023

Adds a module statistics viewer for Yosys. It currently supports these views:

  • Module overview, which shows an overview of all the modules in a table format;
  • Module explorer, which shows statistics for one module at a time, but allows the user to navigate "up and down" through the module structure.
  • Primitives overview, which shows which and how many primitives make up each module.

All of these views are interactive and customizable: the user can add, remove and customize table grid columns, as well as navigate through the module structure and highlight these modules from the (separate) DigitalJS view.

The following fundamental module statistics can currently be explored:

  • Memory count
  • Memory bit count
  • Cell count
  • Process count
  • Wire count
  • Wire count (pub)

Note that this PR modifies the file structure of the files generated during Yosys synthesis. *.digitaljs.json files now have the following structure:

{
	"type": "rtl" | "stats",
	"data": "<original file content>"
} 

This allows using a single file viewer and then distinguishing between file types in the viewer itself, which makes it easier to facilitate cross-view messaging (to improve integration with DigitalJS, for example).

Changelogs

October 29th, 2023 (current)
  1. Added more settings
  2. Settings are now saved in between stat viewer sessions
  3. Explorer tab is now focused when clicking the inspect button from DigitalJS
  4. Stability + performance improvements
October 15th, 2023 Added a "primitives" tab as well as settings checkboxes.
October 8th, 2023

TODO

Closes #8.

@malmeloo malmeloo changed the title Add initial stat viewer and message broadcasting Add module statistics viewer Oct 8, 2023
@malmeloo malmeloo marked this pull request as ready for review November 23, 2023 13:16
@DanielleHuisman DanielleHuisman merged commit 9d5b1bc into main Nov 26, 2023
@DanielleHuisman DanielleHuisman deleted the add-yosys-stat-viewer branch November 26, 2023 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Statistics of logic primitive utilization per module/source file
2 participants