Merge branch 'develop'

This commit is contained in:
Blaise Tine 2023-11-10 02:57:42 -08:00
commit 64dc5e1667
10 changed files with 139 additions and 157 deletions

View file

@ -1,87 +1,83 @@
language: cpp language: cpp
dist: bionic dist: focal
os: linux os: linux
compiler: gcc compiler: gcc
addons:
apt: apt:
sources:
- ubuntu-toolchain-r-test
packages: packages:
- build-essential - build-essential
- valgrind - valgrind
- libpng-dev
- libboost-serialization-dev
- libstdc++6 - libstdc++6
- hwloc
install: env:
# Install toolchain global:
- export TOOLDIR=$HOME/tools - TOOLDIR=$HOME/tools
- mkdir -p $TOOLDIR
- DESTDIR=$TOOLDIR ./ci/toolchain_install.sh --all cache:
# Set environments directories:
- export RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv-gnu-toolchain - $TOOLDIR
- export LLVM_POCL=$TOOLDIR/llvm-pocl - $HOME/build32
- export LLVM_VORTEX=$TOOLDIR/llvm-vortex - $HOME/build64
- export VERILATOR_ROOT=$TOOLDIR/verilator
- export PATH=$VERILATOR_ROOT/bin:$PATH before_install:
- export SV2V_PATH=$TOOLDIR/sv2v - if [ ! -d "$TOOLDIR" ] || [ -z "$(ls -A $TOOLDIR)" ]; then
- export PATH=$SV2V_PATH/bin:$PATH mkdir -p $TOOLDIR;
- export YOSYS_PATH=$TOOLDIR/yosys OSDIR=ubuntu/focal ./ci/toolchain_install.sh --all;
- export PATH=$YOSYS_PATH/bin:$PATH fi
- export POCL_CC_PATH=$TOOLDIR/pocl/compiler - source ./ci/toolchain_env.sh
- export POCL_RT_PATH=$TOOLDIR/pocl/runtime
# build project
- cp -r $PWD ../build32 && cd ../build32 && make clean-all && make
- cp -r $PWD ../build64 && cd ../build64 && make clean-all && XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain make
# stages ordering
stages: stages:
- setup
- test - test
jobs: jobs:
include: include:
- stage: setup
script:
- rm -rf $HOME/build32 && cp -r $PWD $HOME/build32
- rm -rf $HOME/build64 && cp -r $PWD $HOME/build64
- make -C $HOME/build32
- XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain make -C $HOME/build64
- stage: test - stage: test
name: unittest name: unittest
script: cp -r ../build32 ../build32_unittest && cd ../build32_unittest && ./ci/travis_run.py ./ci/regression.sh --unittest script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --unittest
- stage: test - stage: test
name: isa name: isa
script: cp -r ../build32 ../build32_isa && cd ../build32_isa && ./ci/travis_run.py ./ci/regression.sh --isa script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --isa
- stage: test - stage: test
name: isa64 name: isa64
script: cp -r ../build64 ../build64_isa && cd ../build64_isa && XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain ./ci/travis_run.py ./ci/regression.sh --isa script: cp -r $HOME/build64 build && cd build && XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain ./ci/travis_run.py ./ci/regression.sh --isa
- stage: test - stage: test
name: regression name: regression
script: cp -r ../build32 ../build32_regression && cd ../build32_regression && ./ci/travis_run.py ./ci/regression.sh --regression script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --regression
- stage: test - stage: test
name: regression64 name: regression64
script: cp -r ../build64 ../build64_regression && cd ../build64_regression && XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain ./ci/travis_run.py ./ci/regression.sh --regression script: cp -r $HOME/build64 build && cd build && XLEN=64 RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv64-gnu-toolchain ./ci/travis_run.py ./ci/regression.sh --regression
- stage: test - stage: test
name: opencl name: opencl
script: cp -r ../build32 ../build32_opencl && cd ../build32_opencl && ./ci/travis_run.py ./ci/regression.sh --opencl script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --opencl
- stage: test - stage: test
name: cluster name: cluster
script: cp -r ../build32 ../build32_cluster && cd ../build32_cluster && ./ci/travis_run.py ./ci/regression.sh --cluster script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --cluster
- stage: test - stage: test
name: config name: config
script: cp -r ../build32 ../build32_config && cd ../build32_config && ./ci/travis_run.py ./ci/regression.sh --config script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --config
- stage: test - stage: test
name: debug name: debug
script: cp -r ../build32 ../build32_debug && cd ../build32_debug && ./ci/travis_run.py ./ci/regression.sh --debug script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --debug
- stage: test - stage: test
name: stress0 name: stress0
script: cp -r ../build32 ../build32_stress0 && cd ../build32_stress0 && ./ci/travis_run.py ./ci/regression.sh --stress0 script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --stress0
- stage: test - stage: test
name: stress1 name: stress1
script: cp -r ../build32 ../build32_stress1 && cd ../build32_stress1 && ./ci/travis_run.py ./ci/regression.sh --stress1 script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --stress1
- stage: test - stage: test
name: synthesis name: synthesis
script: cp -r ../build32 ../build32_isa && cd ../build32_isa && ./ci/travis_run.py ./ci/regression.sh --synthesis script: cp -r $HOME/build32 build && cd build && ./ci/travis_run.py ./ci/regression.sh --synthesis
- stage: test - stage: test
name: synthesis64 name: synthesis64
script: cp -r ../build64 ../build64_isa && cd ../build64_isa && XLEN=64 ./ci/travis_run.py ./ci/regression.sh --synthesis script: cp -r $HOME/build64 build && cd build && XLEN=64 ./ci/travis_run.py ./ci/regression.sh --synthesis
- stage: test
name: compiler
script: cp -r ../build32 ../build32_compiler && cd ../build32_compiler && ./ci/travis_run.py ./ci/test_compiler.sh
after_success: after_success:
# Gather code coverage # Gather code coverage

