diff --git a/NEWS.md b/NEWS.md index ee35167c53..5a26725b60 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,17 @@ -**1.0-dev** (XXXX-XX-XX) +**2.0-dev** (XXXX-XX-XX) + +**1.0** (2021-02-02) + +- Plugin for Yosys moved from [tgingold/ghdlsynth-beta](https://github.com/tgingold/ghdlsynth-beta) to [ghdl/ghdl-yosys-plugin](https://github.com/ghdl/ghdl-yosys-plugin). +- Python bindings overhauled and renamed to `pyGHDL`. Three modules are included: `libghdl`, `lsp` and `dom`. +- The utility scripts in the codebase moved into subdir `scripts`: CI, binding generation, vendors, etc. +- Repository [ghdl/ghdl-cosim](https://github.com/ghdl/ghdl-cosim) created. It contains documentation and code examples related to VHPIDIRECT, VPI and SystemC. +- Repository [ghdl/extended-tests](https://github.com/ghdl/extended-tests) created for testing `vendors` build scripts. +- GitHub Action [ghdl/setup-ghdl-ci](https://github.com/ghdl/setup-ghdl-ci) created, to allow easy installation of nightly GHDL assets in GitHub Actions workflows. +- A [wiki](https://github.com/ghdl/ghdl/wiki) was created. The roadmap and ideas for documentation and internship programs were moved there. +- Logo updated (org, ghdl/ghdl, ghdl/docker and ghdl/ghdl-cosim). +- Assets not added to releases or pre-releases anymore. Users should use package managers or nightly assets (updated after each successful CI run of branch `master`): [nightly](https://github.com/ghdl/ghdl/releases/tag/nightly). +- Main documentation site(s) moved to [ghdl.github.io/ghdl](https://ghdl.github.io/ghdl/) and [ghdl.github.io/ghdl-cosim](https://ghdl.github.io/ghdl-cosim/). **0.37** (2020-02-28) diff --git a/doc/about.rst b/doc/about.rst index b91dd1827c..fea576f213 100644 --- a/doc/about.rst +++ b/doc/about.rst @@ -12,64 +12,79 @@ About What is `VHDL`? =============== -:wikipedia:`VHDL ` is an acronym for Very High Speed Integrated Circuit (:wikipedia:`VHSIC `) Hardware Description -Language (:wikipedia:`HDL `), which is a programming language used to describe a logic circuit by function, data flow -behavior, or structure. - -Although VHDL was not designed for writing general purpose programs, VHDL *is* a programming language, and you can write any -algorithm with it. If you are able to write programs, you will find in VHDL features similar to those found in procedural -languages such as `C`, `Python`, or `Ada`. Indeed, VHDL derives most of its syntax and semantics from Ada. Knowing `Ada` is -an advantage for learning VHDL (it is an advantage in general as well). - -However, VHDL was not designed as a general purpose language but as an `HDL`. As the name implies, VHDL aims at modeling or -documenting electronics systems. Due to the nature of hardware components which are always running, VHDL is a highly -concurrent language, built upon an event-based timing model. - -Like a program written in any other language, a VHDL program can be executed. Since VHDL is used to model designs, the term -:dfn:`simulation` is often used instead of `execution`, with the same meaning. At the same time, like a design written in -another `HDL`, a set of VHDL sources can be transformed with a :dfn:`synthesis tool` into a netlist, that is, a detailed -gate-level implementation. - -The development of VHDL started in 1983 and the standard is named `IEEE `__ `1076`. Five revisions -exist: `1987 `__, `1993 `__, -`2002 `__, `2008 `__ and -`2019 `__. The standardization is handled by the VHDL Analysis and -Standardization Group (`VASG/P1076 `__). +:wikipedia:`VHDL ` is an acronym for Very High Speed Integrated Circuit (:wikipedia:`VHSIC `) Hardware +Description Language (:wikipedia:`HDL `), which is a programming language used to describe a logic circuit by +function, data flow behavior, or structure. + +Although VHDL was not designed for writing general purpose programs, VHDL *is* a programming language, and you can write +any algorithm with it. +If you are able to write programs, you will find in VHDL features similar to those found in procedural languages such as +`C`, `Python`, or `Ada`. +Indeed, VHDL derives most of its syntax and semantics from Ada. Knowing `Ada` is an advantage for learning VHDL (it is +an advantage in general as well). + +However, VHDL was not designed as a general purpose language but as an `HDL`. +As the name implies, VHDL aims at modeling or documenting electronics systems. +Due to the nature of hardware components which are always running, VHDL is a highly concurrent language, built upon an +event-based timing model. + +Like a program written in any other language, a VHDL program can be executed. +Since VHDL is used to model designs, the term :dfn:`simulation` is often used instead of `execution`, with the same +meaning. +At the same time, like a design written in another `HDL`, a set of VHDL sources can be transformed with a +:dfn:`synthesis tool` into a netlist, that is, a detailed gate-level implementation. + +The development of VHDL started in 1983 and the standard is named `IEEE `__ `1076`. +Five revisions exist: +`1987 `__, +`1993 `__, +`2002 `__, +`2008 `__ and +`2019 `__. +The standardization is handled by the VHDL Analysis and Standardization Group (`VASG/P1076 `__). .. _INTRO:GHDL: What is GHDL? ============= -`GHDL` is a shorthand for `G Hardware Design Language` (currently, `G` has no meaning). It is a VHDL analyzer, compiler, -simulator and (experimental) synthesizer that can process (nearly) any VHDL design. +`GHDL` is a shorthand for `G Hardware Design Language` (currently, `G` has no meaning). +It is a VHDL analyzer, compiler, simulator and (experimental) synthesizer that can process (nearly) any VHDL design. .. NOTE:: - For almost 20 years, GHDL was *not* a synthesis tool: you could not create a netlist. Hence, most of the content in this - documentation corresponds to the usage of GHDL as a compiler/simulator. See :ref:`USING:Synthesis` for further details - regarding synthesis. + For almost 20 years, GHDL was *not* a synthesis tool: you could not create a netlist. + Hence, most of the content in this documentation corresponds to the usage of GHDL as a compiler/simulator. + See :ref:`USING:Synthesis` for further details regarding synthesis. Unlike some other simulators, GHDL is a compiler: it directly translates a VHDL file to machine code, without using an -intermediary language such as `C` or `C++`. Therefore, the compiled code should be faster and the analysis time should be -shorter than with a compiler using an intermediary language. +intermediary language such as `C` or `C++`. +Therefore, the compiled code should be faster and the analysis time should be shorter than with a compiler using an +intermediary language. GHDL can use multiple back-ends, i.e. code generators, (`GCC `__, `LLVM `__ or -:wikipedia:`x86 `/:wikipedia:`i386 ` only, a built-in one named *mcode*) and runs on :wikipedia:`GNU/Linux `, -:wikipedia:`Windows ` |trade| and :wikipedia:`macOS ` |trade|; on x86, x86_64, armv6/armv7/aarch32/aarch64, -ppc64, etc. - -The current version of GHDL does not contain any built-in graphical viewer: you cannot see signal waves. You can still check -the behavior of your design with a test bench. Moreover, `GHW `__, -:wikipedia:`VCD ` or `FST` files can be produced, which can be viewed with a :wikipedia:`waveform viewer `, +:wikipedia:`x86 `/:wikipedia:`i386 ` only, a built-in one named *mcode*) and runs on +:wikipedia:`GNU/Linux `, :wikipedia:`Windows ` |trade| and +:wikipedia:`macOS ` |trade|; on x86, x86_64, armv6/armv7/aarch32/aarch64, ppc64, etc. + +The current version of GHDL does not contain any built-in graphical viewer: you cannot see signal waves. +You can still check the behavior of your design with a test bench. +Moreover, :ref:`GHW`, :wikipedia:`VCD ` or `FST` files can be produced, which can be viewed with a +:wikipedia:`waveform viewer `, such as `GtkWave `__. -GHDL aims at implementing VHDL as defined by `IEEE 1076 `__. It supports the -`1987 `__, `1993 `__ and -`2002 `__ revisions and, partially, `2008 `__. +GHDL aims at implementing VHDL as defined by `IEEE 1076 `__. +It supports the +`1987 `__, +`1993 `__ and +`2002 `__ revisions and, partially, +`2008 `__. :wikipedia:`Property Specification Language (PSL) ` is also partially supported. -Several third party projects are supported: `Yosys `__ (through the `ghdl-yosys-plugin `__) -`cocotb `__ (through the `VPI interface `__), +Several third party projects are supported: +`Yosys `__ +(through the `ghdl-yosys-plugin `__) +`cocotb `__ +(through the `VPI interface `__), `VUnit `__, `OSVVM `__, ... .. _INTRO:WHO: diff --git a/doc/development/CodingStyle.rst b/doc/development/CodingStyle.rst index 02870c88cc..3c265da8ba 100644 --- a/doc/development/CodingStyle.rst +++ b/doc/development/CodingStyle.rst @@ -227,7 +227,7 @@ Documentation configuration * Create "parts" (LaTeX terminology / chapter headlines) in navigation bar. [:ghdlsharp:`200`] * Intersphinx files [:ghdlsharp:`200`] - * To decompress the inventory file: `curl -s http://ghdl.readthedocs.io/en/latest/objects.inv | tail -n+5 | openssl zlib -d`. From `how-to-uncompress-zlib-data-in-unix `_. + * To decompress the inventory file: ``curl -s http://ghdl.github.io/ghdl/objects.inv | tail -n+5 | openssl zlib -d``. From `how-to-uncompress-zlib-data-in-unix `_. * External ref and link to section:: :ref:`GHDL Roadmap ` diff --git a/doc/development/building/GCC.rst b/doc/development/building/GCC.rst index 4f45eaf312..523d25e257 100644 --- a/doc/development/building/GCC.rst +++ b/doc/development/building/GCC.rst @@ -9,7 +9,7 @@ GCC backend * GCC (Gnu Compiler Collection) * GNAT (Ada compiler for GCC) -* GCC source files. Download and untar the sources of version 4.9.x, 5.x, 6.x, 7.x, 8.x, 9.x or 10.x (`GCC mirror sites `__). .. HINT :: There are some dependencies for building GCC (``gmp``, ``mpfr`` and ``mpc``). If you have not installed them on your system, you can either build them manually or use the ``download_prerequisites`` script provided in the GCC source tree (recommended): ``cd /path/to/gcc/source/dir && ./contrib/download_prerequisites``. diff --git a/doc/index.rst b/doc/index.rst index 9b82d52add..e114f39659 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -29,6 +29,9 @@ GHDL News **** + 02.02.2021 - `GHDL v1.0 was released `__ + ============================================================================================ + 31.01.2021 - GHDL v1.0.0rc1 was tagged ====================================== @@ -102,6 +105,8 @@ GHDL .. only:: latex + .. rubric:: 02.02.2021 - GHDL v1.0 was released. + .. rubric:: 31.01.2021 - GHDL v1.0.0rc1 was tagged. .. rubric:: 21.05.2020 - Nightly build assets available.