[HW] Introduce high level array operations
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
Currently there is no high-level abstraction for performing vector/comprehensive operations over arrays. Potentially it would be beneficial to capture array structure in terms of verilog quality or simulation speed up(lowing into SIMD operations). Perhaps it's necessary to introduce a new dialect, but here is the list of operations in my mind:
* comprehensive ops: hw.array.map, hw.array.reduce, hw.array.fold
* vector operations: hw.arrray.{xor, or, and, add, sub, ...}.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by determining how CIRCT represents arrays and whether these operations belong in a new dialect or an existing one. Use the proposed map, reduce, fold, and vector operations as the scope to resolve; the work is done when the design and operation set are specified with appropriate verification and coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100