View file

@ -53,18 +53,11 @@ Vortex is a full-stack open-source RISC-V GPGPU.
$ git clone --recursive https://github.com/vortexgpgpu/vortex.git $ git clone --recursive https://github.com/vortexgpgpu/vortex.git
$ cd Vortex $ cd Vortex
### Install prebuilt toolchain ### Install prebuilt toolchain
$ ./ci/toolchain_install.sh --all
By default, the toolchain will install to /opt folder. By default, the toolchain will install to /opt folder.
You can install the toolchain to a different directory by overiding DESTDIR. You can install the toolchain to a different directory by overriding TOOLDIR (e.g. export TOOLDIR=$HOME/tools).
$ DESTDIR=$TOOLDIR ./ci/toolchain_install.sh --all $ ./ci/toolchain_install.sh --all
$ export VORTEX_HOME=$TOOLDIR/vortex $ source ./ci/toolchain_env.sh
$ export LLVM_VORTEX=$TOOLDIR/llvm-vortex
$ export LLVM_POCL=$TOOLDIR/llvm-pocl
$ export RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv-gnu-toolchain
$ export VERILATOR_ROOT=$TOOLDIR/verilator
$ export PATH=$VERILATOR_ROOT/bin:$PATH
### Build Vortex sources ### Build Vortex sources
$ make -s $ make -s
### Quick demo running vecadd OpenCL kernel on 2 cores ### Quick demo running vecadd OpenCL kernel on 2 cores

View file

@ -1,31 +0,0 @@
#!/bin/bash
# Copyright © 2019-2023
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# exit when any command fails
set -e
# clear POCL cache
rm -rf ~/.cache/pocl
# force rebuild test kernels
make -C tests clean-all
# ensure build
make -s
# run tests
make -C tests/kernel run-simx
make -C tests/regression run-simx
make -C tests/opencl run-simx

29
ci/toolchain_env.sh Normal file
View file

@ -0,0 +1,29 @@
#!/bin/sh
# Copyright 2023 blaise
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
TOOLDIR=${TOOLDIR:=/opt}
export RISCV_TOOLCHAIN_PATH=$TOOLDIR/riscv-gnu-toolchain
export LLVM_POCL=$TOOLDIR/llvm-pocl
export LLVM_VORTEX=$TOOLDIR/llvm-vortex
export VERILATOR_ROOT=$TOOLDIR/verilator
export PATH=$VERILATOR_ROOT/bin:$PATH
export SV2V_PATH=$TOOLDIR/sv2v
export PATH=$SV2V_PATH/bin:$PATH
export YOSYS_PATH=$TOOLDIR/yosys
export PATH=$YOSYS_PATH/bin:$PATH
export POCL_CC_PATH=$TOOLDIR/pocl/compiler
export POCL_RT_PATH=$TOOLDIR/pocl/runtime

View file

