Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 03 20:10

    tgingold on master

    vhdl-sem.adb: fix incorrect che… testsuite/gna: add a test for c… (compare)

  • Dec 03 08:14
    szhou888 commented #1922
  • Dec 03 06:52
    tgingold commented #1923
  • Dec 02 21:35
    Godhart commented #1927
  • Dec 02 21:29
    umarcor commented #1927
  • Dec 02 21:03
    Godhart commented #1927
  • Dec 02 19:29
    umarcor commented #1927
  • Dec 02 19:07
    Godhart opened #1927
  • Dec 02 18:19
    NicoPy commented #1923
  • Dec 01 20:41
    cmarqu commented #506
  • Dec 01 17:28
    tgingold commented #1923
  • Dec 01 16:57
    umarcor commented #1923
  • Dec 01 16:03
    NicoPy commented #1923
  • Dec 01 15:55
    NicoPy commented #1923
  • Nov 30 17:54
    umarcor labeled #1923
  • Nov 30 17:54
    umarcor labeled #1923
  • Nov 30 17:54
    umarcor labeled #1923
  • Nov 30 17:54
    umarcor labeled #1923
  • Nov 30 17:53
    umarcor commented #1923
  • Nov 30 17:52
    umarcor commented #1923
Sammy Lin
@bkzshabbaz
Not sure if attrmap is working, since this isn't an attribute?
Will get a MWE branch up soon.
Vitaly Konovalov
@arnfol

Hi everyone!
I am trying to install ghdl-ls on my WSL Ubuntu 18.04. Everything looks fine, but when I am calling ghdl-ls I got following:

Traceback (most recent call last):
  File "/home/arnfol/anaconda3/bin/ghdl-ls", line 5, in <module>
    from pyGHDL.cli.lsp import main
  File "/home/arnfol/anaconda3/lib/python3.8/site-packages/pyGHDL/cli/lsp.py", line 44, in <module>
    import pyGHDL.libghdl as libghdl
  File "/home/arnfol/anaconda3/lib/python3.8/site-packages/pyGHDL/libghdl/__init__.py", line 149, in <module>
    libghdl = _initialize()
  File "/home/arnfol/anaconda3/lib/python3.8/site-packages/pyGHDL/libghdl/__init__.py", line 131, in _initialize
    _libghdl_path = _get_libghdl_path()
  File "/home/arnfol/anaconda3/lib/python3.8/site-packages/pyGHDL/libghdl/__init__.py", line 126, in _get_libghdl_path
    raise Exception("Cannot find libghdl {}".format(basename))
Exception: Cannot find libghdl libghdl-2_0_0_dev.so

Here is my installation script:

#!/usr/bin/env bash

sudo apt-get install -y libz-dev
sudo apt-get install -y gcc gnat

# get & install GHDL
git clone https://github.com/ghdl/ghdl.git
cd ghdl
mkdir build && cd build
../configure --prefix=/opt/ghdl
make && make install

# install PyGHDL
cd ..
pip3 install .

What am I doing wrong?

found the libghdl in /opt/ghdl/lib/libghdl-2_0_0_dev.so and here is my ghdl --dispconfig output:
command_name: /opt/ghdl/bin/ghdl
command line prefix (--PREFIX): (not set)
environment prefix (GHDL_PREFIX): (not set)
exec prefix (from program name): /opt/ghdl

library prefix: /opt/ghdl/lib/ghdl
library directory: /opt/ghdl/lib/ghdl
default library paths:
 /opt/ghdl/lib/ghdl/ieee/v93/
 /opt/ghdl/lib/ghdl/
Vitaly Konovalov
@arnfol
however I can't understand what's wrong here)
Unai Martinez-Corral
@umarcor
/opt/ghdl/lib is not an standard location for libraries. You need to specify it through some envvar.
Locate the directory where the shared library is installed.
Search order:
  1. GHDL_PREFIX - directory (prefix) of the vhdl libraries.
  2. VUNIT_GHDL_PATH - path of the ghdl binary when using VUnit.
  3. GHDL - name of, or path to the ghdl binary.
  4. Try within libghdl/ Python installation.
  5. Try when running from the build directory.
