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

Verilator 5 Released #57

Open
wsnyder opened this issue Oct 29, 2022 · 0 comments
Open

Verilator 5 Released #57

wsnyder opened this issue Oct 29, 2022 · 0 comments

Comments

@wsnyder
Copy link
Member

wsnyder commented Oct 29, 2022

Verilator 5.002 2022-10-29

Major:

  • This is a major new release.
  • Require C++20 for the new --timing features. Upgrading to a C++20 or newer compiler is strongly recommended.
  • Support the Active and NBA scheduling regions as defined by the SystemVerilog standard (IEEE 1800-2017 chapter 4). This means all generated clocks are now simulated correctly (Redesign of scheduling (fixing generated clocks) verilator#3278, IEEE compliant static scheduler verilator#3384). [Geza Lore, Shunyao CAD]
  • Support timing controls (delays, event controls in any location, wait statements) and forks. [Krzysztof Bieganski, Antmicro Ltd]
    This may require adding --timing or --no-timing. See docs for details.
  • Introduce a new combinational logic optimizer (DFG), that can yield significant performance improvements on some designs. [Geza Lore, Shunyao CAD]
  • Add --binary option as alias of --main --exe --build --timing (Support option for simpler building of executables verilator#3625).
    For designs where C++ was only used to make a simple no-I/O testbench, we recommend abandoning that C++, and instead letting Verilator build it with --binary (or --main).

Minor:

joebonrichie pushed a commit to solus-packages/verilator that referenced this issue Aug 15, 2023
Summary:
**Summarized Changelog**

- Require C++20 for the new `--timing` features. Upgrading to a C++20 or newer compiler is strongly recommended.
- Support the Active and NBA scheduling regions as defined by the SystemVerilog standard (IEEE 1800-2017 chapter 4). This means all generated clocks are now simulated correctly.
- Support timing controls (delays, event controls in any location, wait statements) and forks. This may require adding `--timing` or `--no-timing`. See docs for details.
- Introduce a new combinational logic optimizer (DFG), that can yield significant performance improvements on some designs.
- Add `--binary` option as alias of `--main` `--exe` `--build` `--timing`.
- For designs where C++ was only used to make a simple no-I/O testbench, we recommend abandoning that C++, and instead letting Verilator build it with `--binary` (`or --main`).

Full changelog [here](verilator/verilator-announce#57)

Test Plan: - Run example c++ execution

Reviewers: #triage_team, algent

Reviewed By: #triage_team, algent

Subscribers: algent

Differential Revision: https://dev.getsol.us/D13716
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

1 participant