Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Sep 17 23:54
    arcturus140 edited #908
  • Sep 17 16:40
    tgingold commented #85
  • Sep 17 16:32

    tgingold on master

    Add missing file for previous c… (compare)

  • Sep 17 14:14
    1138-4EB commented #85
  • Sep 17 13:59
    arcturus140 commented #85
  • Sep 17 13:31
    arcturus140 commented #85
  • Sep 17 13:18
    1138-4EB commented #85
  • Sep 17 13:17
    1138-4EB commented #85
  • Sep 17 12:53
    arcturus140 commented #85
  • Sep 17 12:37
    arcturus140 commented #85
  • Sep 17 12:05
    1138-4EB commented #85
  • Sep 17 12:05
    1138-4EB commented #85
  • Sep 17 12:00
    arcturus140 commented #85
  • Sep 17 11:28
    Schoggy edited #899
  • Sep 17 11:28
    Schoggy edited #899
  • Sep 17 06:07

    tgingold on master

    synth: minor refactoring about … synth: add synth-flags, add deb… synth: fold addition on constan… and 6 more (compare)

  • Sep 17 03:19
    1138-4EB labeled #566
  • Sep 17 03:18
    1138-4EB edited #566
  • Sep 16 23:05
    tgingold commented #881
  • Sep 16 20:45
    1138-4EB labeled #894
T. Meissner
@tmeissner
Ah, it seems that the reason was I forgot to do xcode-select -s /Applications/Xcode.app/Contents/Developer after installing the new gnat-2019
T. Meissner
@tmeissner
My Wishbone Master & Slave now con be synthesized by GHDL :)
Had to use generics instead of unconstrained ports to get it running
1138-4EB
@1138-4EB
@tmeissner, just to be sure, you added --enable-synth only, so you built GHDL with --enable-libghdl (which is enabled by default), isn't it? I.e. the same you reported here but with a more recent version of GNAT.

When I now want to use the --synth option with ghdl, I only get ghdl:error: unknown option '--synth' for command '-e'

This was an issue until last week or so, when a fix was added. Might it be that you weren't using the latest commit from master at first?

Ah, it seems that the reason was I forgot to do xcode-select -s /Applications/Xcode.app/Contents/Developer after installing the new gnat-2019

I think I did try this in #867, but I will try again. For now, building on macOS with --enable-libghdl fails on Travis CI or GitHub Actions. Therefore, I think this is an issue with how we are (programatically) installing GNAT.

1138-4EB
@1138-4EB

My Wishbone Master & Slave now con be synthesized by GHDL :)

Are you using ghdlsynth-beta + yosys? Or just ghdl --synth?

T. Meissner
@tmeissner
@1138-4EB I only used --enable-synth
I only use ghdl --synth for testing, which files ghdl can compile
1138-4EB
@1138-4EB

@1138-4EB I only used --enable-synth

--enable-libghdl is a default. Unless you use --disable-libghdl explicitly, it is active.

T. Meissner
@tmeissner
Okay. It is possible, that my first tries were with an older version of the GHDL sources
Yeah, it seems so, maybe I ran into the issue you mentioned
1138-4EB
@1138-4EB
Thanks a lot for clarifying!
Matteo Vit
@matteovit
@1138-4EB Apart from that, on GNU/Linux there is a kind of hackish but very powerful feature: GHDL can generate PIE binaries of your design, which can be dynamically loaded as a shared library. This allows co-execution from any foreign tool (Python, C/C++, etc.). this is interesting ... I've done some QEMU + FPGA co-sim in the past
(I can't find how to quote from web interface)
We are working on providing better packages (i.e., PKGBUILD artifacts, rpms, debs, etc.) for Fedora/CentOS/RHEL, Debian/Ubuntu, ArchLinux, MSYS/MINGW... Which flavour do you need? I generally use Ubuntu, CentOS if I have to (i.e. to run diamond)
Apart from that, if you use docker containers, I believe that you don't need to have both GHDL and Lattice Diamond in the same image I need the Diamond files to build the Lattice libraries. Unfortunately I have hit a "brick wall" on this since the Lattice libraries for the MACHXO2 are not complete (some parts are in Verilog)
How do you handle licensing on CI systems? Do you use private CI servers which can access private license servers? so far file based licences (i.e Lattice Diamond, Xilinx Vivado) and I put the licence file in the docker image
1138-4EB
@1138-4EB
> Example quote

My comment to the quote
Matteo Vit
@matteovit
thanks :)
1138-4EB
@1138-4EB

