FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

TenstorrentのオープンソースRISC-Vベクトルプロセッサ実装Ocelotを試す (3. いくつかのテストケースを確認する)

Tenstorrentが、オープンソースRISC-VベクトルプロセッサOcelotを公開した。

github.com

Oceletの環境にて、以前作成したmemcpyのコードを実行してみた。しかしなぜかエラーが出る。

copy_data_vec:
    mv      a3, a0          # Copy destination
.loop:
    vsetvli t0, a3, e8,m1   # Vectors of 8b
    vle8.v  v0, (a1)        # Load bytes
    add     a1, a1, t0          # Bump pointer
    sub     a2, a2, t0          # Decrement count
    vse8.v  v0, (a3)            # Store bytes
    add     a3, a3, t0          # Bump pointer
    bnez    a2, .loop           # Any more?
    ret                         # Return

もしやと思って全部のテストコードを流してみた。やっぱりアサーションで落ちる。これは基本的なコンフィグレーションがうまく動いていないのでは?

make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-andi.out] Error 255
[7000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-bne.out] Error 255
[7000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-slti.out] Error 255
[7000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-srai.out] Error 255
[8000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-slli.out] Error 255
[7000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-beq.out] Error 255
[7000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomVecConfig/chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomVecConfig/rv64ui-p-addi.out] Error 255
[8000] %Error: chipyard.TestHarness.MediumBoomVecConfig.top.v:411484: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor

MediumBoomVecConfig以外でも試してみたほうがよさそうだ。RocketConfigとMediumConfigで作ってみよう。

$ make CONFIG=MediumBoomConfig

MediumBoomConfigでもだめ。

make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-lbu.out] Error 255
[24000] %Error: chipyard.TestHarness.MediumBoomConfig.top.v:374485: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomConfig/chipyard.TestHarness.MediumBoomConfig.top.v:374485: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-lb.out] Error 255
[24000] %Error: chipyard.TestHarness.MediumBoomConfig.top.v:374485: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomConfig/chipyard.TestHarness.MediumBoomConfig.top.v:374485: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-lw.out] Error 255
[24000] %Error: chipyard.TestHarness.MediumBoomConfig.top.v:374485: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomConfig/chipyard.TestHarness.MediumBoomConfig.top.v:374485: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-lh.out] Error 255
[24000] %Error: chipyard.TestHarness.MediumBoomConfig.top.v:374485: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomConfig/chipyard.TestHarness.MediumBoomConfig.top.v:374485: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-lhu.out] Error 255
[26000] %Error: chipyard.TestHarness.MediumBoomConfig.top.v:374725: Assertion failed in TOP.TestHarness.chiptop.system.tile_prci_domain.buffer_1.monitor
%Error: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/generated-src/chipyard.TestHarness.MediumBoomConfig/chipyard.TestHarness.MediumBoomConfig.top.v:374725: Verilog $stop
Aborting...
make: *** [/home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/common.mk:256: /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.MediumBoomConfig/rv64ui-p-sb.out] Error 255
$ make CONFIG=RocketConfig

RocketConfigならOKだ。BOOMの何かが壊れている?

  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-jal.out   Completed after 130229 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-jalr.out          Completed after 130359 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lb.out    Completed after 162306 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lbu.out   Completed after 161930 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lh.out    Completed after 161690 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lhu.out   Completed after 161199 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lui.out   Completed after 130240 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lw.out    Completed after 162285 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-or.out    Completed after 161743 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-ori.out   Completed after 130598 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sb.out    Completed after 179195 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sh.out    Completed after 180116 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sw.out    Completed after 178449 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sll.out   Completed after 161702 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-slli.out          Completed after 148295 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-slt.out   Completed after 149050 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-slti.out          Completed after 130733 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sra.out   Completed after 161647 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-srai.out          Completed after 130739 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-srl.out   Completed after 161967 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-srli.out          Completed after 148298 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sub.out   Completed after 148792 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-xor.out   Completed after 162092 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-xori.out          Completed after 130593 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-addw.out          Completed after 148825 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-addiw.out         Completed after 130707 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-ld.out    Completed after 178937 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-lwu.out   Completed after 161247 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sd.out    Completed after 193188 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-slliw.out         Completed after 148325 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sllw.out          Completed after 161734 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sltiu.out         Completed after 130733 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sltu.out          Completed after 161569 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sraiw.out         Completed after 148398 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-sraw.out          Completed after 161964 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-srliw.out         Completed after 148349 cycles
  [ PASSED ] /home/msyksphinz/work/riscv/chipyard/chipyard-ocelot/sims/verilator/output/chipyard.TestHarness.RocketConfig/rv64ui-v-srlw.out          Completed after 162426 cycles