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 support for callbacks to cppmod output #36

Open
ebertland opened this issue Nov 9, 2017 · 3 comments
Open

Add support for callbacks to cppmod output #36

ebertland opened this issue Nov 9, 2017 · 3 comments

Comments

@ebertland
Copy link
Contributor

We need to register callback functions that are triggered on reads and/or writes of specific registers. The most common use cases are:

  1. After a write is performed, copy or transform data written into one or more fields from the register model to another part of the reference model.
  2. After a write is performed, trigger an action elsewhere in the reference model such as a FIFO push.
  3. When a read is performed, modify the state of one or more fields in the register model before returning data to the caller.
  4. After a read is performed, modify the state of a register such as clearing interrupt status bits.
  5. After a read is performed, trigger an action elsewhere in the reference model such as a FIFO pop.

I propose 4 callback hooks: pre_write, post_write, pre_read, post_read.

post_write: use case 1) & 2)
pre_read: use case 3)
post_read: use case 4) & 5)

I cannot think of a use case for pre_write, but I think it should be added for consistency.

I plan to extend ordt_addr_elem so that callbacks may be registered with any ordt_reg or ordt_regset derived class. I don't have any need to register a callback on a field.

I'll submit a PR when the first draft is done.

ebertland added a commit to Cerebras/open-register-design-tool that referenced this issue Nov 11, 2017
- issue: Juniper#36 in Juniper/open-register-design-tool
@ebertland
Copy link
Contributor Author

My work in progress is in fork Cerebras/open-register-design-tool, branch jeff/cppmod-callbacks. I will use the new callback interfaces for a while to see if anything needs to be added or changed. Feedback is welcome.

@sdnellen
Copy link
Contributor

Good feature - lack of field level callbacks seems fine. Submit PR when ready.

@sdnellen
Copy link
Contributor

Kamino cloned this issue to sdnellen/open-register-design-tool

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

2 participants