I've done some QEMU + FPGA co-sim in the past

If the target device is ARM, with GHDL you can avoid QEMU. E.g., in Zynq devices, GHDL simulations can be executed. Depending on the complexity, simulation can be slow, tho. It is then possible to execute the software in the target ARM device and the simulation in a workstation.

I need the Diamond files to build the Lattice libraries.

You can share just the directories containing those files.

I have hit a "brick wall" on this since the Lattice libraries for the MACHXO2 are not complete (some parts are in Verilog)

#711

Matteo Vit
@matteovit
I did find #711 and I have reached the same conclusion of hackfin
tried to convert the files in VHDL with icarus, but they use too much Verilog magic
T. Meissner
@tmeissner
@1138-4EB I've tested the ghdl/synth:formal Docker image. In the image, the tool directories under /opt/ are only readable by root. So, if I run the image as non-root user, I can't use the tools as intended
1138-4EB
@1138-4EB
@tmeissner which solution do you suggest? Change the permissions of /opt or install the tools in some other location (/usr/local)?
T. Meissner
@tmeissner
I can live with installing in /opt, a simple change of permissions would be sufficient for me
1138-4EB
@1138-4EB
755 is ok?
T. Meissner
@tmeissner
I think so
The subdirectories of ghdl and the other tools have correct permissions
So, only the 3 directories ghdl, yosys & z3 have to changed to 755
1138-4EB
@1138-4EB
That makes sense. The 'wrong' command is just the mkdir before running tar. The content extracted by tar is correct.
1138-4EB
@1138-4EB

Oh. I'm not using tar anymore. I forgot that. Neither mkdir. The directory is implicitly created by COPY in the dockerfiles:

Nevertheless, I'm in the middle of the migration to GitHub Actions. I will open an issue to track this, and I will fix it in the following days. The fix itself is easy, but I need to trigger several jobs in a chain, and I don't know how to force it semi-automatically yet.

T. Meissner
@tmeissner
okay, fine :)
1138-4EB
@1138-4EB
T. Meissner
@tmeissner
Are you sure, that ghdl-synth is correctly included in the image?
I get an error base: ERROR: No such command: ghdl (type 'help' for a command overview)when running symbiyosys
I can call ghdl in the bash shell, so it is in the path
(as root)
1138-4EB
@1138-4EB
ghdl/synth:formal is based on ghdl/synth:beta (which includes ghdl and yosys). I believe that the latter is tested before being pushed.
therefore, I believe that, should there be an issue, it is specific to ghdl/synth:formal.
can you try using ghdl + yosys in ghdl/synth:formal?
T. Meissner
@tmeissner
It was my fault. I have to run sby with --yosys "yosys -m ghdl"parameters
Now I get a python exception that z3 isn't found :D
now it runs
maybe it would be better to install the solversin /usr/local/bin
with only one solver, iot is okay to add it to the PATH variable, but not when installing many solvers
1138-4EB
@1138-4EB
That's fair. I don't remember now why I avoided installing in /usr/local. I think that I didn't use prefix and DESTDIR properly, so there was a mismatch between hardcoded paths and installation location. I will revisit it to ensure that all the solvers are available in the PATH.
If you have any example script/project in a public repo, I'd be glad to run it after creating each new ghdl/synth:formal image, in order to ensure that whatever we push does not need additional tweaks.
T. Meissner
@tmeissner
Wow
I forgot how much work it is to constrain a design for formal verification ;)