Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

BluespecのRISC-V CoreをBluespecとVerilatorでシミュレーションしてみる(その1)

はじめに

Bluespecがgithubに公開している下記の3つCPUコア

  • Piccolo: 3-stage, in-order pipeline
  • Flute: 5-stage, in-order pipeline
  • Toooba: superscalar, out-of-order pipeline, slight variation on MIT's RISCY-OOO

BluespecとVerilatorにてシミュレーションができます。

RISCV GCC のインストール

riscv64-unknown-elf-gcc をビルド&インストールします。

を参考にしました。

Bluespec のインストール

Bluespecのインストールは、BluespecのAWSteria_Infraを調べる(その1) の最初にやっているのでそこを参照してください。

Bluespecのビルド後にインストールディレクトリをPATHに追加します。

Verilatorの準備

Verilatorは、v5.002 を使います。v5.002 より前のバージョンではビルドできない可能性があります。

Piccolo のビルドと実行

Piccolo の repo を clone 後、

git submodule update --init --recursive
cd builds
ls
RV32ACDFIMSU_Piccolo_bluesim    RV32ACIMU_Piccolo_DM_verilator  RV32ACIMU_Piccolo_verilator    RV64ACDFIMSU_Piccolo_verilator  RV64ACIMU_Piccolo_verilator
RV32ACDFIMSU_Piccolo_iverilog   RV32ACIMU_Piccolo_bluesim       RV64ACDFIMSU_Piccolo_bluesim   RV64ACIMU_Piccolo_bluesim       Resources
RV32ACDFIMSU_Piccolo_verilator  RV32ACIMU_Piccolo_iverilog      RV64ACDFIMSU_Piccolo_iverilog  RV64ACIMU_Piccolo_iverilog

色々なコンフィギュレーションがあります。ここでは、RV64ACDFIMSU_Piccolo_bluesim と RV64ACDFIMSU_Piccolo_verilatorをビルドおよび実行してみます。

$ cd RV64ACDFIMSU_Piccolo_bluesim
$ make all
$ make test
make -C  ../../Tests/elf_to_hex
make[1]: Entering directory '/mnt/c/Users/haray/home/src/Piccolo/Tests/elf_to_hex'
make[1]: 'elf_to_hex' is up to date.
make[1]: Leaving directory '/mnt/c/Users/haray/home/src/Piccolo/Tests/elf_to_hex'

ここで elf を hex に変換するプログラムをビルドしています。

../../Tests/elf_to_hex/elf_to_hex  ../../Tests/isa/rv64ui-p-add  Mem.hex
c_mem_load_elf: ../../Tests/isa/rv64ui-p-add is a 64-bit ELF file
Section .text.init      : addr         80000000 to addr         80000644; size 0x     644 (= 1604) bytes
Section .tohost         : addr         80001000 to addr         80001048; size 0x      48 (= 72) bytes
Section .riscv.attributes: Ignored
Section .symtab         : Searching for addresses of '_start', 'exit' and 'tohost' symbols
Writing symbols to:    symbol_table.txt
    No 'exit' label found
Section .strtab         : Ignored
Section .shstrtab       : Ignored
Min addr:                    80000000 (hex)
Max addr:                    80001047 (hex)
Writing mem hex to file 'Mem.hex'

ここで elf_to_hex プログラムで elf を Mem.hex に変換しています。

以下、シミュレーションが実行されます。

Subtracting 0x80000000 base from addresses
./exe_HW_sim  +v1  +tohost
Warning: file 'Mem.hex' for memory 'rf' has a gap at addresses 131 to 8388606.
Warning: RegFile 'top.mem_model.rf' -- Read address is out of bounds: 0xaaaaaaaaaaaaaaaa
1: top.soc_top.boot_rom_axi4_deburster::AXI4_Deburster.rl_reset
================================================================
Bluespec RISC-V standalone system simulation v1.2
Copyright (c) 2017-2019 Bluespec, Inc. All Rights Reserved.
================================================================
INFO: watch_tohost = 1, tohost_addr = 0x80001000
1: top.soc_top.mem0_controller_axi4_deburster::AXI4_Deburster.rl_reset
2:top.soc_top.rl_reset_start_initial ...
3: Core.rl_cpu_hart0_reset_from_soc_start
================================================================
CPU: Bluespec  RISC-V  Piccolo  v3.0 (RV64)
Copyright (c) 2016-2020 Bluespec, Inc. All Rights Reserved.
================================================================
3: top.soc_top.core.cpu.rl_reset_start
71: top.soc_top.core.cpu.rl_reset_complete: restart at PC = 0x1000
73: Near_Mem_IO_AXI4.set_addr_map: addr_base 0x2000000 addr_lim 0x200c000
73: Core.rl_cpu_hart0_reset_complete
74: Mem_Controller.set_addr_map: addr_base 0x80000000 addr_lim 0x90000000
74:top.soc_top.rl_reset_complete_initial
instret:0  PC:0x1000  instr:0x297  priv:3
instret:1  PC:0x1004  instr:0x2028593  priv:3
instret:2  PC:0x1008  instr:0xf1402573  priv:3
instret:3  PC:0x100c  instr:0x182b283  priv:3
instret:4  PC:0x1010  instr:0x28067  priv:3
instret:5  PC:0x80000000  instr:0x4c0006f  priv:3
instret:6  PC:0x8000004c  instr:0xf1402573  priv:3
instret:7  PC:0x80000050  instr:0x51063  priv:3
instret:8  PC:0x80000054  instr:0x297  priv:3
instret:9  PC:0x80000058  instr:0x1028293  priv:3
instret:10  PC:0x8000005c  instr:0x30529073  priv:3
instret:11  PC:0x80000060  instr:0x18005073  priv:3
instret:12  PC:0x80000064  instr:0x297  priv:3
instret:13  PC:0x80000068  instr:0x2428293  priv:3
instret:14  PC:0x8000006c  instr:0x30529073  priv:3
instret:15  PC:0x80000070  instr:0x10029b  priv:3
instret:16  PC:0x80000074  instr:0x3529293  priv:3
instret:17  PC:0x80000078  instr:0xfff28293  priv:3
instret:18  PC:0x8000007c  instr:0x3b029073  priv:3
    mcause:0x2  epc 0x8000007c  tval:0x3b029073  next_pc 0x80000088, new_priv 3 new_mstatus 0xa00003800
instret:18  PC:0x80000088  instr:0x297  priv:3
instret:19  PC:0x8000008c  instr:0x1828293  priv:3
instret:20  PC:0x80000090  instr:0x30529073  priv:3
instret:21  PC:0x80000094  instr:0x30205073  priv:3
instret:22  PC:0x80000098  instr:0x30305073  priv:3
instret:23  PC:0x8000009c  instr:0x30405073  priv:3
instret:24  PC:0x800000a0  instr:0x193  priv:3
instret:25  PC:0x800000a4  instr:0x297  priv:3
instret:26  PC:0x800000a8  instr:0xf6028293  priv:3
instret:27  PC:0x800000ac  instr:0x30529073  priv:3
instret:28  PC:0x800000b0  instr:0x100513  priv:3
instret:29  PC:0x800000b4  instr:0x1f51513  priv:3
instret:30  PC:0x800000b8  instr:0x55863  priv:3
instret:31  PC:0x800000c8  instr:0x80000297  priv:3
instret:32  PC:0x800000cc  instr:0xf3828293  priv:3
instret:33  PC:0x800000d0  instr:0x28e63  priv:3
instret:34  PC:0x800000ec  instr:0x30005073  priv:3
instret:35  PC:0x800000f0  instr:0x297  priv:3
instret:36  PC:0x800000f4  instr:0x1428293  priv:3
instret:37  PC:0x800000f8  instr:0x34129073  priv:3
instret:38  PC:0x800000fc  instr:0xf1402573  priv:3
instret:39  PC:0x80000100  instr:0x30200073  priv:3
    xRET: next_pc:0x80000104  new mstatus:0xa00000080  new priv:0
