SystemVerilog is an HDL that is a superset of Verilog with additional features. This includes object-oriented features, the ability to specify testbenches, and more flexible and expressive syntax. It is to Verilog what C++ is to C.
Language features
- Hierarchical design
- always block (
always_comb,always_ff) - case statement
- Non-blocking assignment
- Universal Verification Methodology
Development environment
An opinionated set-up:
- Text editor — Visual Studio Code with extension Verilog/SystemVerilog Tools
- Testbenches and simulator — cocotb with Questa (possibly iverilog too)
- Formatter and language server — Verible
- Linter — Slang
Quick install
choco install vscode
choco install iverilogResources
- General language resources
- IEEE Standard 1800-2017, which is the SystemVerilog specification
- LowRISC style guide
- SystemVerilog Tutorial by ASIC World
- Digital verification
- SystemVerilog for Design, by Stuart Sutherland, Simon Davidmann, and Peter Flake