Navigate VHDL Signals
The idea of having a power feature for tracking signals throughout a design is almost as old as Sigasi software itself. A recent support question from a customer put this feature request back at the top of our minds.
This is the scenario: you see a signal in a certain component and you wonder who drives it and who reads it. In real life, there are no guarantees that the name of this signal is preserved throughout the design hierarchy. You want to know about all the different names for the signals because you might consider cleaning things up. After all, you do have a nice tool that can do automatic rename refactorings!
So, what should the user interface look like? Triggering the search command will be easy. We'll define a configurable keyboard shortcut, and you'll be able to right-click on the signal and select a search function. The hard part is how to display the search results.
Block Diagram
Which results do you want to see?
- All places where this signal is written and read?
- All declarations of relevant ports and signals?
- All relevant port associations in corresponding instantiations?
How should this be structured? Hierarchically? Per file?
There are some optional commands that might be useful. On the other hand, they might clutter up the user interface:
- Find drivers
- Find loads (what is the correct name here?)
- Rename across hierarchy
Let us know what you think: would you give a high priority to this feature? How should we display the results?
Here are some proposals for the output:
Find Signals per File
Find Signals in Hierarchy
- Forums:
Do it like Synplify (or Planahead?)
Synplify's graphical RTL view has things like "goto driver" "show me all the destinations" - those are the things I am usually interested in on signals, not "where they are defined" or "instantiated".
So, my thoughts would be:
Awesome feature
I spend most of my time tracing signals around designs to see where they come from and where they are used so for me this is a very high priority feature which I would use all the time and would justify the license fee on it's own!
Martin hit most of the features I believe.
A block diagram that shows where the signal is driven from and used would be fantastic as long as it is clickable to jump to the relevant part of the design.
It would also be good to have a hierarchical text output for cases where a block diagram becomes too unwieldy.
In term of sorting, I think the signals should be displayed in terms of design hierarchy with the filenames also being displayed so the file can be easily opened too.
Great feature that is often requested
I have proposed Sigasi to a number of engineers in the past year and many of them desire to have a feature similar to this available. When working with a large code base, or an unfamiliar one--Signal renaming is a problem. Navigation of a signals purpose would be greatly aided by being able to see its progression through a code base.
This would help with that and be very welcome.
I hope you implement it, it is a great idea!
IF vs WHEN
We will implement this for sure. The question is just how to prioritize. But your input helps us put this feature higher on the wish list!
Thanks
Post new comment