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

wavedb interface tracking issues #9

Open
1024bees opened this issue Nov 21, 2021 · 0 comments
Open

wavedb interface tracking issues #9

1024bees opened this issue Nov 21, 2021 · 0 comments
Labels
MVP blockers MVP blocker; highest priority

Comments

@1024bees
Copy link
Owner

Overview

Its clear that a common pitfalls of other debuggers is the difficulty grouping signals into some higher level grouping (we will call them Interfaces moving forward).

Motivation

When an engineer opens up a vcd file to debug their design (or software on their design). They often already have insight on what parts of the design they want to look at, and how certain signals interact. If an engineer is unfamiliar with a part of a design that looks as if it may be exhibiting incorrect behaviour, then engineers can often feel hopelessly lost when navigating through the hierarchy of signals and modules.

Design

Interfaces hope to address these two use cases by doing the following:

  • Allow end users to add structure to digital designs such that signals can be quickly populated in the debugger in a finegrained manner
  • Allow end users to add semantic meaning to groups of signals such that other designers can quickly extract "meaningful" state from foreign blocks (IP blocks that are unfamiliar to the engineer).
  • Allow end users to define interfaces once and instances of that interface should be automatically found

Implementation

Ideas within Interfaces (this may overlap with implementation):

  1. Channel: A channel may be a single SignalItem or an Interface object. An interface may be composed of one or more Channels.
    • Each channel may be optionally tagged with a comment.
    • Two Channels may be 'siblings' if they are parented underneath the same Interface
    • Relationships between interfaces should be described by creating a parented interface.
  2. Top Scope: The highest level of visibility an interface has within a design.
    • e.g. if we want to have have a read interface to a flip fop, the top scope would be the name of the flip flop module we're using

Implementation

Ideas within Interfaces (this may overlap with implementation):

  1. Channel: A channel may be a single SignalItem or an Interface object. An interface may be composed of one or more Channels.
    • Each channel may be optionally tagged with a comment.
    • Two Channels may be 'siblings' if they are parented underneath the same Interface
    • Relationships between interfaces should be described by creating a parented interface.
  2. Top Scope: The highest level of visibility an interface has within a design.
    • e.g. if we want to have have a read interface to a flip fop, the top scope would be the name of the flip flop module we're using sable and

Implementation

Ideas within Interfaces (this may overlap with implementation):

  1. Channel: A channel may be a single SignalItem or an Interface object. An interface may be composed of one or more Channels.
    • Each channel may be optionally tagged with a comment.
    • Two Channels may be 'siblings' if they are parented underneath the same Interface
    • Relationships between interfaces should be described by creating a parented interface.
  2. Top Scope: The highest level of visibility an interface has within a design.
    • e.g. if we want to have have a read interface to a flip fop, the top scope would be the name of the flip flop module we're using
  3. Specification: Description of one or more interfaces.
    • Namespaced: should be all relative to top scope
    • Composable -- should be able to include specs from other specs
    • Incremental -- should be able to define interfaces on the fly (from any wavedb client) and save them
    • Human readable -- low friction to create interfaces and verify if an interface definition is correct
@1024bees 1024bees changed the title wave2 interface tracking issues wavedb interface tracking issues Dec 9, 2021
@1024bees 1024bees added the MVP blockers MVP blocker; highest priority label Dec 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MVP blockers MVP blocker; highest priority
Projects
None yet
Development

No branches or pull requests

1 participant