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

Hardware abstraction layer for Calendars #661

Open
lmbollen opened this issue Oct 28, 2024 · 0 comments
Open

Hardware abstraction layer for Calendars #661

lmbollen opened this issue Oct 28, 2024 · 0 comments
Assignees

Comments

@lmbollen
Copy link
Contributor

Our Bittide system contains three types of components that contain a calendar:

  • Gather units
  • Scatter units
  • Switch

Gather units are the sources of bittide links, their calendar contains a (currently repeating) schedule that dictates which frames are send over the link, so for each clock cycle the calendar will present a Index memDepth.

Scatter units are the sinks of bittide links, their calendar contains a similar schedule that dictates where the received frames are written in the scatter memory. So for each clock cycle, the calendar will also present a Index memDepth.

Switches are the link interconnects. A switch receives multiple links and produces multiple links. For each link, the switch's calendar will present a Vec n (Index outLinks) that determines for each outgoing link, from which incoming link it sources the outgoing frame.

Since entries of the calendars are expected to be repeated many times, it utilizes run length encoding to encode a number of repetitions
We need:

  • A way to represent calendars in rust
  • A hardware abstraction layer to interface with the calendar component

The hardware abstraction layer needs to be able to:

  • Write calendars
  • Swap the active and inactive calendar
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