@ -17,50 +17,50 @@
set -e set -e
REPOSITORY=https://github.com/vortexgpgpu/vortex-toolchain-prebuilt/raw/master REPOSITORY=https://github.com/vortexgpgpu/vortex-toolchain-prebuilt/raw/master
TOOLDIR=${TOOLDIR:=/opt}
DESTDIR="${DESTDIR:=/opt}" OSDIR=${OSDIR:=ubuntu/bionic}
OS="${OS:=ubuntu/bionic}" OS="${OS:=ubuntu/bionic}"
riscv() riscv()
{ {
case $OS in case $OSDIR in
"centos/7") parts=$(eval echo {a..h}) ;; "centos/7") parts=$(eval echo {a..h}) ;;
*) parts=$(eval echo {a..j}) ;; *) parts=$(eval echo {a..j}) ;;
esac esac
rm -f riscv-gnu-toolchain.tar.bz2.parta* rm -f riscv-gnu-toolchain.tar.bz2.parta*
for x in $parts for x in $parts
do do
wget $REPOSITORY/riscv-gnu-toolchain/$OS/riscv-gnu-toolchain.tar.bz2.parta$x wget $REPOSITORY/riscv-gnu-toolchain/$OSDIR/riscv-gnu-toolchain.tar.bz2.parta$x
done done
cat riscv-gnu-toolchain.tar.bz2.parta* > riscv-gnu-toolchain.tar.bz2 cat riscv-gnu-toolchain.tar.bz2.parta* > riscv-gnu-toolchain.tar.bz2
tar -xvf riscv-gnu-toolchain.tar.bz2 tar -xvf riscv-gnu-toolchain.tar.bz2
cp -r riscv-gnu-toolchain $DESTDIR cp -r riscv-gnu-toolchain $TOOLDIR
rm -f riscv-gnu-toolchain.tar.bz2* rm -f riscv-gnu-toolchain.tar.bz2*
rm -rf riscv-gnu-toolchain rm -rf riscv-gnu-toolchain
} }
riscv64() riscv64()
{ {
case $OS in case $OSDIR in
"centos/7") parts=$(eval echo {a..h}) ;; "centos/7") parts=$(eval echo {a..h}) ;;
*) parts=$(eval echo {a..j}) ;; *) parts=$(eval echo {a..j}) ;;
esac esac
rm -f riscv64-gnu-toolchain.tar.bz2.parta* rm -f riscv64-gnu-toolchain.tar.bz2.parta*
for x in $parts for x in $parts
do do
wget $REPOSITORY/riscv64-gnu-toolchain/$OS/riscv64-gnu-toolchain.tar.bz2.parta$x wget $REPOSITORY/riscv64-gnu-toolchain/$OSDIR/riscv64-gnu-toolchain.tar.bz2.parta$x
done done
cat riscv64-gnu-toolchain.tar.bz2.parta* > riscv64-gnu-toolchain.tar.bz2 cat riscv64-gnu-toolchain.tar.bz2.parta* > riscv64-gnu-toolchain.tar.bz2
tar -xvf riscv64-gnu-toolchain.tar.bz2 tar -xvf riscv64-gnu-toolchain.tar.bz2
cp -r riscv64-gnu-toolchain $DESTDIR cp -r riscv64-gnu-toolchain $TOOLDIR
rm -f riscv64-gnu-toolchain.tar.bz2* rm -f riscv64-gnu-toolchain.tar.bz2*
rm -rf riscv64-gnu-toolchain rm -rf riscv64-gnu-toolchain
} }
llvm-vortex() llvm-vortex()
{ {
case $OS in case $OSDIR in
"centos/7") parts=$(eval echo {a..b}) ;; "centos/7") parts=$(eval echo {a..b}) ;;
*) parts=$(eval echo {a..b}) ;; *) parts=$(eval echo {a..b}) ;;
esac esac
@ -68,18 +68,18 @@ llvm-vortex()
rm -f llvm-vortex.tar.bz2.parta* rm -f llvm-vortex.tar.bz2.parta*
for x in $parts for x in $parts
do do
wget $REPOSITORY/llvm-vortex/$OS/llvm-vortex.tar.bz2.parta$x wget $REPOSITORY/llvm-vortex/$OSDIR/llvm-vortex.tar.bz2.parta$x
done done
cat llvm-vortex.tar.bz2.parta* > llvm-vortex.tar.bz2 cat llvm-vortex.tar.bz2.parta* > llvm-vortex.tar.bz2
tar -xvf llvm-vortex.tar.bz2 tar -xvf llvm-vortex.tar.bz2
cp -r llvm-vortex $DESTDIR cp -r llvm-vortex $TOOLDIR
rm -f llvm-vortex.tar.bz2* rm -f llvm-vortex.tar.bz2*
rm -rf llvm-vortex rm -rf llvm-vortex
} }
llvm-pocl() llvm-pocl()
{ {
case $OS in case $OSDIR in
"centos/7") parts=$(eval echo {a..b}) ;; "centos/7") parts=$(eval echo {a..b}) ;;
*) parts=$(eval echo {a..b}) ;; *) parts=$(eval echo {a..b}) ;;
esac esac
@ -87,45 +87,45 @@ llvm-pocl()
rm -f llvm-pocl.tar.bz2.parta* rm -f llvm-pocl.tar.bz2.parta*
for x in $parts for x in $parts
do do
wget $REPOSITORY/llvm-pocl/$OS/llvm-pocl.tar.bz2.parta$x wget $REPOSITORY/llvm-pocl/$OSDIR/llvm-pocl.tar.bz2.parta$x
done done
cat llvm-pocl.tar.bz2.parta* > llvm-pocl.tar.bz2 cat llvm-pocl.tar.bz2.parta* > llvm-pocl.tar.bz2
tar -xvf llvm-pocl.tar.bz2 tar -xvf llvm-pocl.tar.bz2
cp -r llvm-pocl $DESTDIR cp -r llvm-pocl $TOOLDIR
rm -f llvm-pocl.tar.bz2* rm -f llvm-pocl.tar.bz2*
rm -rf llvm-pocl rm -rf llvm-pocl
} }
pocl() pocl()
{ {
wget $REPOSITORY/pocl/$OS/pocl.tar.bz2 wget $REPOSITORY/pocl/$OSDIR/pocl.tar.bz2
tar -xvf pocl.tar.bz2 tar -xvf pocl.tar.bz2
rm -f pocl.tar.bz2 rm -f pocl.tar.bz2
cp -r pocl $DESTDIR cp -r pocl $TOOLDIR
rm -rf pocl rm -rf pocl
} }
verilator() verilator()
{ {
wget $REPOSITORY/verilator/$OS/verilator.tar.bz2 wget $REPOSITORY/verilator/$OSDIR/verilator.tar.bz2
tar -xvf verilator.tar.bz2 tar -xvf verilator.tar.bz2
cp -r verilator $DESTDIR cp -r verilator $TOOLDIR
rm -f verilator.tar.bz2 rm -f verilator.tar.bz2
rm -rf verilator rm -rf verilator
} }
sv2v() sv2v()
{ {
wget $REPOSITORY/sv2v/$OS/sv2v.tar.bz2 wget $REPOSITORY/sv2v/$OSDIR/sv2v.tar.bz2
tar -xvf sv2v.tar.bz2 tar -xvf sv2v.tar.bz2
rm -f sv2v.tar.bz2 rm -f sv2v.tar.bz2
cp -r sv2v $DESTDIR cp -r sv2v $TOOLDIR
rm -rf sv2v rm -rf sv2v
} }
yosys() yosys()
{ {
case $OS in case $OSDIR in
"centos/7") parts=$(eval echo {a..c}) ;; "centos/7") parts=$(eval echo {a..c}) ;;
*) parts=$(eval echo {a..c}) ;; *) parts=$(eval echo {a..c}) ;;
esac esac
@ -133,11 +133,11 @@ yosys()
rm -f yosys.tar.bz2.parta* rm -f yosys.tar.bz2.parta*
for x in $parts for x in $parts
do do
wget $REPOSITORY/yosys/$OS/yosys.tar.bz2.parta$x wget $REPOSITORY/yosys/$OSDIR/yosys.tar.bz2.parta$x
done done
cat yosys.tar.bz2.parta* > yosys.tar.bz2 cat yosys.tar.bz2.parta* > yosys.tar.bz2
tar -xvf yosys.tar.bz2 tar -xvf yosys.tar.bz2
cp -r yosys $DESTDIR cp -r yosys $TOOLDIR
rm -f yosys.tar.bz2* rm -f yosys.tar.bz2*
rm -rf yosys rm -rf yosys
} }
@ -166,14 +166,13 @@ while [ "$1" != "" ]; do
;; ;;
--yosys ) yosys --yosys ) yosys
;; ;;
--all ) riscv --all ) pocl
riscv64
llvm-vortex
llvm-pocl
pocl
verilator verilator
sv2v sv2v
yosys yosys
llvm-vortex
riscv
riscv64
;; ;;
-h | --help ) show_usage -h | --help ) show_usage
exit exit

