Skip to content
This repository has been archived by the owner on Nov 9, 2020. It is now read-only.

sfu-arch/dandelion-lib

Repository files navigation

Dandelion

Dandelion is a library of hardware components to implement parallel dataflow accelerators.

Getting Started on a Local Ubuntu Machine

This will walk you through installing Chisel and its dependencies:

  • sbt: which is the preferred Scala build system and what Chisel uses.

  • Verilator:, which compiles Verilog down to C++ for simulation. The included unit testing infrastructure uses this.

(Ubuntu-like) Linux

Install Java

sudo apt-get install default-jdk

Install sbt, which isn't available by default in the system package manager:

echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823
sudo apt-get update
sudo apt-get install sbt

Install Verilator. We currently recommend Verilator version 3.922. Follow these instructions to compile it from source.

Install prerequisites (if not installed already):

sudo apt-get install git make autoconf g++ flex bison

Clone the Verilator repository:

git clone http://git.veripool.org/git/verilator

In the Verilator repository directory, check out a known good version:

git pull
git checkout verilator_3_922

In the Verilator repository directory, build and install:

unset VERILATOR_ROOT # For bash, unsetenv for csh

autoconf # Create ./configure script
./configure
make
sudo make install

Dandelion's dependencies

Dandelion depends on Berkeley Hardware Floating-Point Units for floating nodes implementation. We have forked Berkely's implementation and applied minor changes to make the library compatible with Dandelion's nodes.

dandelion-hardflot needs to be published locally. For publishing the code locally follow the following commands:

$ sbt -DchiselVersion="latest.release" "publishLocal"

Compiling Dandelion Accelerator

For compiling dandelion is the first step to build the library

sbt "compile"

Dandelion has a set of test cases for testing different dataflow designs. All the dataflow tests are located at:

src/main/scala/generator

Each of these test cases has a specific test bench and they have been located at following location:

src/test/main/scala/generator

User can run each of these test cases to simulate the design. For running a test case the command which is needed to enter is:

sbt "testOnly <PackageName>.<TesterName>"
  • PackageName: Is the name of the scala package which the dataflow is been developed within.
  • TesterName: Is the specification of test bench in chisel.

To read more about the overall design of test bench please read Wiki section Test Bench.

Getting verilog design

For each test example, there is a main function which generates verilog file of the design.

sbt runMain <PackageName>.<MainObjectName>

Running following command generates a verilog file in the RTL folder.

In order to map the generated verilog on a SoC device please read SoC FPGA Interface from our wiki page.

Contributors

  • Amirali Sharifian (Simon Fraser University)
  • Steven Margem (Simon Fraser University)
  • Navid Rahimi (Simon Fraser University)
  • Apala Guha (Simon Fraser University)

About

A dataflow library for TAPAS and dandelion projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •