Skip to content
forked from intel/rohd-hcl

A hardware component library developed with ROHD.

License

Notifications You must be signed in to change notification settings

mrmax99/rohd-hcl

 
 

Repository files navigation

Open in GitHub Codespaces

Tests API Docs Chat License Contributor Covenant

ROHD Hardware Component Libary

A hardware component library developed with ROHD. This library aims to collect a set of reusable, configurable components that can be leveraged in other designs. These components are also intended as good examples of ROHD hardware implementations.

This project is a work in progress! Initial components are primarily focused on correctness, and there is room for optimization from there. Please feel free to contribute or provide feedback. Check out CONTRIBUTING for details on how to contribute.

This project is not intended to be the only place for reusable hardware components developed in ROHD. It's not even intended to be the only library. Contributions are welcomed to this library, but developers are also welcome to build independent packages or libraries, even if they may overlap.

Guidelines for Components

  • All components should be Modules so that they are convertible to SystemVerilog
  • Components should be general and easily reusable
  • Components should be as configurable as may be useful
  • Components must be extensively tested
  • Components must have excellent documentation and examples
  • The first component in a category should be the simplest
  • Focus on breadth of component types before depth in one type
  • Add extensions to other classes to make component usage easier, when appropriate

Component List

Below is a list of components either already or planning to be implemented.

Marking Status
No link Idea phase / included in parent link
Link (OPEN) An issue is opened for discussion
Link (WIP) An issue is actively being developed
Link to API Implemented with API documentation
  • Encoders
    • 1-hot to Binary
    • Binary to 1-hot
    • Gray to Binary
    • Binary to Gray
    • Priority
  • Arbiters
  • FIFO
    • Synchronous
    • Asynchronous
    • Bubble Generating
  • Find
    • Find N'th bit=X
    • Find N'th bit=X from end
    • Min
    • Max
  • Count
    • Count bit=X
  • Sort (WIP)
  • Arithmetic
  • Rotate
    • Dynamic and fixed amounts
    • Left and right
    • Includes extensions on Logic and LogicValue
  • Counter
  • LFSR (WIP)
  • Error checking
    • ECC
    • CRC
    • Parity
  • Data flow
    • Ready/Valid
    • Connect/Disconnect (e.g. SFI)
    • Widening
    • Narrowing
    • Crediting
    • NoC's
      • Coherent
      • Non-Coherent
  • Memory
    • Register Files
      • Flop-based
      • Latch-based
    • Replacement Policies
      • LRU

2023 March 30
Author: Max Korbel <[email protected]>

Copyright (C) 2023 Intel Corporation
SPDX-License-Identifier: BSD-3-Clause

About

A hardware component library developed with ROHD.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 87.6%
  • Shell 12.4%