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

Additional visualization example file #130

Open
thunder-hammer opened this issue Apr 30, 2021 · 6 comments
Open

Additional visualization example file #130

thunder-hammer opened this issue Apr 30, 2021 · 6 comments

Comments

@thunder-hammer
Copy link
Collaborator

Thanks to JensRestemeier and Jordi1215 we have some example scripts that show how to create a netlist from the ground up in SpyDrNet. Now that we can create it would be nice to have some code to visualize. this could help users get an idea of what might go wrong before writing a netlist.

Let's takes advantage of the minimal example script minimal.py and print some features of the netlist to further solidify the similarities to the diagram in the documentation ExampleCircuit.png

Some things that might be interesting to show:

  • print the hierarchy of the design from the top instance
  • print some of the connectivity of the design, for example create a function to print all instances/ports connected to each cable/wire
  • print a list of the libraries and all the definitions that they contain
  • print all sinks/sources (in/out ports that are connected to a given cable)
  • print all the instances that are downstream or upstream of any cable
@jacobdbrown4 jacobdbrown4 self-assigned this May 3, 2021
@JensRestemeier
Copy link

JensRestemeier commented May 5, 2021

Not sure how useful it is for you, but I've been experimenting with this edif->graphviz script. It doesn't collapse wires or label busses, and big networks are unusable. The code is not going to win beauty contests, but maybe it is useful for you.

Edit: I totally forgot that I created a repository for it: https://github.com/JensRestemeier/EdifTests

@thunder-hammer
Copy link
Collaborator Author

@JensRestemeier That's a very cool visualization tool and it shows a lot of the things that we have listed in this issue. I'm going to play around a little bit with it. Thanks for sharing. We might link to your repo in our documentation as an example if that is okay with you.

@jacobdbrown4
Copy link
Collaborator

I went in and added some functions to help visualize the flatten and uniquify examples. I also added another example called Display Information Functions with a few functions that can be used to write out the hierarchy, libraries and definitions, and wire connections in a netlist.

@jacobdbrown4
Copy link
Collaborator

jacobdbrown4 commented May 20, 2021

@JensRestemeier that's really cool! I have added a link to your github repo in our next release documentation as well as given you credit for it. Thanks

@jacobdbrown4
Copy link
Collaborator

From the original list, these are the ones that have not yet been made

  • print all sinks/sources (in/out ports that are connected to a given cable)
  • print all the instances that are downstream or upstream of any cable

@jacobdbrown4
Copy link
Collaborator

@ganeshgore has an html composer that can create a nice representation of a netlist. We had plans to pull this into the mainstream spydrnet, but doing so requires many additions to the IR that ganesh has made, so it never really happened. Perhaps eventually we will work again to add this functionality.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

No branches or pull requests

3 participants