llvm / llvm/circt

[Syunth] Enhance 3-input logic gate

Open
#10,404 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

Look at https://si2.epfl.ch/~demichel/publications/archive/2021/3Input.pdf probably the following list would be benefitial to have.
We currently have `xor`, `and` and `dot`.
```
synth.onehot (n-input)
synth.mux_inv (3-input)
synth.majority (2*n+1 input) (note that this is re-introduction of synth.mig.maj_inv but this time we rather consider majority as one of 3-input logic gates, not a primary target of homogeneous logic representation
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the referenced 3-input logic-gate paper and the current implementations of synth.xor, synth.and, and synth.dot. Determine how synth.onehot, synth.mux_inv, and synth.majority should fit the existing Syunth design, including their input arities. Done means the requested operations are implemented with appropriate coverage for n-input, 3-input, and odd-input cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.