FPGA開発日記

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

RISC-Vのランダムテストriscv-tortureを試す (2. メンテナンスによるアップデート)

f:id:msyksphinz:20180909010643p:plain

riscv-torture(ランダムテストパタン)はしばらくメンテナンスされていなかったのだが、最近アップデートされて一応makeが通るようになった。 自作CPUのランダムテストパタンとして使用することにする。

github.com

RISC-V TortureのConfiguration

Tortureの生成パタンの構成を変えたいときは、config/*.configを変更するとよいらしい。

  • config/default.config
torture.generator.nseqs     200
torture.generator.memsize   1024
torture.generator.fprnd     0
torture.generator.amo       true
torture.generator.mul       true
torture.generator.divider   true
torture.generator.segment   true
torture.generator.loop      true
torture.generator.loop_size 64

torture.generator.mix.xmem    10
torture.generator.mix.xbranch 20
torture.generator.mix.xalu    50
torture.generator.mix.fgen    10
torture.generator.mix.fpmem   5
torture.generator.mix.fax     3
torture.generator.mix.fdiv    2
torture.generator.mix.vec     0
...

このxmemからvecまでの数値が合計100になっていればよい。これがランダムパタンの生成確率に相当している。 例えば以下のように変更する。

torture.generator.mix.xmem    30
torture.generator.mix.xbranch 20
torture.generator.mix.xalu    50
torture.generator.mix.fgen    0
torture.generator.mix.fpmem   0
torture.generator.mix.fax     0
torture.generator.mix.fdiv    0
torture.generator.mix.vec     0

これでテストパタンを生成してみる。単純にmakeと打てばよろしい。output/test.Sにテストが生成される。

        ld x30, 240(x31)
        ld x31, 248(x31)

        j pseg_0

pseg_12:
        addi x30, x0, 110
        sll x28, x28, 63
        addi x24, x0, -1
        add x5, x22, x30
        la x20, test_memory+655
        xor x24, x24, x28
        addi x7, x13, 0
        addi x25, x0, 1601
        la x2, test_memory-1770
        addi x11, x0, 352
        addi x5, x0, 0
        and x6, x29, x24
        la x27, test_memory-1117
        add x9, x25, x25
        ld x4, 2010(x2)
        addi x30, x0, 0
        srliw x29, x1, 0
        la x17, test_memory+1010
        ld x21, 215(x23)
        sltu x26, x31, x31
        la x19, test_memory-553
...

で、一応自作CPUで動かしてみたらさっそくハングした。デバッグ開始だ...