blob: 3fffd05ce5efc2968e89b040ced8fbd0358d3976 [file] [log] [blame]
Rupert Swarbricke77e2f12021-09-03 18:09:53 +01001#!/bin/bash
2# Copyright lowRISC contributors.
3# Licensed under the Apache License, Version 2.0, see LICENSE for details.
4# SPDX-License-Identifier: Apache-2.0
5
6# Build a chip-level verilator simulation
7#
8# Expects three arguments: the toplevel to build, the fusesoc core and
9# the intermediate Verilated binary name
10
11set -e
12
13if [ $# != 1 ]; then
14 echo >&2 "Usage: build-chip-verilator.sh <toplevel>"
15 exit 1
16fi
17tl="$1"
18
19case "$tl" in
20 earlgrey)
21 fileset=fileset_top
22 fusesoc_core=lowrisc:dv:chip_verilator_sim
23 vname=Vchip_sim_tb
24 ;;
25 englishbreakfast)
26 fileset=fileset_topgen
27 fusesoc_core=lowrisc:systems:chip_englishbreakfast_verilator
28 vname=Vchip_englishbreakfast_verilator
Philipp Wagner83d3b332021-09-29 18:10:14 +010029
30 util/topgen-fusesoc.py --files-root=. --topname=top_englishbreakfast
Rupert Swarbricke77e2f12021-09-03 18:09:53 +010031 ;;
32 *)
33 echo >&2 "Unknown toplevel: $tl"
34 exit 1
35esac
36
37# Move to project root
38cd $(git rev-parse --show-toplevel)
39
40. util/build_consts.sh
41
42set -x
43
44mkdir -p "$OBJ_DIR/hw"
45mkdir -p "$BIN_DIR/hw/top_${tl}"
46
47fusesoc --cores-root=. \
48 run --flag=$fileset --target=sim --setup --build \
49 --build-root="$OBJ_DIR/hw" \
50 $fusesoc_core \
51 --verilator_options="--threads 4"
52
53cp "$OBJ_DIR/hw/sim-verilator/${vname}" \
54 "$BIN_DIR/hw/top_${tl}/Vchip_${tl}_verilator"