instret:40  PC:0x80000104  instr:0x93  priv:0
instret:41  PC:0x80000108  instr:0x113  priv:0
instret:42  PC:0x8000010c  instr:0x208f33  priv:0
instret:43  PC:0x80000110  instr:0xe93  priv:0
instret:44  PC:0x80000114  instr:0x200193  priv:0
instret:45  PC:0x80000118  instr:0x4fdf1063  priv:0
instret:46  PC:0x8000011c  instr:0x100093  priv:0
instret:47  PC:0x80000120  instr:0x100113  priv:0
instret:48  PC:0x80000124  instr:0x208f33  priv:0
instret:49  PC:0x80000128  instr:0x200e93  priv:0
instret:50  PC:0x8000012c  instr:0x300193  priv:0
instret:51  PC:0x80000130  instr:0x4ddf1463  priv:0
instret:52  PC:0x80000134  instr:0x300093  priv:0
instret:53  PC:0x80000138  instr:0x700113  priv:0
instret:54  PC:0x8000013c  instr:0x208f33  priv:0
instret:55  PC:0x80000140  instr:0xa00e93  priv:0
instret:56  PC:0x80000144  instr:0x400193  priv:0
instret:57  PC:0x80000148  instr:0x4bdf1863  priv:0
instret:58  PC:0x8000014c  instr:0x93  priv:0
instret:59  PC:0x80000150  instr:0xffff8137  priv:0
instret:60  PC:0x80000154  instr:0x208f33  priv:0
instret:61  PC:0x80000158  instr:0xffff8eb7  priv:0
instret:62  PC:0x8000015c  instr:0x500193  priv:0
instret:63  PC:0x80000160  instr:0x49df1c63  priv:0
instret:64  PC:0x80000164  instr:0x800000b7  priv:0
instret:65  PC:0x80000168  instr:0x113  priv:0
instret:66  PC:0x8000016c  instr:0x208f33  priv:0
instret:67  PC:0x80000170  instr:0x80000eb7  priv:0
instret:68  PC:0x80000174  instr:0x600193  priv:0
instret:69  PC:0x80000178  instr:0x49df1063  priv:0
instret:70  PC:0x8000017c  instr:0x800000b7  priv:0
instret:71  PC:0x80000180  instr:0xffff8137  priv:0
instret:72  PC:0x80000184  instr:0x208f33  priv:0
instret:73  PC:0x80000188  instr:0xffff0eb7  priv:0
instret:74  PC:0x8000018c  instr:0xfffe8e9b  priv:0
instret:75  PC:0x80000190  instr:0xfe9e93  priv:0
instret:76  PC:0x80000194  instr:0x700193  priv:0
instret:77  PC:0x80000198  instr:0x47df1063  priv:0
instret:78  PC:0x8000019c  instr:0x93  priv:0
instret:79  PC:0x800001a0  instr:0x8137  priv:0
instret:80  PC:0x800001a4  instr:0xfff1011b  priv:0
instret:81  PC:0x800001a8  instr:0x208f33  priv:0
instret:82  PC:0x800001ac  instr:0x8eb7  priv:0
instret:83  PC:0x800001b0  instr:0xfffe8e9b  priv:0
instret:84  PC:0x800001b4  instr:0x800193  priv:0
instret:85  PC:0x800001b8  instr:0x45df1063  priv:0
instret:86  PC:0x800001bc  instr:0x800000b7  priv:0
instret:87  PC:0x800001c0  instr:0xfff0809b  priv:0
instret:88  PC:0x800001c4  instr:0x113  priv:0
instret:89  PC:0x800001c8  instr:0x208f33  priv:0
instret:90  PC:0x800001cc  instr:0x80000eb7  priv:0
instret:91  PC:0x800001d0  instr:0xfffe8e9b  priv:0
instret:92  PC:0x800001d4  instr:0x900193  priv:0
instret:93  PC:0x800001d8  instr:0x43df1063  priv:0
instret:94  PC:0x800001dc  instr:0x800000b7  priv:0
instret:95  PC:0x800001e0  instr:0xfff0809b  priv:0
instret:96  PC:0x800001e4  instr:0x8137  priv:0
instret:97  PC:0x800001e8  instr:0xfff1011b  priv:0
instret:98  PC:0x800001ec  instr:0x208f33  priv:0
instret:99  PC:0x800001f0  instr:0x10eb7  priv:0
instret:100  PC:0x800001f4  instr:0x1e8e9b  priv:0
instret:101  PC:0x800001f8  instr:0xfe9e93  priv:0
instret:102  PC:0x800001fc  instr:0xffee8e93  priv:0
instret:103  PC:0x80000200  instr:0xa00193  priv:0
instret:104  PC:0x80000204  instr:0x3fdf1a63  priv:0
instret:105  PC:0x80000208  instr:0x800000b7  priv:0
instret:106  PC:0x8000020c  instr:0x8137  priv:0
instret:107  PC:0x80000210  instr:0xfff1011b  priv:0
instret:108  PC:0x80000214  instr:0x208f33  priv:0
instret:109  PC:0x80000218  instr:0x80008eb7  priv:0
instret:110  PC:0x8000021c  instr:0xfffe8e9b  priv:0
instret:111  PC:0x80000220  instr:0xb00193  priv:0
instret:112  PC:0x80000224  instr:0x3ddf1a63  priv:0
instret:113  PC:0x80000228  instr:0x800000b7  priv:0
instret:114  PC:0x8000022c  instr:0xfff0809b  priv:0
instret:115  PC:0x80000230  instr:0xffff8137  priv:0
instret:116  PC:0x80000234  instr:0x208f33  priv:0
instret:117  PC:0x80000238  instr:0x7fff8eb7  priv:0
instret:118  PC:0x8000023c  instr:0xfffe8e9b  priv:0
instret:119  PC:0x80000240  instr:0xc00193  priv:0
instret:120  PC:0x80000244  instr:0x3bdf1a63  priv:0
instret:121  PC:0x80000248  instr:0x93  priv:0
instret:122  PC:0x8000024c  instr:0xfff00113  priv:0
instret:123  PC:0x80000250  instr:0x208f33  priv:0
instret:124  PC:0x80000254  instr:0xfff00e93  priv:0
instret:125  PC:0x80000258  instr:0xd00193  priv:0
instret:126  PC:0x8000025c  instr:0x39df1e63  priv:0
instret:127  PC:0x80000260  instr:0xfff00093  priv:0
instret:128  PC:0x80000264  instr:0x100113  priv:0
instret:129  PC:0x80000268  instr:0x208f33  priv:0
instret:130  PC:0x8000026c  instr:0xe93  priv:0
instret:131  PC:0x80000270  instr:0xe00193  priv:0
instret:132  PC:0x80000274  instr:0x39df1263  priv:0
instret:133  PC:0x80000278  instr:0xfff00093  priv:0
instret:134  PC:0x8000027c  instr:0xfff00113  priv:0
instret:135  PC:0x80000280  instr:0x208f33  priv:0
instret:136  PC:0x80000284  instr:0xffe00e93  priv:0
instret:137  PC:0x80000288  instr:0xf00193  priv:0
instret:138  PC:0x8000028c  instr:0x37df1663  priv:0
instret:139  PC:0x80000290  instr:0x100093  priv:0
instret:140  PC:0x80000294  instr:0x80000137  priv:0
instret:141  PC:0x80000298  instr:0xfff1011b  priv:0
instret:142  PC:0x8000029c  instr:0x208f33  priv:0
instret:143  PC:0x800002a0  instr:0x100e9b  priv:0
instret:144  PC:0x800002a4  instr:0x1fe9e93  priv:0
instret:145  PC:0x800002a8  instr:0x1000193  priv:0
instret:146  PC:0x800002ac  instr:0x35df1663  priv:0
instret:147  PC:0x800002b0  instr:0xd00093  priv:0
instret:148  PC:0x800002b4  instr:0xb00113  priv:0
instret:149  PC:0x800002b8  instr:0x2080b3  priv:0
instret:150  PC:0x800002bc  instr:0x1800e93  priv:0
instret:151  PC:0x800002c0  instr:0x1100193  priv:0
instret:152  PC:0x800002c4  instr:0x33d09a63  priv:0
instret:153  PC:0x800002c8  instr:0xe00093  priv:0
instret:154  PC:0x800002cc  instr:0xb00113  priv:0
instret:155  PC:0x800002d0  instr:0x208133  priv:0
instret:156  PC:0x800002d4  instr:0x1900e93  priv:0
instret:157  PC:0x800002d8  instr:0x1200193  priv:0
instret:158  PC:0x800002dc  instr:0x31d11e63  priv:0
instret:159  PC:0x800002e0  instr:0xd00093  priv:0
instret:160  PC:0x800002e4  instr:0x1080b3  priv:0
instret:161  PC:0x800002e8  instr:0x1a00e93  priv:0
instret:162  PC:0x800002ec  instr:0x1300193  priv:0
instret:163  PC:0x800002f0  instr:0x31d09463  priv:0
instret:164  PC:0x800002f4  instr:0x213  priv:0
instret:165  PC:0x800002f8  instr:0xd00093  priv:0
instret:166  PC:0x800002fc  instr:0xb00113  priv:0
instret:167  PC:0x80000300  instr:0x208f33  priv:0
instret:168  PC:0x80000304  instr:0xf0313  priv:0
instret:169  PC:0x80000308  instr:0x120213  priv:0
instret:170  PC:0x8000030c  instr:0x200293  priv:0
instret:171  PC:0x80000310  instr:0xfe5214e3  priv:0
instret:172  PC:0x800002f8  instr:0xd00093  priv:0
instret:173  PC:0x800002fc  instr:0xb00113  priv:0
instret:174  PC:0x80000300  instr:0x208f33  priv:0
instret:175  PC:0x80000304  instr:0xf0313  priv:0
instret:176  PC:0x80000308  instr:0x120213  priv:0
instret:177  PC:0x8000030c  instr:0x200293  priv:0
instret:178  PC:0x80000310  instr:0xfe5214e3  priv:0
instret:179  PC:0x80000314  instr:0x1800e93  priv:0
instret:180  PC:0x80000318  instr:0x1400193  priv:0
instret:181  PC:0x8000031c  instr:0x2dd31e63  priv:0
instret:182  PC:0x80000320  instr:0x213  priv:0
instret:183  PC:0x80000324  instr:0xe00093  priv:0
instret:184  PC:0x80000328  instr:0xb00113  priv:0
instret:185  PC:0x8000032c  instr:0x208f33  priv:0
instret:186  PC:0x80000330  instr:0x13  priv:0
instret:187  PC:0x80000334  instr:0xf0313  priv:0
instret:188  PC:0x80000338  instr:0x120213  priv:0
instret:189  PC:0x8000033c  instr:0x200293  priv:0
instret:190  PC:0x80000340  instr:0xfe5212e3  priv:0
instret:191  PC:0x80000324  instr:0xe00093  priv:0
instret:192  PC:0x80000328  instr:0xb00113  priv:0
instret:193  PC:0x8000032c  instr:0x208f33  priv:0
instret:194  PC:0x80000330  instr:0x13  priv:0
instret:195  PC:0x80000334  instr:0xf0313  priv:0
instret:196  PC:0x80000338  instr:0x120213  priv:0
instret:197  PC:0x8000033c  instr:0x200293  priv:0
instret:198  PC:0x80000340  instr:0xfe5212e3  priv:0
instret:199  PC:0x80000344  instr:0x1900e93  priv:0
instret:200  PC:0x80000348  instr:0x1500193  priv:0
instret:201  PC:0x8000034c  instr:0x2bd31663  priv:0
instret:202  PC:0x80000350  instr:0x213  priv:0
instret:203  PC:0x80000354  instr:0xf00093  priv:0
instret:204  PC:0x80000358  instr:0xb00113  priv:0
instret:205  PC:0x8000035c  instr:0x208f33  priv:0
instret:206  PC:0x80000360  instr:0x13  priv:0
instret:207  PC:0x80000364  instr:0x13  priv:0
instret:208  PC:0x80000368  instr:0xf0313  priv:0
instret:209  PC:0x8000036c  instr:0x120213  priv:0
instret:210  PC:0x80000370  instr:0x200293  priv:0
instret:211  PC:0x80000374  instr:0xfe5210e3  priv:0
instret:212  PC:0x80000354  instr:0xf00093  priv:0
instret:213  PC:0x80000358  instr:0xb00113  priv:0
instret:214  PC:0x8000035c  instr:0x208f33  priv:0
instret:215  PC:0x80000360  instr:0x13  priv:0
instret:216  PC:0x80000364  instr:0x13  priv:0
instret:217  PC:0x80000368  instr:0xf0313  priv:0
instret:218  PC:0x8000036c  instr:0x120213  priv:0
instret:219  PC:0x80000370  instr:0x200293  priv:0
instret:220  PC:0x80000374  instr:0xfe5210e3  priv:0
instret:221  PC:0x80000378  instr:0x1a00e93  priv:0
instret:222  PC:0x8000037c  instr:0x1600193  priv:0
instret:223  PC:0x80000380  instr:0x27d31c63  priv:0
instret:224  PC:0x80000384  instr:0x213  priv:0
instret:225  PC:0x80000388  instr:0xd00093  priv:0
instret:226  PC:0x8000038c  instr:0xb00113  priv:0
instret:227  PC:0x80000390  instr:0x208f33  priv:0
instret:228  PC:0x80000394  instr:0x120213  priv:0
instret:229  PC:0x80000398  instr:0x200293  priv:0
instret:230  PC:0x8000039c  instr:0xfe5216e3  priv:0
instret:231  PC:0x80000388  instr:0xd00093  priv:0
instret:232  PC:0x8000038c  instr:0xb00113  priv:0
instret:233  PC:0x80000390  instr:0x208f33  priv:0
instret:234  PC:0x80000394  instr:0x120213  priv:0
instret:235  PC:0x80000398  instr:0x200293  priv:0
instret:236  PC:0x8000039c  instr:0xfe5216e3  priv:0
instret:237  PC:0x800003a0  instr:0x1800e93  priv:0
instret:238  PC:0x800003a4  instr:0x1700193  priv:0
instret:239  PC:0x800003a8  instr:0x25df1863  priv:0
instret:240  PC:0x800003ac  instr:0x213  priv:0
instret:241  PC:0x800003b0  instr:0xe00093  priv:0
instret:242  PC:0x800003b4  instr:0xb00113  priv:0
instret:243  PC:0x800003b8  instr:0x13  priv:0
instret:244  PC:0x800003bc  instr:0x208f33  priv:0
instret:245  PC:0x800003c0  instr:0x120213  priv:0
instret:246  PC:0x800003c4  instr:0x200293  priv:0
instret:247  PC:0x800003c8  instr:0xfe5214e3  priv:0
instret:248  PC:0x800003b0  instr:0xe00093  priv:0
instret:249  PC:0x800003b4  instr:0xb00113  priv:0
instret:250  PC:0x800003b8  instr:0x13  priv:0
instret:251  PC:0x800003bc  instr:0x208f33  priv:0
instret:252  PC:0x800003c0  instr:0x120213  priv:0
instret:253  PC:0x800003c4  instr:0x200293  priv:0
instret:254  PC:0x800003c8  instr:0xfe5214e3  priv:0
instret:255  PC:0x800003cc  instr:0x1900e93  priv:0
instret:256  PC:0x800003d0  instr:0x1800193  priv:0
instret:257  PC:0x800003d4  instr:0x23df1263  priv:0
instret:258  PC:0x800003d8  instr:0x213  priv:0
instret:259  PC:0x800003dc  instr:0xf00093  priv:0
instret:260  PC:0x800003e0  instr:0xb00113  priv:0
instret:261  PC:0x800003e4  instr:0x13  priv:0
instret:262  PC:0x800003e8  instr:0x13  priv:0
instret:263  PC:0x800003ec  instr:0x208f33  priv:0
instret:264  PC:0x800003f0  instr:0x120213  priv:0
instret:265  PC:0x800003f4  instr:0x200293  priv:0
instret:266  PC:0x800003f8  instr:0xfe5212e3  priv:0
instret:267  PC:0x800003dc  instr:0xf00093  priv:0
instret:268  PC:0x800003e0  instr:0xb00113  priv:0
instret:269  PC:0x800003e4  instr:0x13  priv:0
instret:270  PC:0x800003e8  instr:0x13  priv:0
instret:271  PC:0x800003ec  instr:0x208f33  priv:0
instret:272  PC:0x800003f0  instr:0x120213  priv:0
instret:273  PC:0x800003f4  instr:0x200293  priv:0
instret:274  PC:0x800003f8  instr:0xfe5212e3  priv:0
instret:275  PC:0x800003fc  instr:0x1a00e93  priv:0
instret:276  PC:0x80000400  instr:0x1900193  priv:0
instret:277  PC:0x80000404  instr:0x1fdf1a63  priv:0
instret:278  PC:0x80000408  instr:0x213  priv:0
instret:279  PC:0x8000040c  instr:0xd00093  priv:0
instret:280  PC:0x80000410  instr:0x13  priv:0
instret:281  PC:0x80000414  instr:0xb00113  priv:0
instret:282  PC:0x80000418  instr:0x208f33  priv:0
instret:283  PC:0x8000041c  instr:0x120213  priv:0
instret:284  PC:0x80000420  instr:0x200293  priv:0
instret:285  PC:0x80000424  instr:0xfe5214e3  priv:0
instret:286  PC:0x8000040c  instr:0xd00093  priv:0
instret:287  PC:0x80000410  instr:0x13  priv:0
instret:288  PC:0x80000414  instr:0xb00113  priv:0
instret:289  PC:0x80000418  instr:0x208f33  priv:0
instret:290  PC:0x8000041c  instr:0x120213  priv:0
instret:291  PC:0x80000420  instr:0x200293  priv:0
instret:292  PC:0x80000424  instr:0xfe5214e3  priv:0
instret:293  PC:0x80000428  instr:0x1800e93  priv:0
instret:294  PC:0x8000042c  instr:0x1a00193  priv:0
instret:295  PC:0x80000430  instr:0x1ddf1463  priv:0
instret:296  PC:0x80000434  instr:0x213  priv:0
instret:297  PC:0x80000438  instr:0xe00093  priv:0
instret:298  PC:0x8000043c  instr:0x13  priv:0
instret:299  PC:0x80000440  instr:0xb00113  priv:0
instret:300  PC:0x80000444  instr:0x13  priv:0
instret:301  PC:0x80000448  instr:0x208f33  priv:0
instret:302  PC:0x8000044c  instr:0x120213  priv:0
instret:303  PC:0x80000450  instr:0x200293  priv:0
instret:304  PC:0x80000454  instr:0xfe5212e3  priv:0
instret:305  PC:0x80000438  instr:0xe00093  priv:0
instret:306  PC:0x8000043c  instr:0x13  priv:0
instret:307  PC:0x80000440  instr:0xb00113  priv:0
instret:308  PC:0x80000444  instr:0x13  priv:0
instret:309  PC:0x80000448  instr:0x208f33  priv:0
instret:310  PC:0x8000044c  instr:0x120213  priv:0
instret:311  PC:0x80000450  instr:0x200293  priv:0
instret:312  PC:0x80000454  instr:0xfe5212e3  priv:0
instret:313  PC:0x80000458  instr:0x1900e93  priv:0
instret:314  PC:0x8000045c  instr:0x1b00193  priv:0
instret:315  PC:0x80000460  instr:0x19df1c63  priv:0
instret:316  PC:0x80000464  instr:0x213  priv:0
instret:317  PC:0x80000468  instr:0xf00093  priv:0
instret:318  PC:0x8000046c  instr:0x13  priv:0
instret:319  PC:0x80000470  instr:0x13  priv:0
instret:320  PC:0x80000474  instr:0xb00113  priv:0
instret:321  PC:0x80000478  instr:0x208f33  priv:0
instret:322  PC:0x8000047c  instr:0x120213  priv:0
instret:323  PC:0x80000480  instr:0x200293  priv:0
instret:324  PC:0x80000484  instr:0xfe5212e3  priv:0
instret:325  PC:0x80000468  instr:0xf00093  priv:0
instret:326  PC:0x8000046c  instr:0x13  priv:0
instret:327  PC:0x80000470  instr:0x13  priv:0
instret:328  PC:0x80000474  instr:0xb00113  priv:0
instret:329  PC:0x80000478  instr:0x208f33  priv:0
instret:330  PC:0x8000047c  instr:0x120213  priv:0
instret:331  PC:0x80000480  instr:0x200293  priv:0
instret:332  PC:0x80000484  instr:0xfe5212e3  priv:0
instret:333  PC:0x80000488  instr:0x1a00e93  priv:0
instret:334  PC:0x8000048c  instr:0x1c00193  priv:0
instret:335  PC:0x80000490  instr:0x17df1463  priv:0
instret:336  PC:0x80000494  instr:0x213  priv:0
instret:337  PC:0x80000498  instr:0xb00113  priv:0
instret:338  PC:0x8000049c  instr:0xd00093  priv:0
instret:339  PC:0x800004a0  instr:0x208f33  priv:0
instret:340  PC:0x800004a4  instr:0x120213  priv:0
instret:341  PC:0x800004a8  instr:0x200293  priv:0
instret:342  PC:0x800004ac  instr:0xfe5216e3  priv:0
instret:343  PC:0x80000498  instr:0xb00113  priv:0
instret:344  PC:0x8000049c  instr:0xd00093  priv:0
instret:345  PC:0x800004a0  instr:0x208f33  priv:0
instret:346  PC:0x800004a4  instr:0x120213  priv:0
instret:347  PC:0x800004a8  instr:0x200293  priv:0
instret:348  PC:0x800004ac  instr:0xfe5216e3  priv:0
instret:349  PC:0x800004b0  instr:0x1800e93  priv:0
instret:350  PC:0x800004b4  instr:0x1d00193  priv:0
instret:351  PC:0x800004b8  instr:0x15df1063  priv:0
instret:352  PC:0x800004bc  instr:0x213  priv:0
instret:353  PC:0x800004c0  instr:0xb00113  priv:0
instret:354  PC:0x800004c4  instr:0xe00093  priv:0
instret:355  PC:0x800004c8  instr:0x13  priv:0
instret:356  PC:0x800004cc  instr:0x208f33  priv:0
instret:357  PC:0x800004d0  instr:0x120213  priv:0
instret:358  PC:0x800004d4  instr:0x200293  priv:0
instret:359  PC:0x800004d8  instr:0xfe5214e3  priv:0
instret:360  PC:0x800004c0  instr:0xb00113  priv:0
instret:361  PC:0x800004c4  instr:0xe00093  priv:0
instret:362  PC:0x800004c8  instr:0x13  priv:0
instret:363  PC:0x800004cc  instr:0x208f33  priv:0
instret:364  PC:0x800004d0  instr:0x120213  priv:0
instret:365  PC:0x800004d4  instr:0x200293  priv:0
instret:366  PC:0x800004d8  instr:0xfe5214e3  priv:0
instret:367  PC:0x800004dc  instr:0x1900e93  priv:0
instret:368  PC:0x800004e0  instr:0x1e00193  priv:0
instret:369  PC:0x800004e4  instr:0x11df1a63  priv:0
instret:370  PC:0x800004e8  instr:0x213  priv:0
instret:371  PC:0x800004ec  instr:0xb00113  priv:0
instret:372  PC:0x800004f0  instr:0xf00093  priv:0
instret:373  PC:0x800004f4  instr:0x13  priv:0
instret:374  PC:0x800004f8  instr:0x13  priv:0
instret:375  PC:0x800004fc  instr:0x208f33  priv:0
instret:376  PC:0x80000500  instr:0x120213  priv:0
instret:377  PC:0x80000504  instr:0x200293  priv:0
instret:378  PC:0x80000508  instr:0xfe5212e3  priv:0
instret:379  PC:0x800004ec  instr:0xb00113  priv:0
instret:380  PC:0x800004f0  instr:0xf00093  priv:0
instret:381  PC:0x800004f4  instr:0x13  priv:0
instret:382  PC:0x800004f8  instr:0x13  priv:0
instret:383  PC:0x800004fc  instr:0x208f33  priv:0
instret:384  PC:0x80000500  instr:0x120213  priv:0
instret:385  PC:0x80000504  instr:0x200293  priv:0
instret:386  PC:0x80000508  instr:0xfe5212e3  priv:0
instret:387  PC:0x8000050c  instr:0x1a00e93  priv:0
instret:388  PC:0x80000510  instr:0x1f00193  priv:0
instret:389  PC:0x80000514  instr:0xfdf1263  priv:0
instret:390  PC:0x80000518  instr:0x213  priv:0
instret:391  PC:0x8000051c  instr:0xb00113  priv:0
instret:392  PC:0x80000520  instr:0x13  priv:0
instret:393  PC:0x80000524  instr:0xd00093  priv:0
instret:394  PC:0x80000528  instr:0x208f33  priv:0
instret:395  PC:0x8000052c  instr:0x120213  priv:0
instret:396  PC:0x80000530  instr:0x200293  priv:0
instret:397  PC:0x80000534  instr:0xfe5214e3  priv:0
instret:398  PC:0x8000051c  instr:0xb00113  priv:0
instret:399  PC:0x80000520  instr:0x13  priv:0
instret:400  PC:0x80000524  instr:0xd00093  priv:0
instret:401  PC:0x80000528  instr:0x208f33  priv:0
instret:402  PC:0x8000052c  instr:0x120213  priv:0
instret:403  PC:0x80000530  instr:0x200293  priv:0
instret:404  PC:0x80000534  instr:0xfe5214e3  priv:0
instret:405  PC:0x80000538  instr:0x1800e93  priv:0
instret:406  PC:0x8000053c  instr:0x2000193  priv:0
instret:407  PC:0x80000540  instr:0xbdf1c63  priv:0
instret:408  PC:0x80000544  instr:0x213  priv:0
instret:409  PC:0x80000548  instr:0xb00113  priv:0
instret:410  PC:0x8000054c  instr:0x13  priv:0
instret:411  PC:0x80000550  instr:0xe00093  priv:0
instret:412  PC:0x80000554  instr:0x13  priv:0
instret:413  PC:0x80000558  instr:0x208f33  priv:0
instret:414  PC:0x8000055c  instr:0x120213  priv:0
instret:415  PC:0x80000560  instr:0x200293  priv:0
instret:416  PC:0x80000564  instr:0xfe5212e3  priv:0
instret:417  PC:0x80000548  instr:0xb00113  priv:0
instret:418  PC:0x8000054c  instr:0x13  priv:0
instret:419  PC:0x80000550  instr:0xe00093  priv:0
instret:420  PC:0x80000554  instr:0x13  priv:0
instret:421  PC:0x80000558  instr:0x208f33  priv:0
instret:422  PC:0x8000055c  instr:0x120213  priv:0
instret:423  PC:0x80000560  instr:0x200293  priv:0
instret:424  PC:0x80000564  instr:0xfe5212e3  priv:0
instret:425  PC:0x80000568  instr:0x1900e93  priv:0
instret:426  PC:0x8000056c  instr:0x2100193  priv:0
instret:427  PC:0x80000570  instr:0x9df1463  priv:0
instret:428  PC:0x80000574  instr:0x213  priv:0
instret:429  PC:0x80000578  instr:0xb00113  priv:0
instret:430  PC:0x8000057c  instr:0x13  priv:0
instret:431  PC:0x80000580  instr:0x13  priv:0
instret:432  PC:0x80000584  instr:0xf00093  priv:0
instret:433  PC:0x80000588  instr:0x208f33  priv:0
instret:434  PC:0x8000058c  instr:0x120213  priv:0
instret:435  PC:0x80000590  instr:0x200293  priv:0
instret:436  PC:0x80000594  instr:0xfe5212e3  priv:0
instret:437  PC:0x80000578  instr:0xb00113  priv:0
instret:438  PC:0x8000057c  instr:0x13  priv:0
instret:439  PC:0x80000580  instr:0x13  priv:0
instret:440  PC:0x80000584  instr:0xf00093  priv:0
instret:441  PC:0x80000588  instr:0x208f33  priv:0
instret:442  PC:0x8000058c  instr:0x120213  priv:0
instret:443  PC:0x80000590  instr:0x200293  priv:0
instret:444  PC:0x80000594  instr:0xfe5212e3  priv:0
instret:445  PC:0x80000598  instr:0x1a00e93  priv:0
instret:446  PC:0x8000059c  instr:0x2200193  priv:0
instret:447  PC:0x800005a0  instr:0x5df1c63  priv:0
instret:448  PC:0x800005a4  instr:0xf00093  priv:0
instret:449  PC:0x800005a8  instr:0x100133  priv:0
instret:450  PC:0x800005ac  instr:0xf00e93  priv:0
instret:451  PC:0x800005b0  instr:0x2300193  priv:0
instret:452  PC:0x800005b4  instr:0x5d11263  priv:0
instret:453  PC:0x800005b8  instr:0x2000093  priv:0
instret:454  PC:0x800005bc  instr:0x8133  priv:0
instret:455  PC:0x800005c0  instr:0x2000e93  priv:0
instret:456  PC:0x800005c4  instr:0x2400193  priv:0
instret:457  PC:0x800005c8  instr:0x3d11863  priv:0
instret:458  PC:0x800005cc  instr:0xb3  priv:0
instret:459  PC:0x800005d0  instr:0xe93  priv:0
instret:460  PC:0x800005d4  instr:0x2500193  priv:0
instret:461  PC:0x800005d8  instr:0x3d09063  priv:0
instret:462  PC:0x800005dc  instr:0x1000093  priv:0
instret:463  PC:0x800005e0  instr:0x1e00113  priv:0
instret:464  PC:0x800005e4  instr:0x208033  priv:0
instret:465  PC:0x800005e8  instr:0xe93  priv:0
instret:466  PC:0x800005ec  instr:0x2600193  priv:0
instret:467  PC:0x800005f0  instr:0x1d01463  priv:0
instret:468  PC:0x800005f4  instr:0x301c63  priv:0
instret:469  PC:0x8000060c  instr:0xff0000f  priv:0
instret:470  PC:0x80000610  instr:0x100193  priv:0
instret:471  PC:0x80000614  instr:0x73  priv:0
    mcause:0x8  epc 0x80000614  tval:0x0  next_pc 0x80000004, new_priv 3 new_mstatus 0xa00000000
