Giter Club home page Giter Club logo

fpga-toolchain-experiment's Introduction

fpga-toolchain-experiment

An initial investigation into a viable FPGA development toolchain.

The scope of this investigation is:

  • To determine whether Spinal-HDL can be used with Maven, not SBT (as Maven is the defacto standard, and I greatly prefer it);

    • It requires a scalac compiler plugin. When attempting to run the CounterMain program after a 'straight' maven compilation, Spinal failed with 'dslScope stack is not empty'; Spinal-HDL 1.4.0 release notes and a search on Gitter suggested the sbt plugin is required. (At this point, I thought it MUST need sbt...)
    • Instructions on how to use SpinalHDL only mention SBT.
    • Got it working fine with SBT, but want to use Maven.
    • Tried to use https://sbt-compiler-maven-plugin.github.io/sbt-compiler-maven-plugin/1.0.0/sbt-compiler-maven-plugin/compile-mojo.html to use the sbt compiler directly from maven, specifying the Spinal compiler plugin. This did not work - this maven plugin might only support very old versions of sbt. 0.13, 0.14 not the more recent 1.3.3 that SpinalHDL uses.
    • Noticed that the scala-maven-plugin supports the addition of a scalac plugin. Tried to use the 'SBT' plugin, and it generated code that ran successfully to produce VHDL. Yes! I no longer have to endure the 'blinding pain' of sbt!
  • Develop maven plugins to make developing VHDL via Spinal HDL with Maven easier, as necessary?

  • To see if Spinal-HDL can output VHDL suitable for use with Lattice Diamond for the Mach XO2 board.

  • How to simulate designs built in Spinal-HDL.

  • How to test designs built in Spinal-HDL, via Maven Surefire/JUnit 5, develop DSLs to assist as necessary.

Example counter code taken from SpinalHDL's workshop - https://github.com/SpinalHDL/SpinalWorkshop/tree/workshop/src/main/scala/workshop/counter

fpga-toolchain-experiment's People

Contributors

devzendo avatar

Watchers

James Cloos avatar  avatar  avatar

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.