ちょっといろいろ試行したくて、NaxRISCVを実行してみる。
# Get the repo git clone https://github.com/SpinalHDL/SpinalHDL.git --recursive git clone https://github.com/SpinalHDL/NaxRiscv.git --recursive cd NaxRiscv export NAXRISCV=${PWD} (cd ext/NaxSoftware && ./init.sh) # Building riscv-isa-sim (spike), used as a golden model during the sim to check the dut behaviour (lock-step) sudo apt-get install device-tree-compiler cd $NAXRISCV/ext/riscv-isa-sim mkdir build cd build ../configure --prefix=$RISCV --enable-commitlog --without-boost --without-boost-asio --without-boost-regex make -j$(nproc) g++ --shared -L. -Wl,--export-dynamic -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib -o package.so spike.o libspike_main.a libriscv.a libdisasm.a libsoftfloat.a libfesvr.a libfdt.a -lpthread -ldl -lboost_regex -lboost_system -lpthread -lboost_system -lboost_regex # Install ELFIO, used to load elf file in the sim git clone https://github.com/serge1/ELFIO.git cd ELFIO sudo cp -R elfio /usr/include # Install Verilator sudo apt-get install git make autoconf g++ flex bison git clone http://git.veripool.org/git/verilator # Only first time unsetenv VERILATOR_ROOT # For csh; ignore error if on bash unset VERILATOR_ROOT # For bash cd verilator git pull # Make sure we're up-to-date git checkout v4.216 autoconf # Create ./configure script ./configure make sudo make install # Generate NaxRiscv cd $NAXRISCV sbt "runMain naxriscv.Gen" # Install SDL2, allowing the simulation to display a framebuffer sudo apt-get install libsdl2-2.0-0 libsdl2-dev # Compile the simulator cd $NAXRISCV/src/test/cpp/naxriscv make compile
一応これでDhrystoneのシミュレーションが実行できた。
Int_Glob: 5
should be: 5
Bool_Glob: 1
should be: 1
Ch_1_Glob: A
should be: A
Ch_2_Glob: B
should be: B
Arr_1_Glob[8]: 7
should be: 7
Arr_2_Glob[8][7]: 5510
should be: Number_Of_Runs + 10
Ptr_Glob->
Ptr_Comp: -2147463360
should be: (implementation-dependent)
Discr: 0
should be: 0
Enum_Comp: 2
should be: 2
Int_Comp: 17
should be: 17
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
Ptr_Comp: -2147463360
should be: (implementation-dependent), same as above
Discr: 0
should be: 0
Enum_Comp: 1
should be: 1
Int_Comp: 18
should be: 18
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc: 5
should be: 5
Int_2_Loc: 13
should be: 13
Int_3_Loc: 7
should be: 7
Enum_Loc: 1
should be: 1
Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING
should be: DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING
should be: DHRYSTONE PROGRAM, 2'ND STRING
Microseconds for one run through Dhrystone: 16
Dhrystones per Second: 61851
User_Time : 970060
Number_Of_Runs : 5000
HZ : 12000000
DMIPS per Mhz: 2.93
SUCCESS ???