instret:471  PC:0x80000004  instr:0x34202f73  priv:3
instret:472  PC:0x80000008  instr:0x800f93  priv:3
instret:473  PC:0x8000000c  instr:0x3ff0a63  priv:3
instret:474  PC:0x80000040  instr:0x1f17  priv:3
instret:475  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:476  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:477  PC:0x80000040  instr:0x1f17  priv:3
instret:478  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:479  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:480  PC:0x80000040  instr:0x1f17  priv:3
instret:481  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:482  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:483  PC:0x80000040  instr:0x1f17  priv:3
instret:484  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:485  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:486  PC:0x80000040  instr:0x1f17  priv:3
1504: Mem_Controller.rl_process_wr_req: addr 0x80001000 (<tohost>) data 0x1
PASS
1505: top:.rl_terminate: soc_top status is 0x1 (= 0d1)
Simulation speed: 1504 cycles, 50377315 nsecs  = 29854 cycles/sec```
$ cd RV64ACDFIMSU_Piccolo_verilator
$ make all
$ make test
make -C  ../../Tests/elf_to_hex
make[1]: Entering directory '/mnt/c/Users/haray/home/src/Piccolo/Tests/elf_to_hex'
make[1]: 'elf_to_hex' is up to date.
make[1]: Leaving directory '/mnt/c/Users/haray/home/src/Piccolo/Tests/elf_to_hex'
../../Tests/elf_to_hex/elf_to_hex  ../../Tests/isa/rv64ui-p-add  Mem.hex
c_mem_load_elf: ../../Tests/isa/rv64ui-p-add is a 64-bit ELF file
Section .text.init      : addr         80000000 to addr         80000644; size 0x     644 (= 1604) bytes
Section .tohost         : addr         80001000 to addr         80001048; size 0x      48 (= 72) bytes
Section .riscv.attributes: Ignored
Section .symtab         : Searching for addresses of '_start', 'exit' and 'tohost' symbols
Writing symbols to:    symbol_table.txt
    No 'exit' label found
Section .strtab         : Ignored
Section .shstrtab       : Ignored
Min addr:                    80000000 (hex)
Max addr:                    80001047 (hex)
Writing mem hex to file 'Mem.hex'
Subtracting 0x80000000 base from addresses
./exe_HW_sim  +v1  +tohost
1: TOP.mkTop_HW_Side.soc_top.boot_rom_axi4_deburster::AXI4_Deburster.rl_reset
1: TOP.mkTop_HW_Side.soc_top.mem0_controller_axi4_deburster::AXI4_Deburster.rl_reset
================================================================
Bluespec RISC-V standalone system simulation v1.2
Copyright (c) 2017-2019 Bluespec, Inc. All Rights Reserved.
================================================================
INFO: watch_tohost = 1, tohost_addr = 0x80001000
2:TOP.mkTop_HW_Side.soc_top.rl_reset_start_initial ...
3: Core.rl_cpu_hart0_reset_from_soc_start
================================================================
CPU: Bluespec  RISC-V  Piccolo  v3.0 (RV64)
Copyright (c) 2016-2020 Bluespec, Inc. All Rights Reserved.
================================================================
3: TOP.mkTop_HW_Side.soc_top.core.cpu.rl_reset_start
71: TOP.mkTop_HW_Side.soc_top.core.cpu.rl_reset_complete: restart at PC = 0x1000
73: Core.rl_cpu_hart0_reset_complete
73: Near_Mem_IO_AXI4.set_addr_map: addr_base 0x2000000 addr_lim 0x200c000
74:TOP.mkTop_HW_Side.soc_top.rl_reset_complete_initial
74: Mem_Controller.set_addr_map: addr_base 0x80000000 addr_lim 0x90000000
instret:0  PC:0x1000  instr:0x297  priv:3
instret:1  PC:0x1004  instr:0x2028593  priv:3
instret:2  PC:0x1008  instr:0xf1402573  priv:3
instret:3  PC:0x100c  instr:0x182b283  priv:3
instret:4  PC:0x1010  instr:0x28067  priv:3
instret:5  PC:0x80000000  instr:0x4c0006f  priv:3
instret:6  PC:0x8000004c  instr:0xf1402573  priv:3
instret:7  PC:0x80000050  instr:0x51063  priv:3
instret:8  PC:0x80000054  instr:0x297  priv:3
instret:9  PC:0x80000058  instr:0x1028293  priv:3
instret:10  PC:0x8000005c  instr:0x30529073  priv:3
instret:11  PC:0x80000060  instr:0x18005073  priv:3
instret:12  PC:0x80000064  instr:0x297  priv:3
instret:13  PC:0x80000068  instr:0x2428293  priv:3
instret:14  PC:0x8000006c  instr:0x30529073  priv:3
instret:15  PC:0x80000070  instr:0x10029b  priv:3
instret:16  PC:0x80000074  instr:0x3529293  priv:3
instret:17  PC:0x80000078  instr:0xfff28293  priv:3
instret:18  PC:0x8000007c  instr:0x3b029073  priv:3
    mcause:0x2  epc 0x8000007c  tval:0x3b029073  next_pc 0x80000088, new_priv 3 new_mstatus 0xa00003800
instret:18  PC:0x80000088  instr:0x297  priv:3
instret:19  PC:0x8000008c  instr:0x1828293  priv:3
instret:20  PC:0x80000090  instr:0x30529073  priv:3
instret:21  PC:0x80000094  instr:0x30205073  priv:3
instret:22  PC:0x80000098  instr:0x30305073  priv:3
instret:23  PC:0x8000009c  instr:0x30405073  priv:3
instret:24  PC:0x800000a0  instr:0x193  priv:3
instret:25  PC:0x800000a4  instr:0x297  priv:3
instret:26  PC:0x800000a8  instr:0xf6028293  priv:3
instret:27  PC:0x800000ac  instr:0x30529073  priv:3
instret:28  PC:0x800000b0  instr:0x100513  priv:3
instret:29  PC:0x800000b4  instr:0x1f51513  priv:3
instret:30  PC:0x800000b8  instr:0x55863  priv:3
instret:31  PC:0x800000c8  instr:0x80000297  priv:3
instret:32  PC:0x800000cc  instr:0xf3828293  priv:3
instret:33  PC:0x800000d0  instr:0x28e63  priv:3
instret:34  PC:0x800000ec  instr:0x30005073  priv:3
instret:35  PC:0x800000f0  instr:0x297  priv:3
instret:36  PC:0x800000f4  instr:0x1428293  priv:3
instret:37  PC:0x800000f8  instr:0x34129073  priv:3
instret:38  PC:0x800000fc  instr:0xf1402573  priv:3
instret:39  PC:0x80000100  instr:0x30200073  priv:3
    xRET: next_pc:0x80000104  new mstatus:0xa00000080  new priv:0
instret:40  PC:0x80000104  instr:0x93  priv:0
instret:41  PC:0x80000108  instr:0x113  priv:0
instret:42  PC:0x8000010c  instr:0x208f33  priv:0
instret:43  PC:0x80000110  instr:0xe93  priv:0
instret:44  PC:0x80000114  instr:0x200193  priv:0
instret:45  PC:0x80000118  instr:0x4fdf1063  priv:0
instret:46  PC:0x8000011c  instr:0x100093  priv:0
instret:47  PC:0x80000120  instr:0x100113  priv:0
instret:48  PC:0x80000124  instr:0x208f33  priv:0
instret:49  PC:0x80000128  instr:0x200e93  priv:0
instret:50  PC:0x8000012c  instr:0x300193  priv:0
instret:51  PC:0x80000130  instr:0x4ddf1463  priv:0
instret:52  PC:0x80000134  instr:0x300093  priv:0
instret:53  PC:0x80000138  instr:0x700113  priv:0
instret:54  PC:0x8000013c  instr:0x208f33  priv:0
instret:55  PC:0x80000140  instr:0xa00e93  priv:0
instret:56  PC:0x80000144  instr:0x400193  priv:0
instret:57  PC:0x80000148  instr:0x4bdf1863  priv:0
instret:58  PC:0x8000014c  instr:0x93  priv:0
instret:59  PC:0x80000150  instr:0xffff8137  priv:0
instret:60  PC:0x80000154  instr:0x208f33  priv:0
instret:61  PC:0x80000158  instr:0xffff8eb7  priv:0
instret:62  PC:0x8000015c  instr:0x500193  priv:0
instret:63  PC:0x80000160  instr:0x49df1c63  priv:0
instret:64  PC:0x80000164  instr:0x800000b7  priv:0
instret:65  PC:0x80000168  instr:0x113  priv:0
instret:66  PC:0x8000016c  instr:0x208f33  priv:0
instret:67  PC:0x80000170  instr:0x80000eb7  priv:0
instret:68  PC:0x80000174  instr:0x600193  priv:0
instret:69  PC:0x80000178  instr:0x49df1063  priv:0
instret:70  PC:0x8000017c  instr:0x800000b7  priv:0
instret:71  PC:0x80000180  instr:0xffff8137  priv:0
instret:72  PC:0x80000184  instr:0x208f33  priv:0
instret:73  PC:0x80000188  instr:0xffff0eb7  priv:0
instret:74  PC:0x8000018c  instr:0xfffe8e9b  priv:0
instret:75  PC:0x80000190  instr:0xfe9e93  priv:0
instret:76  PC:0x80000194  instr:0x700193  priv:0
instret:77  PC:0x80000198  instr:0x47df1063  priv:0
instret:78  PC:0x8000019c  instr:0x93  priv:0
instret:79  PC:0x800001a0  instr:0x8137  priv:0
instret:80  PC:0x800001a4  instr:0xfff1011b  priv:0
instret:81  PC:0x800001a8  instr:0x208f33  priv:0
instret:82  PC:0x800001ac  instr:0x8eb7  priv:0
instret:83  PC:0x800001b0  instr:0xfffe8e9b  priv:0
instret:84  PC:0x800001b4  instr:0x800193  priv:0
instret:85  PC:0x800001b8  instr:0x45df1063  priv:0
instret:86  PC:0x800001bc  instr:0x800000b7  priv:0
instret:87  PC:0x800001c0  instr:0xfff0809b  priv:0
instret:88  PC:0x800001c4  instr:0x113  priv:0
instret:89  PC:0x800001c8  instr:0x208f33  priv:0
instret:90  PC:0x800001cc  instr:0x80000eb7  priv:0
instret:91  PC:0x800001d0  instr:0xfffe8e9b  priv:0
instret:92  PC:0x800001d4  instr:0x900193  priv:0
instret:93  PC:0x800001d8  instr:0x43df1063  priv:0
instret:94  PC:0x800001dc  instr:0x800000b7  priv:0
instret:95  PC:0x800001e0  instr:0xfff0809b  priv:0
instret:96  PC:0x800001e4  instr:0x8137  priv:0
instret:97  PC:0x800001e8  instr:0xfff1011b  priv:0
instret:98  PC:0x800001ec  instr:0x208f33  priv:0
instret:99  PC:0x800001f0  instr:0x10eb7  priv:0
instret:100  PC:0x800001f4  instr:0x1e8e9b  priv:0
instret:101  PC:0x800001f8  instr:0xfe9e93  priv:0
instret:102  PC:0x800001fc  instr:0xffee8e93  priv:0
instret:103  PC:0x80000200  instr:0xa00193  priv:0
instret:104  PC:0x80000204  instr:0x3fdf1a63  priv:0
instret:105  PC:0x80000208  instr:0x800000b7  priv:0
instret:106  PC:0x8000020c  instr:0x8137  priv:0
instret:107  PC:0x80000210  instr:0xfff1011b  priv:0
instret:108  PC:0x80000214  instr:0x208f33  priv:0
instret:109  PC:0x80000218  instr:0x80008eb7  priv:0
instret:110  PC:0x8000021c  instr:0xfffe8e9b  priv:0
instret:111  PC:0x80000220  instr:0xb00193  priv:0
instret:112  PC:0x80000224  instr:0x3ddf1a63  priv:0
instret:113  PC:0x80000228  instr:0x800000b7  priv:0
instret:114  PC:0x8000022c  instr:0xfff0809b  priv:0
instret:115  PC:0x80000230  instr:0xffff8137  priv:0
instret:116  PC:0x80000234  instr:0x208f33  priv:0
instret:117  PC:0x80000238  instr:0x7fff8eb7  priv:0
instret:118  PC:0x8000023c  instr:0xfffe8e9b  priv:0
instret:119  PC:0x80000240  instr:0xc00193  priv:0
instret:120  PC:0x80000244  instr:0x3bdf1a63  priv:0
instret:121  PC:0x80000248  instr:0x93  priv:0
instret:122  PC:0x8000024c  instr:0xfff00113  priv:0
instret:123  PC:0x80000250  instr:0x208f33  priv:0
instret:124  PC:0x80000254  instr:0xfff00e93  priv:0
instret:125  PC:0x80000258  instr:0xd00193  priv:0
instret:126  PC:0x8000025c  instr:0x39df1e63  priv:0
instret:127  PC:0x80000260  instr:0xfff00093  priv:0
instret:128  PC:0x80000264  instr:0x100113  priv:0
instret:129  PC:0x80000268  instr:0x208f33  priv:0
instret:130  PC:0x8000026c  instr:0xe93  priv:0
instret:131  PC:0x80000270  instr:0xe00193  priv:0
instret:132  PC:0x80000274  instr:0x39df1263  priv:0
instret:133  PC:0x80000278  instr:0xfff00093  priv:0
instret:134  PC:0x8000027c  instr:0xfff00113  priv:0
instret:135  PC:0x80000280  instr:0x208f33  priv:0
instret:136  PC:0x80000284  instr:0xffe00e93  priv:0
instret:137  PC:0x80000288  instr:0xf00193  priv:0
instret:138  PC:0x8000028c  instr:0x37df1663  priv:0
instret:139  PC:0x80000290  instr:0x100093  priv:0
instret:140  PC:0x80000294  instr:0x80000137  priv:0
instret:141  PC:0x80000298  instr:0xfff1011b  priv:0
instret:142  PC:0x8000029c  instr:0x208f33  priv:0
instret:143  PC:0x800002a0  instr:0x100e9b  priv:0
instret:144  PC:0x800002a4  instr:0x1fe9e93  priv:0
instret:145  PC:0x800002a8  instr:0x1000193  priv:0
instret:146  PC:0x800002ac  instr:0x35df1663  priv:0
instret:147  PC:0x800002b0  instr:0xd00093  priv:0
instret:148  PC:0x800002b4  instr:0xb00113  priv:0
instret:149  PC:0x800002b8  instr:0x2080b3  priv:0
instret:150  PC:0x800002bc  instr:0x1800e93  priv:0
instret:151  PC:0x800002c0  instr:0x1100193  priv:0
instret:152  PC:0x800002c4  instr:0x33d09a63  priv:0
instret:153  PC:0x800002c8  instr:0xe00093  priv:0
instret:154  PC:0x800002cc  instr:0xb00113  priv:0
instret:155  PC:0x800002d0  instr:0x208133  priv:0
instret:156  PC:0x800002d4  instr:0x1900e93  priv:0
instret:157  PC:0x800002d8  instr:0x1200193  priv:0
instret:158  PC:0x800002dc  instr:0x31d11e63  priv:0
instret:159  PC:0x800002e0  instr:0xd00093  priv:0
instret:160  PC:0x800002e4  instr:0x1080b3  priv:0
instret:161  PC:0x800002e8  instr:0x1a00e93  priv:0
instret:162  PC:0x800002ec  instr:0x1300193  priv:0
instret:163  PC:0x800002f0  instr:0x31d09463  priv:0
instret:164  PC:0x800002f4  instr:0x213  priv:0
instret:165  PC:0x800002f8  instr:0xd00093  priv:0
instret:166  PC:0x800002fc  instr:0xb00113  priv:0
instret:167  PC:0x80000300  instr:0x208f33  priv:0
instret:168  PC:0x80000304  instr:0xf0313  priv:0
instret:169  PC:0x80000308  instr:0x120213  priv:0
instret:170  PC:0x8000030c  instr:0x200293  priv:0
instret:171  PC:0x80000310  instr:0xfe5214e3  priv:0
instret:172  PC:0x800002f8  instr:0xd00093  priv:0
instret:173  PC:0x800002fc  instr:0xb00113  priv:0
instret:174  PC:0x80000300  instr:0x208f33  priv:0
instret:175  PC:0x80000304  instr:0xf0313  priv:0
instret:176  PC:0x80000308  instr:0x120213  priv:0
instret:177  PC:0x8000030c  instr:0x200293  priv:0
instret:178  PC:0x80000310  instr:0xfe5214e3  priv:0
instret:179  PC:0x80000314  instr:0x1800e93  priv:0
instret:180  PC:0x80000318  instr:0x1400193  priv:0
instret:181  PC:0x8000031c  instr:0x2dd31e63  priv:0
instret:182  PC:0x80000320  instr:0x213  priv:0
instret:183  PC:0x80000324  instr:0xe00093  priv:0
instret:184  PC:0x80000328  instr:0xb00113  priv:0
instret:185  PC:0x8000032c  instr:0x208f33  priv:0
instret:186  PC:0x80000330  instr:0x13  priv:0
instret:187  PC:0x80000334  instr:0xf0313  priv:0
instret:188  PC:0x80000338  instr:0x120213  priv:0
instret:189  PC:0x8000033c  instr:0x200293  priv:0
instret:190  PC:0x80000340  instr:0xfe5212e3  priv:0
instret:191  PC:0x80000324  instr:0xe00093  priv:0
instret:192  PC:0x80000328  instr:0xb00113  priv:0
instret:193  PC:0x8000032c  instr:0x208f33  priv:0
instret:194  PC:0x80000330  instr:0x13  priv:0
instret:195  PC:0x80000334  instr:0xf0313  priv:0
instret:196  PC:0x80000338  instr:0x120213  priv:0
instret:197  PC:0x8000033c  instr:0x200293  priv:0
instret:198  PC:0x80000340  instr:0xfe5212e3  priv:0
instret:199  PC:0x80000344  instr:0x1900e93  priv:0
instret:200  PC:0x80000348  instr:0x1500193  priv:0
instret:201  PC:0x8000034c  instr:0x2bd31663  priv:0
instret:202  PC:0x80000350  instr:0x213  priv:0
instret:203  PC:0x80000354  instr:0xf00093  priv:0
instret:204  PC:0x80000358  instr:0xb00113  priv:0
instret:205  PC:0x8000035c  instr:0x208f33  priv:0
instret:206  PC:0x80000360  instr:0x13  priv:0
instret:207  PC:0x80000364  instr:0x13  priv:0
instret:208  PC:0x80000368  instr:0xf0313  priv:0
instret:209  PC:0x8000036c  instr:0x120213  priv:0
instret:210  PC:0x80000370  instr:0x200293  priv:0
instret:211  PC:0x80000374  instr:0xfe5210e3  priv:0
instret:212  PC:0x80000354  instr:0xf00093  priv:0
instret:213  PC:0x80000358  instr:0xb00113  priv:0
instret:214  PC:0x8000035c  instr:0x208f33  priv:0
instret:215  PC:0x80000360  instr:0x13  priv:0
instret:216  PC:0x80000364  instr:0x13  priv:0
instret:217  PC:0x80000368  instr:0xf0313  priv:0
instret:218  PC:0x8000036c  instr:0x120213  priv:0
instret:219  PC:0x80000370  instr:0x200293  priv:0
instret:220  PC:0x80000374  instr:0xfe5210e3  priv:0
instret:221  PC:0x80000378  instr:0x1a00e93  priv:0
instret:222  PC:0x8000037c  instr:0x1600193  priv:0
instret:223  PC:0x80000380  instr:0x27d31c63  priv:0
instret:224  PC:0x80000384  instr:0x213  priv:0
instret:225  PC:0x80000388  instr:0xd00093  priv:0
instret:226  PC:0x8000038c  instr:0xb00113  priv:0
instret:227  PC:0x80000390  instr:0x208f33  priv:0
instret:228  PC:0x80000394  instr:0x120213  priv:0
instret:229  PC:0x80000398  instr:0x200293  priv:0
instret:230  PC:0x8000039c  instr:0xfe5216e3  priv:0
instret:231  PC:0x80000388  instr:0xd00093  priv:0
instret:232  PC:0x8000038c  instr:0xb00113  priv:0
instret:233  PC:0x80000390  instr:0x208f33  priv:0
instret:234  PC:0x80000394  instr:0x120213  priv:0
instret:235  PC:0x80000398  instr:0x200293  priv:0
instret:236  PC:0x8000039c  instr:0xfe5216e3  priv:0
instret:237  PC:0x800003a0  instr:0x1800e93  priv:0
instret:238  PC:0x800003a4  instr:0x1700193  priv:0
instret:239  PC:0x800003a8  instr:0x25df1863  priv:0
instret:240  PC:0x800003ac  instr:0x213  priv:0
instret:241  PC:0x800003b0  instr:0xe00093  priv:0
instret:242  PC:0x800003b4  instr:0xb00113  priv:0
instret:243  PC:0x800003b8  instr:0x13  priv:0
instret:244  PC:0x800003bc  instr:0x208f33  priv:0
instret:245  PC:0x800003c0  instr:0x120213  priv:0
instret:246  PC:0x800003c4  instr:0x200293  priv:0
instret:247  PC:0x800003c8  instr:0xfe5214e3  priv:0
instret:248  PC:0x800003b0  instr:0xe00093  priv:0
instret:249  PC:0x800003b4  instr:0xb00113  priv:0
instret:250  PC:0x800003b8  instr:0x13  priv:0
instret:251  PC:0x800003bc  instr:0x208f33  priv:0
instret:252  PC:0x800003c0  instr:0x120213  priv:0
instret:253  PC:0x800003c4  instr:0x200293  priv:0
instret:254  PC:0x800003c8  instr:0xfe5214e3  priv:0
instret:255  PC:0x800003cc  instr:0x1900e93  priv:0
instret:256  PC:0x800003d0  instr:0x1800193  priv:0
instret:257  PC:0x800003d4  instr:0x23df1263  priv:0
instret:258  PC:0x800003d8  instr:0x213  priv:0
instret:259  PC:0x800003dc  instr:0xf00093  priv:0
instret:260  PC:0x800003e0  instr:0xb00113  priv:0
instret:261  PC:0x800003e4  instr:0x13  priv:0
instret:262  PC:0x800003e8  instr:0x13  priv:0
instret:263  PC:0x800003ec  instr:0x208f33  priv:0
instret:264  PC:0x800003f0  instr:0x120213  priv:0
instret:265  PC:0x800003f4  instr:0x200293  priv:0
instret:266  PC:0x800003f8  instr:0xfe5212e3  priv:0
instret:267  PC:0x800003dc  instr:0xf00093  priv:0
instret:268  PC:0x800003e0  instr:0xb00113  priv:0
instret:269  PC:0x800003e4  instr:0x13  priv:0
instret:270  PC:0x800003e8  instr:0x13  priv:0
instret:271  PC:0x800003ec  instr:0x208f33  priv:0
instret:272  PC:0x800003f0  instr:0x120213  priv:0
instret:273  PC:0x800003f4  instr:0x200293  priv:0
instret:274  PC:0x800003f8  instr:0xfe5212e3  priv:0
instret:275  PC:0x800003fc  instr:0x1a00e93  priv:0
instret:276  PC:0x80000400  instr:0x1900193  priv:0
instret:277  PC:0x80000404  instr:0x1fdf1a63  priv:0
instret:278  PC:0x80000408  instr:0x213  priv:0
instret:279  PC:0x8000040c  instr:0xd00093  priv:0
instret:280  PC:0x80000410  instr:0x13  priv:0
instret:281  PC:0x80000414  instr:0xb00113  priv:0
instret:282  PC:0x80000418  instr:0x208f33  priv:0
instret:283  PC:0x8000041c  instr:0x120213  priv:0
instret:284  PC:0x80000420  instr:0x200293  priv:0
instret:285  PC:0x80000424  instr:0xfe5214e3  priv:0
instret:286  PC:0x8000040c  instr:0xd00093  priv:0
instret:287  PC:0x80000410  instr:0x13  priv:0
instret:288  PC:0x80000414  instr:0xb00113  priv:0
instret:289  PC:0x80000418  instr:0x208f33  priv:0
instret:290  PC:0x8000041c  instr:0x120213  priv:0
instret:291  PC:0x80000420  instr:0x200293  priv:0
instret:292  PC:0x80000424  instr:0xfe5214e3  priv:0
instret:293  PC:0x80000428  instr:0x1800e93  priv:0
instret:294  PC:0x8000042c  instr:0x1a00193  priv:0
instret:295  PC:0x80000430  instr:0x1ddf1463  priv:0
instret:296  PC:0x80000434  instr:0x213  priv:0
instret:297  PC:0x80000438  instr:0xe00093  priv:0
instret:298  PC:0x8000043c  instr:0x13  priv:0
instret:299  PC:0x80000440  instr:0xb00113  priv:0
instret:300  PC:0x80000444  instr:0x13  priv:0
instret:301  PC:0x80000448  instr:0x208f33  priv:0
instret:302  PC:0x8000044c  instr:0x120213  priv:0
instret:303  PC:0x80000450  instr:0x200293  priv:0
instret:304  PC:0x80000454  instr:0xfe5212e3  priv:0
instret:305  PC:0x80000438  instr:0xe00093  priv:0
instret:306  PC:0x8000043c  instr:0x13  priv:0
instret:307  PC:0x80000440  instr:0xb00113  priv:0
instret:308  PC:0x80000444  instr:0x13  priv:0
instret:309  PC:0x80000448  instr:0x208f33  priv:0
instret:310  PC:0x8000044c  instr:0x120213  priv:0
instret:311  PC:0x80000450  instr:0x200293  priv:0
instret:312  PC:0x80000454  instr:0xfe5212e3  priv:0
instret:313  PC:0x80000458  instr:0x1900e93  priv:0
instret:314  PC:0x8000045c  instr:0x1b00193  priv:0
instret:315  PC:0x80000460  instr:0x19df1c63  priv:0
instret:316  PC:0x80000464  instr:0x213  priv:0
instret:317  PC:0x80000468  instr:0xf00093  priv:0
instret:318  PC:0x8000046c  instr:0x13  priv:0
instret:319  PC:0x80000470  instr:0x13  priv:0
instret:320  PC:0x80000474  instr:0xb00113  priv:0
instret:321  PC:0x80000478  instr:0x208f33  priv:0
instret:322  PC:0x8000047c  instr:0x120213  priv:0
instret:323  PC:0x80000480  instr:0x200293  priv:0
instret:324  PC:0x80000484  instr:0xfe5212e3  priv:0
instret:325  PC:0x80000468  instr:0xf00093  priv:0
instret:326  PC:0x8000046c  instr:0x13  priv:0
instret:327  PC:0x80000470  instr:0x13  priv:0
instret:328  PC:0x80000474  instr:0xb00113  priv:0
instret:329  PC:0x80000478  instr:0x208f33  priv:0
instret:330  PC:0x8000047c  instr:0x120213  priv:0
instret:331  PC:0x80000480  instr:0x200293  priv:0
instret:332  PC:0x80000484  instr:0xfe5212e3  priv:0
instret:333  PC:0x80000488  instr:0x1a00e93  priv:0
instret:334  PC:0x8000048c  instr:0x1c00193  priv:0
instret:335  PC:0x80000490  instr:0x17df1463  priv:0
instret:336  PC:0x80000494  instr:0x213  priv:0
instret:337  PC:0x80000498  instr:0xb00113  priv:0
instret:338  PC:0x8000049c  instr:0xd00093  priv:0
instret:339  PC:0x800004a0  instr:0x208f33  priv:0
instret:340  PC:0x800004a4  instr:0x120213  priv:0
instret:341  PC:0x800004a8  instr:0x200293  priv:0
instret:342  PC:0x800004ac  instr:0xfe5216e3  priv:0
instret:343  PC:0x80000498  instr:0xb00113  priv:0
instret:344  PC:0x8000049c  instr:0xd00093  priv:0
instret:345  PC:0x800004a0  instr:0x208f33  priv:0
instret:346  PC:0x800004a4  instr:0x120213  priv:0
instret:347  PC:0x800004a8  instr:0x200293  priv:0
instret:348  PC:0x800004ac  instr:0xfe5216e3  priv:0
instret:349  PC:0x800004b0  instr:0x1800e93  priv:0
instret:350  PC:0x800004b4  instr:0x1d00193  priv:0
instret:351  PC:0x800004b8  instr:0x15df1063  priv:0
instret:352  PC:0x800004bc  instr:0x213  priv:0
instret:353  PC:0x800004c0  instr:0xb00113  priv:0
instret:354  PC:0x800004c4  instr:0xe00093  priv:0
instret:355  PC:0x800004c8  instr:0x13  priv:0
instret:356  PC:0x800004cc  instr:0x208f33  priv:0
instret:357  PC:0x800004d0  instr:0x120213  priv:0
instret:358  PC:0x800004d4  instr:0x200293  priv:0
instret:359  PC:0x800004d8  instr:0xfe5214e3  priv:0
instret:360  PC:0x800004c0  instr:0xb00113  priv:0
instret:361  PC:0x800004c4  instr:0xe00093  priv:0
instret:362  PC:0x800004c8  instr:0x13  priv:0
instret:363  PC:0x800004cc  instr:0x208f33  priv:0
instret:364  PC:0x800004d0  instr:0x120213  priv:0
instret:365  PC:0x800004d4  instr:0x200293  priv:0
instret:366  PC:0x800004d8  instr:0xfe5214e3  priv:0
instret:367  PC:0x800004dc  instr:0x1900e93  priv:0
instret:368  PC:0x800004e0  instr:0x1e00193  priv:0
instret:369  PC:0x800004e4  instr:0x11df1a63  priv:0
instret:370  PC:0x800004e8  instr:0x213  priv:0
instret:371  PC:0x800004ec  instr:0xb00113  priv:0
instret:372  PC:0x800004f0  instr:0xf00093  priv:0
instret:373  PC:0x800004f4  instr:0x13  priv:0
instret:374  PC:0x800004f8  instr:0x13  priv:0
instret:375  PC:0x800004fc  instr:0x208f33  priv:0
instret:376  PC:0x80000500  instr:0x120213  priv:0
instret:377  PC:0x80000504  instr:0x200293  priv:0
instret:378  PC:0x80000508  instr:0xfe5212e3  priv:0
instret:379  PC:0x800004ec  instr:0xb00113  priv:0
instret:380  PC:0x800004f0  instr:0xf00093  priv:0
instret:381  PC:0x800004f4  instr:0x13  priv:0
instret:382  PC:0x800004f8  instr:0x13  priv:0
instret:383  PC:0x800004fc  instr:0x208f33  priv:0
instret:384  PC:0x80000500  instr:0x120213  priv:0
instret:385  PC:0x80000504  instr:0x200293  priv:0
instret:386  PC:0x80000508  instr:0xfe5212e3  priv:0
instret:387  PC:0x8000050c  instr:0x1a00e93  priv:0
instret:388  PC:0x80000510  instr:0x1f00193  priv:0
instret:389  PC:0x80000514  instr:0xfdf1263  priv:0
instret:390  PC:0x80000518  instr:0x213  priv:0
instret:391  PC:0x8000051c  instr:0xb00113  priv:0
instret:392  PC:0x80000520  instr:0x13  priv:0
instret:393  PC:0x80000524  instr:0xd00093  priv:0
instret:394  PC:0x80000528  instr:0x208f33  priv:0
instret:395  PC:0x8000052c  instr:0x120213  priv:0
instret:396  PC:0x80000530  instr:0x200293  priv:0
instret:397  PC:0x80000534  instr:0xfe5214e3  priv:0
instret:398  PC:0x8000051c  instr:0xb00113  priv:0
instret:399  PC:0x80000520  instr:0x13  priv:0
instret:400  PC:0x80000524  instr:0xd00093  priv:0
instret:401  PC:0x80000528  instr:0x208f33  priv:0
instret:402  PC:0x8000052c  instr:0x120213  priv:0
instret:403  PC:0x80000530  instr:0x200293  priv:0
instret:404  PC:0x80000534  instr:0xfe5214e3  priv:0
instret:405  PC:0x80000538  instr:0x1800e93  priv:0
instret:406  PC:0x8000053c  instr:0x2000193  priv:0
instret:407  PC:0x80000540  instr:0xbdf1c63  priv:0
instret:408  PC:0x80000544  instr:0x213  priv:0
instret:409  PC:0x80000548  instr:0xb00113  priv:0
instret:410  PC:0x8000054c  instr:0x13  priv:0
instret:411  PC:0x80000550  instr:0xe00093  priv:0
instret:412  PC:0x80000554  instr:0x13  priv:0
instret:413  PC:0x80000558  instr:0x208f33  priv:0
instret:414  PC:0x8000055c  instr:0x120213  priv:0
instret:415  PC:0x80000560  instr:0x200293  priv:0
instret:416  PC:0x80000564  instr:0xfe5212e3  priv:0
instret:417  PC:0x80000548  instr:0xb00113  priv:0
instret:418  PC:0x8000054c  instr:0x13  priv:0
instret:419  PC:0x80000550  instr:0xe00093  priv:0
instret:420  PC:0x80000554  instr:0x13  priv:0
instret:421  PC:0x80000558  instr:0x208f33  priv:0
instret:422  PC:0x8000055c  instr:0x120213  priv:0
instret:423  PC:0x80000560  instr:0x200293  priv:0
instret:424  PC:0x80000564  instr:0xfe5212e3  priv:0
instret:425  PC:0x80000568  instr:0x1900e93  priv:0
instret:426  PC:0x8000056c  instr:0x2100193  priv:0
instret:427  PC:0x80000570  instr:0x9df1463  priv:0
instret:428  PC:0x80000574  instr:0x213  priv:0
instret:429  PC:0x80000578  instr:0xb00113  priv:0
instret:430  PC:0x8000057c  instr:0x13  priv:0
instret:431  PC:0x80000580  instr:0x13  priv:0
instret:432  PC:0x80000584  instr:0xf00093  priv:0
instret:433  PC:0x80000588  instr:0x208f33  priv:0
instret:434  PC:0x8000058c  instr:0x120213  priv:0
instret:435  PC:0x80000590  instr:0x200293  priv:0
instret:436  PC:0x80000594  instr:0xfe5212e3  priv:0
instret:437  PC:0x80000578  instr:0xb00113  priv:0
instret:438  PC:0x8000057c  instr:0x13  priv:0
instret:439  PC:0x80000580  instr:0x13  priv:0
instret:440  PC:0x80000584  instr:0xf00093  priv:0
instret:441  PC:0x80000588  instr:0x208f33  priv:0
instret:442  PC:0x8000058c  instr:0x120213  priv:0
instret:443  PC:0x80000590  instr:0x200293  priv:0
instret:444  PC:0x80000594  instr:0xfe5212e3  priv:0
instret:445  PC:0x80000598  instr:0x1a00e93  priv:0
instret:446  PC:0x8000059c  instr:0x2200193  priv:0
instret:447  PC:0x800005a0  instr:0x5df1c63  priv:0
instret:448  PC:0x800005a4  instr:0xf00093  priv:0
instret:449  PC:0x800005a8  instr:0x100133  priv:0
instret:450  PC:0x800005ac  instr:0xf00e93  priv:0
instret:451  PC:0x800005b0  instr:0x2300193  priv:0
instret:452  PC:0x800005b4  instr:0x5d11263  priv:0
instret:453  PC:0x800005b8  instr:0x2000093  priv:0
instret:454  PC:0x800005bc  instr:0x8133  priv:0
instret:455  PC:0x800005c0  instr:0x2000e93  priv:0
instret:456  PC:0x800005c4  instr:0x2400193  priv:0
instret:457  PC:0x800005c8  instr:0x3d11863  priv:0
instret:458  PC:0x800005cc  instr:0xb3  priv:0
instret:459  PC:0x800005d0  instr:0xe93  priv:0
instret:460  PC:0x800005d4  instr:0x2500193  priv:0
instret:461  PC:0x800005d8  instr:0x3d09063  priv:0
instret:462  PC:0x800005dc  instr:0x1000093  priv:0
instret:463  PC:0x800005e0  instr:0x1e00113  priv:0
instret:464  PC:0x800005e4  instr:0x208033  priv:0
instret:465  PC:0x800005e8  instr:0xe93  priv:0
instret:466  PC:0x800005ec  instr:0x2600193  priv:0
instret:467  PC:0x800005f0  instr:0x1d01463  priv:0
instret:468  PC:0x800005f4  instr:0x301c63  priv:0
instret:469  PC:0x8000060c  instr:0xff0000f  priv:0
instret:470  PC:0x80000610  instr:0x100193  priv:0
instret:471  PC:0x80000614  instr:0x73  priv:0
    mcause:0x8  epc 0x80000614  tval:0x0  next_pc 0x80000004, new_priv 3 new_mstatus 0xa00000000
instret:471  PC:0x80000004  instr:0x34202f73  priv:3
instret:472  PC:0x80000008  instr:0x800f93  priv:3
instret:473  PC:0x8000000c  instr:0x3ff0a63  priv:3
instret:474  PC:0x80000040  instr:0x1f17  priv:3
instret:475  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:476  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:477  PC:0x80000040  instr:0x1f17  priv:3
instret:478  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:479  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:480  PC:0x80000040  instr:0x1f17  priv:3
instret:481  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:482  PC:0x80000048  instr:0xff9ff06f  priv:3
instret:483  PC:0x80000040  instr:0x1f17  priv:3
instret:484  PC:0x80000044  instr:0xfc3f2023  priv:3
instret:485  PC:0x80000048  instr:0xff9ff06f  priv:3
1504: Mem_Controller.rl_process_wr_req: addr 0x80001000 (<tohost>) data 0x1
PASS
instret:486  PC:0x80000040  instr:0x1f17  priv:3
1505: TOP.mkTop_HW_Side:.rl_terminate: soc_top status is 0x1 (= 0d1)
Simulation speed: 1504 cycles, 37193079 nsecs  = 40437 cycles/sec
- Verilog_RTL/mkTop_HW_Side_edited.v:363: Verilog $finish
1505: Mem_Controller.rl_process_wr_req: addr 0x80001000 (<tohost>) data 0x1
PASS

Flute のビルドと実行

Flute の repo を clone 後、

$ git submodule update --init --recursive
$ cd builds
$ ls 
Catamaran_Core_Flute_RV64GC_MSU             Flute_RV64GC_MSU_WB_L1_L2_bluesim_tohost    RV32ACIMU_Flute_bluesim      RV64ACDFIMSU_Flute_verilator
Flute_RV32CI_MU_WT_L1_bluesim_tohost        Flute_RV64GC_MSU_WB_L1_L2_verilator_tohost  RV32ACIMU_Flute_iverilog     RV64ACIMU_Flute_bluesim
Flute_RV32CI_MU_WT_L1_iverilog_tohost       RV32ACDFIMSU_Flute_bluesim                  RV32ACIMU_Flute_verilator    RV64ACIMU_Flute_iverilog
Flute_RV32GC_MSU_WB_L1_L2_bluesim_tohost    RV32ACDFIMSU_Flute_iverilog                 RV64ACDFIMSU_Flute_bluesim   RV64ACIMU_Flute_verilator
Flute_RV32GC_MSU_WB_L1_L2_verilator_tohost  RV32ACDFIMSU_Flute_verilator                RV64ACDFIMSU_Flute_iverilog  Resources

色々なコンフィギュレーションがあります。ここでは、RV64ACDFIMSU_Flute_bluesimとRV64ACDFIMSU_Flute_verilatorをビルドおよび実行してみます。

$ cd RV64ACDFIMSU_Flute_bluesim
$ make all
$ make test
...
$ cd RV64ACDFIMSU_Flute_verilator
$ make all
$ make test
...

Tooba のビルドと実行

Tooba の repo を clone 後、

git submodule update --init --recursive
cd builds
ls 
RV64ACDFIMSU_Toooba_bluesim  RV64ACDFIMSU_Toooba_verilator  Resources

RV64ACDFIMSU_Toooba_bluesim と RV64ACDFIMSU_Toooba_verilator をビルドおよび実行してみます。

$ cd RV64ACDFIMSU_Toooba_bluesim  
$ make all
$ make test
...
$ cd RV64ACDFIMSU_Toooba_verilator   
$ make all
$ make test
....

elf_to_hex のビルド

各CPUの Tests/elf_to_hex ディレクトリにて、make を実行すると、次のようなエラーが発生しました。

$ make
gcc -o elf_to_hex  elf_to_hex.c  -lelf
/tmp/cc5Eu4vv.o: in function `c_mem_load_elf':
elf_to_hex.c:(.text+0x248): relocation truncated to fit: R_X86_64_PC32 against symbol `bitwidth' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x28a): relocation truncated to fit: R_X86_64_PC32 against symbol `bitwidth' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x373): relocation truncated to fit: R_X86_64_PC32 against symbol `min_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x37e): relocation truncated to fit: R_X86_64_PC32 against symbol `max_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x389): relocation truncated to fit: R_X86_64_PC32 against symbol `pc_start' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x394): relocation truncated to fit: R_X86_64_PC32 against symbol `pc_exit' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x39f): relocation truncated to fit: R_X86_64_PC32 against symbol `tohost_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x4a2): relocation truncated to fit: R_X86_64_PC32 against symbol `min_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x4b2): relocation truncated to fit: R_X86_64_PC32 against symbol `min_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x4cf): relocation truncated to fit: R_X86_64_PC32 against symbol `max_addr' defined in .bss section in /tmp/cc5Eu4vv.o
elf_to_hex.c:(.text+0x4f1): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make: *** [Makefile:7: elf_to_hex] Error 1

どうやら、2GBを超えるメモリを使いたいみたいなので、gcc コマンドのオプション -mcmodel=large を付けることでエラーに無くなりました。

$ make
gcc -o elf_to_hex  elf_to_hex.c  -lelf -mcmodel=large

おわりに

BluespecなRISC-V CPUコアをBluespec と Verilator でシミュレーションできることを確認しました。