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 #2

Open
sdnellen opened this issue Jul 25, 2019 · 2 comments
Open

Add support for callbacks to cppmod output #2

sdnellen opened this issue Jul 25, 2019 · 2 comments

Comments

@sdnellen
Copy link
Owner

From open-register-design-tool created by ebertland: Juniper#36

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.

@sdnellen
Copy link
Owner Author

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

@sdnellen
Copy link
Owner 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.

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