Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 06:20
    LarsAsplund commented #878
  • 06:19
    LarsAsplund commented #878
  • Dec 01 20:44
    petersencurt commented #878
  • Dec 01 15:39
    hcommin commented #877
  • Dec 01 14:54
    creiter64 opened #879
  • Dec 01 14:26
    LarsAsplund commented #877
  • Dec 01 13:45
    LarsAsplund commented #877
  • Dec 01 10:13
    hcommin commented #877
  • Dec 01 08:13
    eschmidscs commented #877
  • Dec 01 08:11
    tasgomes commented #877
  • Dec 01 08:03
    tasgomes commented #877
  • Dec 01 07:09
    eschmidscs commented #877
  • Dec 01 06:19
    LarsAsplund commented #878
  • Dec 01 01:00
    petersencurt opened #878
  • Nov 30 22:33
    LarsAsplund commented #877
  • Nov 25 12:43
    eine milestoned #839
  • Nov 25 12:43
    eine milestoned #839
  • Nov 25 07:38
    tasgomes commented #877
  • Nov 24 16:02
    LarsAsplund commented #877
  • Nov 24 15:54
    LarsAsplund labeled #877
NiJen
@NiJen
+1
Lars Asplund
@LarsAsplund
@NiJen @qarlosalberto @tmeissner Brilliant, now we have 7 votes. I think 25 would be sufficient to show great commercial interest
Tiago Gomes
@tasgomes
+1
GlenNicholls
@GlenNicholls
@LarsAsplund I was able to vote this morning. I had problems last night as well
GlenNicholls
@GlenNicholls
@rafaelnp Which version of GHDL are you using? Do you have the bin/ directory in your path? Is ieee defined under <ghdl install folder>/lib/ghdl/ieee? It looks like your install works correctly to me since it doesn't complain about calling ghdl. Not sure if this helps, but I also add vu.set_compile_option('ghdl.a_flags', ['--ieee=synopsys', '-frelaxed-rules']) to my run.py
Rafael Pereira
@rafaelnp

@GlenNicholls Thanks for your reply. I added the line you suggested, no difference.
Listing the ghdl package files, I found:

/usr/bin/ghdl
...
/usr/lib/ghdl/ieee/v08/ieee-obj08.cf
/usr/lib/ghdl/ieee/v87/ieee-obj87.cf
/usr/lib/ghdl/ieee/v93/ieee-obj93.cf
...
/usr/lib/ghdl/src/openieee/math_real-body.vhdl
/usr/lib/ghdl/src/openieee/math_real.vhdl
/usr/lib/ghdl/src/openieee/upf-body.vhdl
/usr/lib/ghdl/src/openieee/upf.vhdl
/usr/lib/ghdl/src/openieee/v08/std_logic_1164-body.vhdl
/usr/lib/ghdl/src/openieee/v08/std_logic_1164.vhdl
/usr/lib/ghdl/src/openieee/v87/numeric_bit-body.vhdl
/usr/lib/ghdl/src/openieee/v87/numeric_bit.vhdl
/usr/lib/ghdl/src/openieee/v87/numeric_std-body.vhdl
/usr/lib/ghdl/src/openieee/v87/numeric_std.vhdl
/usr/lib/ghdl/src/openieee/v87/std_logic_1164-body.vhdl
/usr/lib/ghdl/src/openieee/v87/std_logic_1164.vhdl
/usr/lib/ghdl/src/openieee/v93/numeric_bit-body.vhdl
/usr/lib/ghdl/src/openieee/v93/numeric_bit.vhdl
/usr/lib/ghdl/src/openieee/v93/numeric_std-body.vhdl
/usr/lib/ghdl/src/openieee/v93/numeric_std.vhdl
/usr/lib/ghdl/src/openieee/v93/std_logic_1164-body.vhdl
/usr/lib/ghdl/src/openieee/v93/std_logic_1164.vhdl
/usr/lib/ghdl/synopsys/v87/ieee-obj87.cf
/usr/lib/ghdl/synopsys/v93/ieee-obj93.cf

The Ghdl version is 0.37 and VUnit is 4.4.0. My $PATH is /usr/bin:/usr/games:/home/dev/bin:/usr/local/sbin:/usr/local/bin:/usr/lib/jvm/default/bin:/home/dev/.local/bin. Is there maybe an undocumented configuration or dependency?

GlenNicholls
@GlenNicholls

@rafaelnp Hmmm, so in by GHDL install directory under lib/ghdl/ieee/v08, for example, I see .o files for all the compiled VHDL files, not a single .cf. Maybe when GHDL is compiled on linux it is different, but I use Windows.

One problem I see with your path is the GHDL exe is not there. My path has C:\ghdl\ghdl-0.36-mingw64-llvm\bin

eine
@eine
@rafaelnp it seems that you installed the GPL variant of GHDL, which does not include regular IEEE libs, but a subset named openieee.
You should either build/install the non-gpl version, or alternatively download IEEE libs yourself. You can retrieve them from IEEE GitLab repo, or from https://github.com/ghdl/ghdl/tree/master/libraries.
GlenNicholls
@GlenNicholls
@eine for my understanding, what is the differrence between the two versions of GHDL? Why does only the non-GPL variant of GHDL include the IEEE libs?
eine
@eine
For clarification: GHDL itself is always GPL, but IEEE libs are not. Until recently, IEEE libs were not open source. Now, they are available under Apache license.
@GlenNicholls, some years ago GHDL was distributed as a Debian package, but because it included non-free IEEE libs it was removed. Then, Tristan wrote openieee to allow a roughly functional package of GHDL + libs to be distributed through Debian repos. Now that IEEE libs are open source, openieee should not be required. Hence, I wonder:
  • How did @rafaelnp install that variant of GHDL?
  • Why was the GPL flavoured build of GHDL not removed from the releases/CI during these last months?
