Giter Site home page Giter Site logo

yowasp / nextpnr Goto Github PK

View Code? Open in Web Editor NEW
15.0 3.0 3.0 221 KB

Unofficial nextpnr WebAssembly packages

Home Page: https://yowasp.org

License: ISC License

Shell 39.16% Python 36.79% JavaScript 24.05%
fpga nextpnr webassembly python pypi yowasp

nextpnr's Introduction

YoWASP nextpnr packages

The YoWASP nextpnr suite of packages provides nextpnr and related tools for several FPGA families built for WebAssembly. See the overview of the YoWASP project for details.

The supported FPGA families are:

Notes

For technical reasons, the ecppack, ecpunpack, ecpbram, ecppll, and ecpmulti tools from the MachXO2 toolchain shipped in the yowasp-nextpnr-machxo2 PyPI package are installed under the names yowasp-xo2pack, yowasp-xo2unpack, yowasp-xo2bram, yowasp-xo2pll, and yowasp-xo2multi respectively. These commands run bit-for-bit identical code as their yowasp-ecp* prefixed brethren from the yowasp-nextpnr-ecp5 PyPI package of the same version.

Versioning

The version of this package is derived from the upstream nextpnr package version in the X.Y[.Z] format, and is comprised of five or six parts in a X.Y.Z.N.postM[.dev] format:

  1. X: nextpnr major version
  2. Y: nextpnr minor version
  3. Z: nextpnr patch version; reserved as nextpnr currently does not do patch releases
  4. N: zero for packages built from nextpnr releases, N for packages built from unreleased nextpnr snapshots; N is the amount of commits since the latest release
  5. postM: package build version; disambiguates different builds produced from the same nextpnr source tree
  6. dev: present only for packages built from unreleased nextpnr snapshots; marks these packages as pre-releases

With this scheme, there is a direct correspondence between upstream versions and PEP 440 Python package versions. Packages built from unreleased snapshots are ignored by pip by default, but can be still installed explicitly. (These packages are uploaded daily to TestPyPI, but only occasionally to PyPI.)

A different versioning scheme was used earlier, where the package build version was denoted by a .devM suffix. This scheme did not work well with PEP 440 version specifiers and was retired.

Configuration

See the documentation for yowasp-runtime.

License

This package is covered by the ISC license, which is the same as the nextpnr license.

nextpnr's People

Contributors

daniellehuisman avatar github-actions[bot] avatar pepijndevos avatar whitequark avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nextpnr's Issues

gowin_pack broken -> apicula 0.3.1 needed

The problem with gowin_pack presents as in ticket YosysHQ/apicula#99 and has been fixed in apicula 0.3.1

But apycula=0.3 is set as dependancy for the pip package yowasp-nextpnr-gowin 0.3.dev303, which prevents new installs getting a working version (where I tripped over it).

Recommend changing that dependancy to apycula>=0.3<0.4 so any other minor fixes like this to apycula get picked up and fixed without requiring further change to the dependancy setting here.

For now a workaround is pip install -U apycula which then complains that yowasp-nextpnr-gowin is incompatible because it requires apycula=0.3, but otherwise works.

All errors become WASM traps

Thanks for all the hard work making this package available.

I installed only one package with the command pip install yowasp-nextpnr-ice40-8k, on Windows 10 x64, Anaconda Python 3.7 (same result for 3.8). It installs yowasp_nextpnr_ice40_8k-0.0.post2625.dev9-py3-none-any.whl

I then run yowasp-nextpnr-ice40. It prints out the full list of command line options, then prints out the following error message:

  File "<my home>\miniconda3\lib\runpy.py", line 193, in _run_module_as_main                                                                 
    "__main__", mod_spec)                                                                                                                          
  File "<my home>\miniconda3\lib\runpy.py", line 85, in _run_code                                                                            
    exec(code, run_globals)                                                                                                                        
  File "<my home>\Miniconda3\Scripts\yowasp-nextpnr-ice40.exe\__main__.py", line 7, in <module>                                              
  File "<my home>\miniconda3\lib\site-packages\yowasp_nextpnr_ice40\bin\__init__.py", line 61, in run_nextpnr_ice40                          
    sys.exit(_run_wasm_app("nextpnr-ice40.wasm", argv))                                                                                            
  File "<my home>\miniconda3\lib\site-packages\yowasp_nextpnr_ice40\bin\__init__.py", line 34, in _run_wasm_app                              
    app.exports["_start"]()                                                                                                                        
  File "<my home>\miniconda3\lib\site-packages\wasmtime\_func.py", line 115, in __call__                                                     
    raise Trap.__from_ptr__(trap)                                                                                                                  
wasmtime._trap.Trap: wasm trap: unreachable                                                                                                        
wasm backtrace:                                                                                                                                    
  0: 0x168303 - <unknown>!<wasm function 2901>                                                                                                     
  1: 0x161621 - <unknown>!<wasm function 2823>                                                                                                     
  2: 0x16164e - <unknown>!<wasm function 2824>                                                                                                     
  3: 0x15192 - <unknown>!<wasm function 243>                                                                                                       
  4: 0x14cb5 - <unknown>!<wasm function 234>                                                                                                       
  5: 0xa2b9e - <unknown>!<wasm function 945>                                                                                                       
  6: 0xd4aa6 - <unknown>!<wasm function 1051>                                                                                                      
  7: 0xbd4a - <unknown>!<wasm function 62>                                                                                                         
  8: 0xd5ce1 - <unknown>!<wasm function 1054>                                                                                                      
  9: 0x16871d - <unknown>!<wasm function 2908>                                                                                                     
  10: 0x1687a5 - <unknown>!<wasm function 2910>                                                                                                    
  11: 0x168308 - <unknown>!<wasm function 2902>                                                                                                    
  12: 0x1768 - <unknown>!<wasm function 21>

where <my home> represents my windows home folder.

If I run pip install yowasp-nextpnr-ice40-all, then the error no longer occurs.

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.