ちょっといろいろ試行したくて、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 ???