View file

@ -16,77 +16,72 @@
# exit when any command fails # exit when any command fails
set -e set -e
OS_DIR=${OS_DIR:-'ubuntu/bionic'} TOOLDIR=${TOOLDIR:=/opt}
SRCDIR=${SRCDIR:-'/opt'} OSDIR=${OSDIR:=ubuntu/bionic}
DESTDIR=${DESTDIR:-'.'}
echo "OS_DIR=${OS_DIR}"
echo "SRCDIR=${SRCDIR}"
echo "DESTDIR=${DESTDIR}"
riscv() riscv()
{ {
echo "prebuilt riscv-gnu-toolchain..." echo "prebuilt riscv-gnu-toolchain..."
tar -C $SRCDIR -cvjf riscv-gnu-toolchain.tar.bz2 riscv-gnu-toolchain tar -C $TOOLDIR -cvjf riscv-gnu-toolchain.tar.bz2 riscv-gnu-toolchain
split -b 50M riscv-gnu-toolchain.tar.bz2 "riscv-gnu-toolchain.tar.bz2.part" split -b 50M riscv-gnu-toolchain.tar.bz2 "riscv-gnu-toolchain.tar.bz2.part"
mv riscv-gnu-toolchain.tar.bz2.part* $DESTDIR/riscv-gnu-toolchain/$OS_DIR mv riscv-gnu-toolchain.tar.bz2.part* ./riscv-gnu-toolchain/$OSDIR
rm riscv-gnu-toolchain.tar.bz2 rm riscv-gnu-toolchain.tar.bz2
} }
riscv64() riscv64()
{ {
echo "prebuilt riscv64-gnu-toolchain..." echo "prebuilt riscv64-gnu-toolchain..."
tar -C $SRCDIR -cvjf riscv64-gnu-toolchain.tar.bz2 riscv64-gnu-toolchain tar -C $TOOLDIR -cvjf riscv64-gnu-toolchain.tar.bz2 riscv64-gnu-toolchain
split -b 50M riscv64-gnu-toolchain.tar.bz2 "riscv64-gnu-toolchain.tar.bz2.part" split -b 50M riscv64-gnu-toolchain.tar.bz2 "riscv64-gnu-toolchain.tar.bz2.part"
mv riscv64-gnu-toolchain.tar.bz2.part* $DESTDIR/riscv64-gnu-toolchain/$OS_DIR mv riscv64-gnu-toolchain.tar.bz2.part* ./riscv64-gnu-toolchain/$OSDIR
rm riscv64-gnu-toolchain.tar.bz2 rm riscv64-gnu-toolchain.tar.bz2
} }
llvm-vortex() llvm-vortex()
{ {
echo "prebuilt llvm-vortex..." echo "prebuilt llvm-vortex..."
tar -C $SRCDIR -cvjf llvm-vortex.tar.bz2 llvm-vortex tar -C $TOOLDIR -cvjf llvm-vortex.tar.bz2 llvm-vortex
split -b 50M llvm-vortex.tar.bz2 "llvm-vortex.tar.bz2.part" split -b 50M llvm-vortex.tar.bz2 "llvm-vortex.tar.bz2.part"
mv llvm-vortex.tar.bz2.part* $DESTDIR/llvm-vortex/$OS_DIR mv llvm-vortex.tar.bz2.part* ./llvm-vortex/$OSDIR
rm llvm-vortex.tar.bz2 rm llvm-vortex.tar.bz2
} }
llvm-pocl() llvm-pocl()
{ {
echo "prebuilt llvm-pocl..." echo "prebuilt llvm-pocl..."
tar -C $SRCDIR -cvjf llvm-pocl.tar.bz2 llvm-pocl tar -C $TOOLDIR -cvjf llvm-pocl.tar.bz2 llvm-pocl
split -b 50M llvm-pocl.tar.bz2 "llvm-pocl.tar.bz2.part" split -b 50M llvm-pocl.tar.bz2 "llvm-pocl.tar.bz2.part"
mv llvm-pocl.tar.bz2.part* $DESTDIR/llvm-pocl/$OS_DIR mv llvm-pocl.tar.bz2.part* ./llvm-pocl/$OSDIR
rm llvm-pocl.tar.bz2 rm llvm-pocl.tar.bz2
} }
pocl() pocl()
{ {
echo "prebuilt pocl..." echo "prebuilt pocl..."
tar -C $SRCDIR -cvjf pocl.tar.bz2 pocl tar -C $TOOLDIR -cvjf pocl.tar.bz2 pocl
mv pocl.tar.bz2 $DESTDIR/pocl/$OS_DIR mv pocl.tar.bz2 ./pocl/$OSDIR
} }
verilator() verilator()
{ {
echo "prebuilt verilator..." echo "prebuilt verilator..."
tar -C $SRCDIR -cvjf verilator.tar.bz2 verilator tar -C $TOOLDIR -cvjf verilator.tar.bz2 verilator
mv verilator.tar.bz2 $DESTDIR/verilator/$OS_DIR mv verilator.tar.bz2 ./verilator/$OSDIR
} }
sv2v() sv2v()
{ {
echo "prebuilt sv2v..." echo "prebuilt sv2v..."
tar -C $SRCDIR -cvjf sv2v.tar.bz2 sv2v tar -C $TOOLDIR -cvjf sv2v.tar.bz2 sv2v
mv sv2v.tar.bz2 $DESTDIR/sv2v/$OS_DIR mv sv2v.tar.bz2 ./sv2v/$OSDIR
} }
yosys() yosys()
{ {
echo "prebuilt yosys..." echo "prebuilt yosys..."
tar -C $SRCDIR -cvjf yosys.tar.bz2 yosys tar -C $TOOLDIR -cvjf yosys.tar.bz2 yosys
split -b 50M yosys.tar.bz2 "yosys.tar.bz2.part" split -b 50M yosys.tar.bz2 "yosys.tar.bz2.part"
mv yosys.tar.bz2.part* $DESTDIR/yosys/$OS_DIR mv yosys.tar.bz2.part* ./yosys/$OSDIR
rm yosys.tar.bz2 rm yosys.tar.bz2
} }