Regarding the second question, I'll ping @tgingold.
eine
@eine
I think it is because <2008 versions of the standard. But I'm not sure.
Rafael Pereira
@rafaelnp
@eine Using pacman -S ghdl-mcode on Arch Linux and apt install ghdlon Ubuntu 19.10.
eine
@eine

@eine Using pacman -S ghdl-mcode on Arch Linux and apt install ghdlon Ubuntu 19.10.

And you get the same error when using VUnit in any of them?

GlenNicholls
@GlenNicholls

some years ago GHDL was distributed as a Debian package, but because it included non-free IEEE libs it was removed. Then, Tristan wrote openieee to allow a roughly functional package of GHDL + libs to be distributed through Debian repos. Now that IEEE libs are open source, openieee should not be required.

Ahhh okay, I see. Probably explains why I had so many difficulties with GHDL a few years ago when I first tried to use it. Thanks for the history!

Rafael Pereira
@rafaelnp
@eine My first message contained the error on Arch Linux, the one below is from Ubuntu, similar, but not the same:
=== Command output: ===
/usr/bin/ghdl-mcode:warning: library ieee does not exists for v08
/usr/local/lib/python3.7/dist-packages/vunit/vhdl/string_ops/src/string_ops.vhd:9:9: cannot find resource library "ieee"
/usr/local/lib/python3.7/dist-packages/vunit/vhdl/string_ops/src/string_ops.vhd:10:10: unit "std_logic_1164" not found in library "ieee"
Compile failed
eine
@eine
@rafaelnp are you trying to execute one of VUnit's examples? Or your own?
Bradley Harden
@bradleyharden
A colleague of mine is trying to use --export-json to get started with rust_hdl. I have done neither before, so I'm having trouble helping him. VUnit is choking on the vendor libraries. Their location is called out in the modelsim.ini file, and there are no complaints when simulating the design. But when he tried to --export-json, VUnit says it can't find the libraries.
Any thoughts? Is this a possible bug? Or is he not doing something right?
Wait, maybe that makes sense. There are no source files for the pre-compiled vendor libs, so it doesn't make sense for them to be included, right?
Rafael Pereira
@rafaelnp
@eine the examples from the user_guide.
@eine @GlenNicholls I was able to find the root cause, as pointed by @eine. I downloaded the ghdl source code, compiled and installed and added it to the $PATH, and now it works. I compared both package contents (Arch and Ubuntu) to the manually installed files, and there are binary (*.o) and VHDL files missing. Thanks for your help. :)
GlenNicholls
@GlenNicholls
@all does anyone have any public resources for combining multiple verification components in a single BFM? I have a large design I'm currently verifying and the testbench is getting pretty ugly with all of VC's and message passing. I've got AXI master/slaves, AXI stream, UART, AXI GPIO, and memory and I would like to package this in a single BFM to make it easier to maintain. Unfortunately, the component I'm working with will be used in an even larger design so I'm trying to find a reasonable way to put this in a single BFM such that it can be directly instantiated later without copying/pasting so much code. I checked tsfpga and it doesn't look like they have anything like this and searching GitHub isn't yielding anything.
NanooooK
@NanooooK
Is there a way from a VHDL testbench to retrieve the information provided by Python add_config? I'm looking to retrieve the name so I can pass it to the file_handler parameters. I've checked the documentation but the only information that I've found that could be extracted from the runner are output_path and tb_path
image.png
Lars Asplund
@LarsAsplund
@NanooooK No, you would have to input the configuration name as an extra generic.
NanooooK
@NanooooK
Ok, I'll do that then. Thanks
Yatekii
@Yatekii
@LarsAsplund well unfortunatley I think you can forget this ...
they had 12 years time to implement 2008 and it still is not
eine
@eine
@Yatekii, funnily enough, the features that are being requested are VHDL 1993 features, NOT VHDL 2008. They had 27 years to do it..
Still, praying is free (as in free beer).
T. Meissner
@tmeissner
Hope dies last šŸ™‚
But Iā€™m very glad to have Questa at work.
eine
@eine
In fact, I think I have never used Vivado's simulator. I used ISE's. But I'm also glad to have both GHDL and Questa (with some setup annoyances).
Yatekii
@Yatekii
@eine it is 100% paid as in you pay a premium for the cores.
do you think they work on the tools for free? :D
eine
@eine
@Yatekii, I'm not sure I understand what you mean.
Yatekii
@Yatekii
so they have to pay their engineers for developing vivado etc.
how do you think they are paid?
with revenue from sold chips
and who pays for the chips? yes, you, the vivado user
it is 100% not free
eine
@eine
Oh. Sure! The point is that they do NOT pay their engineers for developing VHDL support, because they believe the revenue is not worth.
Yatekii
@Yatekii
yeah the problem is that afaik they are the market leader by large margin
eine
@eine
The point is whether that's true or just a very subjective and interested analysis of the market.
Yatekii
@Yatekii
at least in perf/architecture, dunno in revenue
so they don't have to improve