A Brief Tour of FireSim: The Manager & Compiler; Building Hardware Designs
MICRO 2019 Tutorial Speaker: David Biancolin (@davidbiancolin) https://fires.im @firesimproject
A Brief Tour of FireSim: The Manager & Compiler; Building - - PowerPoint PPT Presentation
A Brief Tour of FireSim: The Manager & Compiler; Building Hardware Designs https://fires.im @firesimproject MICRO 2019 Tutorial Speaker: David Biancolin (@davidbiancolin) Agenda: What Will We Cover? 1) The Compiler Golden Gate
MICRO 2019 Tutorial Speaker: David Biancolin (@davidbiancolin) https://fires.im @firesimproject
2
3
4
sim/
deploy/
platforms/ à AWS FPGA/Vivado project definitions sw/ à target software & FireMarshal (more on this later)
5
6
7
$ cd $FDIR/sim $ make DESIGN=FireSimNoNIC
Verilator generates C++ sources to simulate your design. à Compile and run on a CPU-host Golden Gate generates C++ & Verilog to simulate your design. à Compile and run on a hybrid CPU & FPGA host
8
9
Inputs:
à Produces sources for a simulator that are:
10
DESIGN :
TARGET_CONFIG:
PLATFORM_CONFIG:
11
12
$ cd $FDIR/sim/generated-src/f1 # here you’ll find output directories for all builds $ cd <any-directory-here> $ ls
<long-name>.fir & <long-name>.anno.json
FPGATop.v
$DESIGN-const.h
runtime.conf
13
14
15
“AGFI”: FPGA Bitstream for F1 FPGAs
$FDIR/deploy/ After a fresh clone, need to call: firesim managerinit à You did this at the start of the tutorial
16
17
18
config_build_recipes.ini config_build.ini config_hwdb.ini config_runtime.ini
19
config_build_recipes.ini config_build.ini config_hwdb.ini config_runtime.ini
Consists of:
build on
20
21
Consists of:
to a build farm Once you’re done with builds:
with other users
let’s build it $ firesim buildafi
each design, in-parallel:
FPGA builds in parallel
22
23
Hooks to change:
à Without FPGA recompilation
24
25
# Prefetching for the next section $ cd ~/chipyard-afternoon/software/firemarshal/ $ ./marshal -d build workloads/sha3-linux-test.json
today is documented in excruciating detail at http://docs.fires.im
26
27
28
design/
build/scripts/<timestamp>.vivado.log
build/reports/
build/checkpoints/
29
30
à outputs in output/f1/<tuple>
31