Giter Club home page Giter Club logo

sim-env's Introduction

プロセッサシミュレーションのための環境個築スクリプト

  • このリポジトリは以下を含んでいます
    • RISC-V cross compilers
    • RISC-V qemu
    • SPEC CPU 2006/2017 data/binaries
  • Docker 環境を使用してクロスコンパイラや QEMU,SPEC CPU のコンパイルを行います
  • 事前に Docker のインストールと,Docker が起動できるよう権限の設定を行っておいてく ださい

クイックスタート

まず以下の docker-build を行ってから,Docker 環境内で各ツールのビルドを行ってください

# Docker 環境の構築
make docker-build

# Docker 環境に入る
make docker-run

# 他のディレクトリから Docker 環境に入るために launch.sh を使う事もできる
./launch.sh     

クロスコンパイラの生成と起動

# Docker 環境の構築(make docker-build)をあらかじめ済ましておく
cd riscv-compiler
../launch.sh
make clone
make build_riscv64_linux_1410 -j$(nproc)
~/opt/gcc/riscv64-linux/14.1/bin/riscv64-unknown-linux-gnu-gcc

QEMU の生成

cd riscv-qemu
../launch.sh
make clone 
make build  -j$(nproc)

その他

# 以下のオプションにより /dev/shm を /tmp にマウントして Docker 環境に入る
# メモリが非常にたくさんある場合,/tmp がメモリ上にあるためビルドが高速に行える
SIM_ENV_USE_TMPFS=1 ./launch.sh

Docker 環境

  • 生成される Docker 環境は /home をマウントし,起動者の権限で起動されます

クロスコンパイラ

  • クロスコンパイラはデフォルトでは Docker 外の /${HOME}/opt/gcc に生成されます
  • デフォルトでは Docker 内の /tmp に中間ファイルやソースコードを置いてビルドします
  • 生成されるクロスコンパイラは rv64g or rv32g をターゲットとして生成されます
    • ユーザープログラムは任意の ISA を指定できますが,libc は rv64g/rv32g によりコンパイルされたものが使用されます
  • ビルドするバージョンや ISA の指定は,riscv-compiler/Makefile 内を参照して指定してください
    • ターゲットの例:
        # glibc rv64g 14.1
        make build_riscv64_linux_1410
        # newlib rv32g 14.1
        make build_riscv32_elf_1410

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.