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 objects, aka. simDB view #4

Open
raczben opened this issue Oct 26, 2020 · 0 comments
Open

Add objects, aka. simDB view #4

raczben opened this issue Oct 26, 2020 · 0 comments

Comments

@raczben
Copy link
Owner

raczben commented Oct 26, 2020

Feature request - Add objects, aka. simDB view

Visualize the simDB, the objects database to be able to see the hierarchy of the design. New signals can be added from this database to the waveform.

This issue has to start with cleaning up the simDB itself. Problems:

  • Now the Signal object has a references property pointing to all signal objects, which always have the same value. Check out VCD Wiki: "Several variables can share an identifier if the simulator determines that they will always have the same value. " This, currently used data-structure is the most compact. But, now, we cannot add a particular simulation-object to the waveform, only a Signal instance, so we don't know which object has been added from the references (i.e, aliases)

  • A Verilog module descriptor class/instances will be useful to point to the source file or others.

First, why can't I let this, reference-issue go? This is a rare phenomenon. Usually, I want to simulate/add different signals. Ok, but note, that the synchronous-clocks will be the same in the case of the most frequently used, behavioral simulation. Also note, that the clocks have value-change the most frequently. So it requires memory. So do not store the clock multiple times, if it is possible.

Solution candidates for the references problem:

  • Define a new Object class, which has a propery: hierarcy or name, which describe which simulation-object are we talking about, and another property will be the Signal with the wave, references properties. This is a clean way, but it will add another (maybe unnesesary) stack level to getValue() during rendering: WaveformRow.getValue() ~> SimulationObject.getValue() ~> Signal.getValue()

  • Another possibility is to update and duplicate Signal objects. Add (more precisely use currently abandoned hierarcy property) and this will point to one, particular simulation-object. Then duplicate all Signal object if it has any other references (i.e, aliases). Note, that this won't duplicate the wave property, which stores the value-changes.

Use-cases:

  • Adding a new signal to simDB.
  • Add signal to waveform
  • Save database (to VCD?)
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

No branches or pull requests

1 participant