bespoke-silicon-group / bsg_replicant

BSG Replicant: Cosimulation and Emulation Infrastructure for HammerBlade
BSD 3-Clause "New" or "Revised" License
26 stars 20 forks source link

BSG Replicant: Execution/Emulation Infrastructure for HammerBlade

Quickstart

The simplest way to use this project is to clone its meta-project: BSG Bladerunner.

BSG Bladerunner tracks this repository, BSG Manycore, and BaseJump STL repositories as submodules and maintains a monotonic versionining scheme.

Once the setup instructions in BSG Bladrunner have been completed, run:

make regression

This will run all of the example programs in examples. See the README.md file in that directory for more information. We make every attempt to ensure the examples there are working.

Contents

This repository contains the following folders:

This repository contains the following files:

Platforms

HammerBlade applications can be run on multiple platforms. These platforms could simulate the architecture (VCS, Verilator), emulate it, or run natively.

We currently support two platforms:

Each platform has different advantages and drawbacks. Simulated platforms support an in-depth profiling infrastructure and emulated memory systems via non-synthesizable constructs. VCS is a 4-state simulator, but requires Synopsys and VCS licenses. Verilator does not require licenses, but it cannot simulated an FPGA system with encrypted HDL.

To select the execution platform, set the BSG_PLATFORM variable in platform.mk. Most users will use bigblade-vcs.

Machines

Each HammerBlade configuration is called a Machine and defines a size, memory type, memory hierarchy, cache type, and many other parameters. Each machine is defined by Makefile.machine.include file in machines.

To switch machines set BSG_MACHINE_PATH, defined in machine.mk. To switch machines, modify the value of BSG_MACHINE_PATH to point to any subdirectory of the machines directory.

See machines/README.md for more documentation.

Dependencies

To use VCS Platforms, users will need:

  1. Synopsys VCS (We use O-2018.09-SP2, but others would work)

To use Verilator platforms, users will need:

  1. A recent version of Verilator

Users should use the Verilator installation provided by bsg_bladerunner.