Vitaly Konovalov
@arnfol
do I need to specify it for the installation process only?
Running GHDL_PREFIX=/opt/ghdl/lib/ ghdl-ls cause the same error
Unai Martinez-Corral
@umarcor
What's the location of libghdl-2_0_0_dev.so?
Did you try GHDL=/opt/ghdl/bin/ghdl ghdl-ls?
I think that GHDL_PREFIX needs to point to a subdir of lib: GHDL_PREFIX=/opt/ghdl/lib/ghdl ghdl-ls
Kaleb Barrett
@ktbarrett
Does GHDL support VHDL-2019 Interfaces? Is there any documentation on what language features are supported/missing in each language revision? Something like this maybe?
I ran into type-generic entities not being supported last night =/ and a coworker is asking about interfaces.
Unai Martinez-Corral
@umarcor
@ktbarret, interfaces are not supported and generic types are supported mostly for the fixed and float packages, so not for entities.
Kaleb Barrett
@ktbarrett
That's unfortunate. Is there a timeline on when features will be implemented? Is there some general plan available for GHDL's future development?
Unai Martinez-Corral
@umarcor
Not at all. All the known info is whatever you can get by watching the repo and inspecting the commits that Tristan pushes. There is no further roadmap other than that. There is https://github.com/ghdl/ghdl/wiki as very general guidelines, but most of the features are added by surprise.
The same applies to bug fixes. If Tristan replies to an issue saying he is looking at it, you might expect a fix in a few hours/days. Otherwise, it can take weeks or months.
I know that Tristan wants to support generics, external names and unconstrained arrays, which are the three most relevant missing VHDL 2008 features. However, those are complex, because the elaboration model is very different from previous revisions. He was sidetracked with synthesis 2-3 years ago, which I believe we are all very thankful about. Lately, there have been several comments about Rust, JIT (deprecating GCC), supporting merging multiple revisions, etc. I believe all of those are small steps towards being able to implement 2008 and 2019 features properly. Nonetheless, that won't be quick.
With regard to interfaces, as valuable as I think they are, I would expect them to be added after the main 2008 features are done. Interfaces are more useful with generic types and unconstrained arrays.
Unai Martinez-Corral
@umarcor
Other than that, as you might already know, these last months we've been talking about proposing some kind of "VHDL Foundation" in order to be able to handle funds/donations and hopefully hire Tristan partially (through an agreement with his current employer). That is the very main priority we all agree on: having an open source implementation of the language which can be used as a reference. Once GHDL supports 2008 and 2019, it might be feasible to implement upcoming LCS after they are approved but before the standard is released. Yet, that's something that no single human can do. We can neither ask nor allow Tristan to do that himself. We need to scale.
The main problem is who is going/willing to manage that. I am "a child" and I don't have the economical stability for doing that. Someone or a group of people needs to step ahead, which "the community" accepts as legit for making good use of whichever resources are gathered in the name of "improving the open source VHDL ecosystem (tooling, tests, libraries, learning/teaching material...)".
Note that the "VHDL Foundation" is just a concept. In practice, it would probably be some group in an existing foundation. However, it needs not to be IEEE, because there would be conflicts of interest.
Unai Martinez-Corral
@umarcor
In the VASG meeting before the last one, I commented this with @JimLewis and @Paebbels. I had been mostly thinking about it from a EU perspective, and discussing it with @LarsAsplund. However, EU funds might be limited to EU citizens. Jim might try to replicate the same in the US. It would be nice if you, @marlonjames, @GlenNicholls and others could somehow coordinate.
For now, I created a private repository in my namespace in GitLab, where I'm gathering all the references and ideas in this regard. It's a pot-pourri yet, and there might be some sensible references, so I don't want to make it public. However, I have no problem for sharing it with you or others who are interested.
Jim Lewis
@JimLewis
@umarcor GHDLs support for generics on packages is good. GHDLs support for unconstrained arrays on ports is getting better. I have everything in OSVVM running.
Unai Martinez-Corral
@umarcor
@JimLewis it is, but we cannot tell at what extent it works. Tristan did not sit down and say "I will analyse all these cases and ensure that they work". Note that Kaleb asked about generics in entities, not packages. I vaguely recall that Tristan didn't find it prioritary.
Jim Lewis
@JimLewis
If I could set the priorities, I would put 2019 interfaces ahead of type generics on entities. I would put 2019 interfaces on a similar priority to external names. Although for existing code, I would say external names is higher priority.
@umarcor I don't find type generics on entities a priority either.
When I have time, I will unwind my work arounds in OSVVM and submit further test cases for unconstrained elements of composites.
Kaleb Barrett
@ktbarrett
Type generic FIFO entities are a huge deal. No more need to manually type convert and pack everything into a logic vector.
Unai Martinez-Corral
@umarcor
Here it is!
So, Tristan didn't make any assessment. He just asked about it.
Jim Lewis
@JimLewis
@ktbarrett For RTL? OK
Unai Martinez-Corral
@umarcor

