Giter Site home page Giter Site logo

spinaltemplatesbt's Introduction

Spinal Base Project

This repository is a base SBT project added to help non Scala/SBT native people in their first steps.

Just one important note, you need a java JDK >= 8

On debian :

sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk -y

#To set the default java
sudo update-alternatives --config java
sudo update-alternatives --config javac

Basics, without any IDE

You need to install SBT

echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install sbt

If you want to run the scala written testbench, you have to be on linux and have Verilator installed (a recent version) :

sudo apt-get install git make autoconf g++ flex bison -y  # First time prerequisites
git clone http://git.veripool.org/git/verilator   # Only first time
unsetenv VERILATOR_ROOT  # For csh; ignore error if on bash
unset VERILATOR_ROOT  # For bash
cd verilator
git pull        # Make sure we're up-to-date
git checkout v4.040
autoconf        # Create ./configure script
./configure
make -j$(nproc)
sudo make install
cd ..
echo "DONE"

Clone or download this repository.

git clone https://github.com/SpinalHDL/SpinalTemplateSbt.git

Open a terminal in the root of it and run "sbt run". At the first execution, the process could take some seconds

cd SpinalTemplateSbt

//If you want to generate the Verilog of your design
sbt "runMain mylib.MyTopLevelVerilog"

//If you want to generate the VHDL of your design
sbt "runMain mylib.MyTopLevelVhdl"

//If you want to run the scala written testbench
sbt "runMain mylib.MyTopLevelSim"

The top level spinal code is defined into src\main\scala\mylib

Basics, with Intellij IDEA and its scala plugin

You need to install :

  • Java JDK 8
  • SBT
  • Intellij IDEA (the free Community Edition is good enough)
  • Intellij IDEA Scala plugin (when you run Intellij IDEA the first time, he will ask you about it)

And do the following :

  • Clone or download this repository.
  • In Intellij IDEA, "import project" with the root of this repository, Import project from external model SBT
  • In addition maybe you need to specify some path like JDK to Intellij
  • In the project (Intellij project GUI), go in src/main/scala/mylib/MyTopLevel.scala, right click on MyTopLevelVerilog, "Run MyTopLevelVerilog"

Normally, this must generate an MyTopLevel.v output files.

Basics, with Eclipse and its scala plugin

First, i "strongly" suggest to use intellij idea instead.

You need to install :

  • Java JDK
  • Scala
  • SBT
  • Eclipse (tested with Mars.2 - 4.5.2)
  • scala plugin (tested with 4.4.1)

And do the following :

Normally, this must generate output file MyTopLevel.v.

Mill Support (Experimental)

This Spinal Base Project contains support for the Mill build tool.

The prerequisites are the same as for using SBT, except for sbt itself. Additionally, the mill executable needs to be installed on the path. Download it to /usr/local/bin/mill or ~/bin/mill according to the installation instructions.

You can clone and use this repository in the following way.

git clone https://github.com/SpinalHDL/SpinalTemplateSbt.git

Open a terminal in the root of it and execute your favorite mill command. At the first execution, the process could take some seconds

cd SpinalTemplateSbt

//If you want to generate the Verilog of your design
mill mylib.runMain mylib.MyTopLevelVerilog

//If you want to generate the VHDL of your design
mill mylib.runMain mylib.MyTopLevelVhdl

//If you want to run the scala written testbench
mill mylib.runMain mylib.MyTopLevelSim

The top level spinal code is defined into src\main\scala\mylib

spinaltemplatesbt's People

Contributors

dolu1990 avatar randomreaper avatar typingartist avatar azaparov avatar name1e5s avatar

Watchers

James Cloos 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.