[ImportVerilog] Support Delay control
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 524
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
The [chipsalliance tests for delay control](https://chipsalliance.github.io/sv-tests-results/?v=circt_verilog+9.4.1+always) currently fail. For instance:
```systemverilog
module always_tb ();
logic a = 0;
always #5 a = ~a;
endmodule
```
It should be possible to support SystemVerilog delay controls by lowering `slang::ast::DelayControl` to `llhd::WaitOp` right?
Edit: Realised that it would have to go through Moore dialect first. Not sure what to use there; is it currently doable in Moore?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the chipsalliance delay-control failures, including the shown always-block example, and inspect the ImportVerilog path for slang::ast::DelayControl. Determine how the Moore dialect should represent the control before lowering it to llhd::WaitOp. Done means the relevant chipsalliance tests pass.
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
- 30/100