はじめに
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 でシミュレーションできることを確認しました。