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

feat(iob): improve iob_interface README #675

Closed
wants to merge 1 commit into from

Conversation

P-Miranda
Copy link
Contributor

  • update interface names (valid_i instead of avalid_i)
  • add missing rvalid_o signal
  • add example for write transactions
  • small introduction text in README
  • simple makefile to generate .png from .drom files

- update interface names (`valid_i` instead of `avalid_i`)
- add missing `rvalid_o` signal
- add example for write transactions
- small introduction text in README
- simple makefile to generate .png from .drom files
![Read Transaction](iob_if_read.png "Read Transaction")
The IOb-interface has the following signals:
- `clk_i`: interface clock
- `valid_i`: source signal valid transaction
Copy link
Contributor

@jjts jjts Dec 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

valid transaction from master input.


![Read Transaction](iob_if_read.png "Read Transaction")
The IOb-interface has the following signals:
- `clk_i`: interface clock
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interface input clock


![Read Transaction](iob_if_read.png "Read Transaction")
The IOb-interface has the following signals:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The IOb Native Interface, or IOb interface shortly, has the following signals from the slave perspective. (Note that the _i and _o suffixes denote input and output, respectively.)

The IOb-interface has the following signals:
- `clk_i`: interface clock
- `valid_i`: source signal valid transaction
- `addr_i`: address for access
Copy link
Contributor

@jjts jjts Dec 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

address for read or write access input.

- `valid_i`: source signal valid transaction
- `addr_i`: address for access
- `wdata_i`: data to write
- `wstrb_i`: write strobe
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

byte write strobe input.

- `wstrb_i`: write strobe
- `rdata_o`: read data
- `rvalid_o`: valid read data
- `ready_o`: destination ready to accept transactions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

slave ready for transaction output.

period.

Use `wstrb_i` to distinguish between READ and WRITE operations. READ operations
occur when all `wstrb_i` bits are LOW.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Byte i is written if wstrb[i] is HIGH and not otherwise.


## Read Transaction
For READ operations: when `valid_i` and `ready_o` are HIGH, read `addr_i`
address. The `rdata_o` is available when `rvalid_o` is HIGH.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For READ operations: when valid_i and ready_o are HIGH, address addr_i is read. The data on rdata_o is available when rvalid_o is HIGH.


## Write Transaction
For WRITE operations: when `valid_i` and `ready_o` are HIGH, write `wdata_i`
bytes with corresponding `wstrb_i` bit HIGH to `addr_i` address.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For WRITE operations: when valid_i and ready_o are HIGH, the bytes in wdata_i
validated by wstrb_i are written to address addr_i.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is ready for merging after the comments are addressed.

P-Miranda added a commit to P-Miranda/iob-soc that referenced this pull request Dec 12, 2023
@P-Miranda
Copy link
Contributor Author

comments addressed in #676

@P-Miranda P-Miranda closed this Dec 12, 2023
@P-Miranda P-Miranda deleted the rstn branch December 12, 2023 18:29
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

Successfully merging this pull request may close these issues.

2 participants