generic type for entities are not yet supported. Is it something that is really needed ? (just to evaluate the priority).

To support generic types on entities, the elaboration mechanism has to be reworked. I think this is the next big project in ghdl, after synthesis.

vblanco20-1
@vblanco20-1
if GHDL wasnt coded in Ada i would try to improve it myself
vhdl 2019 interfaces are a big deal
right now every module i have just has 1 input + 1 output record, but interfaces make it so much cleaner
Kaleb Barrett
@ktbarrett
@vblanco20-1 That's my issue too. I don't know Ada, this is the only project I know written in Ada so I would be learning it solely to contribute here. I might get there one day, but there is plenty of lower cost-of-entry work I could do :wink:. A coworker, @andrewandrepowell might be looking into trying to improve GHDL for generic entities and eventually interfaces. We are a VHDL house and having a quality OS VHDL tool would be of great use to us, but GHDL is missing some key features to get our main reuse library compiling.
vblanco20-1
@vblanco20-1
ive thought of making my own HDL on top of vhdl
something kinda like vhdl (design wise) but far less stupid. and just compiles to vhdl transparently
Unai Martinez-Corral
@umarcor
@vblanco20-1, @ktbarrett, can you writte Rust? Would you be more motivated for learning Rust if you could contribute to GHDL using that language?
vblanco20-1
@vblanco20-1
i can write rust
my small vhdl tools have been in it
mostly for the hell of it, no real good reason. The language i know best is actually cpp
rust is great for this sort of work,because its string handling is the best of almost any language
the standard library of rust has tons of string related funcionality, and everything generally works through string-views, so it doesnt perform allocations and runs very fast
Unai Martinez-Corral
@umarcor
Note that there are tasks related to Ada, C, C++, Python, TypeScript, Shell, HTML/CSS/JS... in GHDL as a project. Hence, if what you want is to contribute in a language, regardless of the area, let us know. https://github.com/ghdl/ghdl/wiki
OTOH, if you want to implement/enhance a very specific area/feature of the tool/project, then you need to learn/use the language.
However, there is a rust branch in the repo. We already setup CI enhancements, for CI to work on all platforms.
Moreover, I strongly recommend you add @xiretza:xiretza.xyz's fork and look at his rust branch.
vblanco20-1
@vblanco20-1
thats hell of a lot of languages for the project
Unai Martinez-Corral
@umarcor

thats hell of a lot of languages for the project

It's a hell of a project!

vblanco20-1
@vblanco20-1
why the html?