View file

@ -21,7 +21,7 @@ import subprocess
# This script executes a long-running command while outputing "still running ..." periodically # This script executes a long-running command while outputing "still running ..." periodically
# to notify Travis build system that the program has not hanged # to notify Travis build system that the program has not hanged
PING_INTERVAL=15 PING_INTERVAL=300 # 5 minutes
def monitor(stop): def monitor(stop):
wait_time = 0 wait_time = 0

View file

@ -116,7 +116,7 @@ CXXFLAGS += -DNOPAE
PROJECT = libopae-c-sim.so PROJECT = libopae-c-sim.so
all: $(PROJECT) all: $(DESTDIR)/$(PROJECT)
$(DESTDIR)/vortex.xml: $(DESTDIR)/vortex.xml:
verilator --xml-only -O0 $(VL_FLAGS) $(TOP) --xml-output $(DESTDIR)/vortex.xml verilator --xml-only -O0 $(VL_FLAGS) $(TOP) --xml-output $(DESTDIR)/vortex.xml

View file

@ -85,7 +85,7 @@ endif
PROJECT = rtlsim PROJECT = rtlsim
all: $(PROJECT) all: $(DESTDIR)/$(PROJECT)
$(DESTDIR)/$(PROJECT): $(SRCS) main.cpp $(DESTDIR)/$(PROJECT): $(SRCS) main.cpp
verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS) -DSTARTUP_ADDR=0x80000000' -LDFLAGS '$(LDFLAGS)' -o ../$@ verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS) -DSTARTUP_ADDR=0x80000000' -LDFLAGS '$(LDFLAGS)' -o ../$@

View file

@ -38,6 +38,7 @@ K_LDFLAGS += -Wl,-Bstatic,--gc-sections,-T$(VORTEX_KN_PATH)/linker/vx_link$(XLE
CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors
CXXFLAGS += -Wno-deprecated-declarations -Wno-unused-parameter -Wno-narrowing CXXFLAGS += -Wno-deprecated-declarations -Wno-unused-parameter -Wno-narrowing
CXXFLAGS += -pthread
CXXFLAGS += -I$(POCL_RT_PATH)/include CXXFLAGS += -I$(POCL_RT_PATH)/include
LDFLAGS += -L$(POCL_RT_PATH)/lib -L$(VORTEX_RT_PATH)/stub -lvortex LDFLAGS += -L$(POCL_RT_PATH)/lib -L$(VORTEX_RT_PATH)/stub -lvortex