Giter Club home page Giter Club logo

fpga-binutils's People

Contributors

sylefeb avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fpga-binutils's Issues

MSYS2 group mingw-w64-*-eda and hdl/MINGW-packages

Hi @sylefeb!

Are you aware of the mingw-w64-*-eda tool groups in upstream MSYS2 repositories? That one is available for all environments (MINGW32, MINGW64, CLANG32, CLANG64 and UCRT64). See the list of tools currently available on MINGW64: https://packages.msys2.org/group/mingw-w64-x86_64-eda

# pacman -S mingw-w64-x86_64-eda
:: There are 22 members in group mingw-w64-x86_64-eda:
:: Repository mingw64
   1) mingw-w64-x86_64-dfu-util  2) mingw-w64-x86_64-ecpprog  3) mingw-w64-x86_64-fritzing
   4) mingw-w64-x86_64-ghdl-llvm  5) mingw-w64-x86_64-gtkwave  6) mingw-w64-x86_64-icesprog
   7) mingw-w64-x86_64-icestorm  8) mingw-w64-x86_64-iverilog  9) mingw-w64-x86_64-kicad
   10) mingw-w64-x86_64-kicad-footprints  11) mingw-w64-x86_64-kicad-meta  12) mingw-w64-x86_64-kicad-packages3D     
   13) mingw-w64-x86_64-kicad-symbols  14) mingw-w64-x86_64-kicad-templates  15) mingw-w64-x86_64-nextpnr
   16) mingw-w64-x86_64-ngspice  17) mingw-w64-x86_64-openFPGALoader  18) mingw-w64-x86_64-prjtrellis
   19) mingw-w64-x86_64-scopehal-apps  20) mingw-w64-x86_64-serial-studio  21) mingw-w64-x86_64-verilator
   22) mingw-w64-x86_64-yosys

Enter a selection (default=all):

The recipes for those tools are maintained in msys2/MINGW-packages. As soon as a PR is merged there, packages are built. Within a few hours/days, maintainers sign them and upload them to the server. Meanwhile, it's possible to use GitHub Releases as a mirror for pacman.

Currently, I take care of maintaining most of those EDA tooling recipes. I created hdl/MINGW-packages for keeping track (find the bigger picture in hdl/packages). So, it's not a fork, but a repo for documentation and for testing/CI. See hdl.github.io/MINGW-packages. Naturally, any help would be really welcome.

To name a few examples, those packages are used in the CI workflows of Fomu workshop (https://github.com/im-tomu/fomu-workshop/actions/runs/1002654445) or NEORV32 (https://github.com/stnolting/neorv32/actions/runs/993317180). That is done through Action setup-msys2:

    - uses: msys2/setup-msys2@v2
      with:
        msystem: MINGW64
        update: true
        install: >
          make
          mingw-w64-x86_64-icestorm
          mingw-w64-x86_64-yosys
          mingw-w64-x86_64-nextpnr

NOTE: GHDL is a dependency of Yosys, so that mixed-language (VHDL and Verilog) designs are supported by default.

You will find that the use case of NEORV32 is quite similar to this one. The riscv toolchain with multilib is available on MSYS2 already: mingw-w64-x86_64-riscv64-unknown-elf-gcc. As a matter of that, MSYS2 is the main environment I use for synthesis and simulation using open source tooling.

Overall, it seems there are three tools missing for your bundle: fujprog, silice and xray. The other 12 are upstreamed in MSYS2 already. Hence, I want to propose joining forces in hdl/MINGW-packages. Let's collaborate for having PKGBUILD recipes written for those three tools.

Even if any of them cannot be upstreamed, we can use the same recipes for generating zst packages, which can then be used for creating an standalone zipfile. That approach is used in gtkwave/gtkwave and ghdl/ghdl. Since you wrote the list of "extra" DLLs in https://github.com/sylefeb/fpga-binutils/blob/master/mingw32/compile_all.sh, it would be straightforward to mimick the solution in https://github.com/gtkwave/gtkwave/blob/master/MSYS2/standalone_pkg.sh. See an example CI run: https://github.com/gtkwave/gtkwave/runs/2985868198?check_suite_focus=true. The corresponding artifacts (zst packages and standalone tarballs) are uploaded to a "nightly" release: https://github.com/gtkwave/gtkwave/releases.

Last, but not least, the PKGBUILD recipes in msys2/MINGW-packages are pinned to a version or an specific commit. However, minimal modifications are required in order to have them build the master branch. That is used for testing Verilator, Icarus Verilog, OpenFPGALoader, Serial-Studio...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.