mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-06-28 01:28:42 -04:00
Merge branch 'develop'
This commit is contained in:
commit
64dc5e1667
10 changed files with 139 additions and 157 deletions
82
.travis.yml
82
.travis.yml
|
@ -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
|
||||||
|
|
13
README.md
13
README.md
|
@ -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
|
||||||
|
|
|
@ -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
29
ci/toolchain_env.sh
Normal 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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ../$@
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue