Closed dalance closed 4 months ago
Looks good. There are a few grammar mistakes which will be easy to fix in a README.md file, but a bit of a nuisance to fix in an issues thread.
https://github.com/TerosTechnology/vscode-terosHDL
Also, I think it may be useful to look at TerosHDL to both distinguish Veryl from it, and also perhaps incorporate some if its ideas.
Looks good. There are a few grammar mistakes which will be easy to fix in a README.md file, but a bit of a nuisance to fix in an issues thread.
Thanks! I think grammar mistakes can be fixed after update of documents. I'll check TerosHDL later.
I've updated the overview of https://veryl-lang.org based on the discussion in #575.
The new website at https://veryl-lang.org looks very good.
I think it is important that Veryl does not not have a "pipeline" command or directive. Newer HDL's like Spade (www.spade-lang.org) have this feature, which to me starts to introduce issues in the generated code although it is potentially a nice feature.
I think it's very worthwhile noting that that Veryl generates human readable and well organized SystemVerilog code, not an obfuscated version of SystemVerilog that many other HDL's generate.
It may be worthwhile to make a comparison between Veryl and other languages like Amaranth, Silice, Chisel, and Spade.
Perhaps a motto of Veryl is "evolved SystemVerilog using modern software tools" . . . .
I'm planning to create a page listing the syntactic advantages to SystemVerilog. I've listed some points for now, but please let me know if there are any other aspects I should include:
I've added a page to the book.
The page added to the book is very good and helpful. The page systematically highlights the advantages of Veryl.
Veryl's integrated tooling and clean design with rust syntax are the compelling reasons why I am using Veryl.
The current documentation is not sufficiant to describe the diffrences from the existing works. So I think it should be replaced. This is a candidate for the description in README.md and the top page of https://doc.veryl-lang.org/book. Please comment if there are any improvements.
Gradual evolution in RTL development by Veryl
Veryl is a hardware description language designed as "SystemVerilog alternative". Especially we focus on gradually improving the existing Verilog/SystemVerilog codebase.
"Gradual" means that a part of the existing codebase can be replaced to Veryl gradually. Necessarily Veryl has high interoperability to SystemVerilog. Veryl assures the replaced codebase is synthesizable and no-mismatch between simulation and synthesis, and provides real-time editing support through editor plugins. Additionally the libraries of Veryl can be added as dependencies through the integrated build tool.
In the following, we see "what is provided by Veryl" and "what is not provided by Veryl" to make differences from SystemVerilog and the existing Alt-HDLs clear.
What is provided by Veryl?
Sophisticated syntax
The syntax of Veryl is extracted from synthesizable description of SystemVerilog, and syntax improvements achieved by modern programming languages like Rust are added. Deprecated descriptions of SystemVerilog are already removed from the syntax.
The above is comparison between Veryl and SystemVerilog.
///
are added, Veryl compiler can generate documentation automatically._
prefix can make unused variable clear, and no-prefix unused variables are warned by Veryl compiler.if_reset
syntax can abstract reset polarity and synchronicity, Veryl compiler can select them at code generation.Real-time feedback
Veryl compiler provides real-time feedback of syntax error and lint error through editor plugins. The problematic descriptions can be fixed instantlly without simulation or synthesis process which consume time. And auto-formatting feature enables to keep a consistent format through whole codebase.
Interoperability to SystemVerilog
Veryl has the almost same semantics as SystemVerilog, and Veryl compiler generates human-readable SystemVerilog source code. So it can be replaced a part of the existing SystemVerilog codebase, or cooperated to them.
What is not provided by Veryl?
Short-handed code
Some existing alt-HDLs seems to focus on shorting dramatically the existing Verilog/SystemVerilog source code, but Veryl doesn't adopt the way. Generating broad Verilog/SystemVerilog code from the shorten code causes difficulty of code debug and adjustment. Instead of it, Veryl slightly shorten the redundant syntax of SystemVerilog with keeping explicity of the meaning.
Simulation description
Simulation description has widely different domain from synthesizable RTL development. Not just simple delay syntax but also complicated assertion and hierarchical verification framework are required. So Veryl doesn't support them directly, and support verification through integration of the testbenches which are written by other languages like SystemVerilog and Python.