FPGA開発日記

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

LiteXによるSoC環境構築を試行する (5. 自作CPUのコンフィグレーション追加試行)

https://raw.githubusercontent.com/enjoy-digital/litex/master/doc/litex.png

LiteXでのシミュレーション評価環境を引き続き立ち上げているが、Verilatorのコンパイルが終わったところまででどうもシミュレーションがうまくいかない。

いろいろ試した結果、以下の出力までで止まってしまう。FSTファイルもうまく出力できていないようだ。何が悪いんだろう。

g++    veril.o sim_init.o verilated.o verilated_fst_c.o Vsim__ALL.a   modules.o pads.o sim.o libdylib.o parse.o -lpthread -Wl,--no-as-needed -ljson-c -lz -lm -lstdc++ -Wl,--no-as-needed -ldl -levent -lz    -o Vsim
rm Vsim__ALL.verilator_deplist.tmp
make[1]: Leaving directory '/home/msyksphinz/work/litex/litex_repo/litex/build/sim/gateware/obj_dir'
make: Leaving directory '/home/msyksphinz/work/litex/litex_repo/litex/build/sim/gateware'

[spdeeprom] loaded (addr = 0x0)
[xgmii_ethernet] loaded (0x564681f8fef0)
[clocker] loaded
[ethernet] loaded (0x564681f8fef0)
[gmii_ethernet] loaded (0x564681f8fef0)
[serial2console] loaded (0x564681f8fef0)
[serial2tcp] loaded (0x564681f8fef0)
[clocker] sys_clk: freq_hz=1000000, phase_deg=0
^C

とりあえず手っ取り早くリファレンスデザインで波形を観測したくて、以下のリポジトリをダウンロードしてやってみた。

github.com

これで手っ取り早くFSTファイルを出力したいのだが、どうもうまくいかない。 というか、このコンソール画面は誰が出力して、どこからどこまでがRTLシミュレーションなんだ?詳細を確認する必要がある。

        __   _ __      _  __
       / /  (_) /____ | |/_/
      / /__/ / __/ -_)>  <
     /____/_/\__/\__/_/|_|
   Build your hardware, easily!

 (c) Copyright 2012-2022 Enjoy-Digital
 (c) Copyright 2007-2015 M-Labs

 BIOS built on Dec 22 2022 23:40:34
 BIOS CRC passed (6848b8ce)

 LiteX git sha1: 84a65f36

--=============== SoC ==================--
CPU:            VexRiscv SMP-LINUX @ 100MHz
BUS:            WISHBONE 32-bit @ 4GiB
CSR:            32-bit data
ROM:            64KiB
SRAM:           8KiB
SDRAM:          65536KiB 32-bit @ 100MT/s (CL-2 CWL-2)

--========== Initialization ============--
Initializing SDRAM @0x40000000...
Switching SDRAM to software control.
Switching SDRAM to hardware control.

--============== Boot ==================--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
Executing booted program at 0x40f00000

--============= Liftoff! ===============--

OpenSBI v0.8-1-gecf7701
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name       : LiteX / VexRiscv-SMP
Platform Features   : timer,mfdeleg
Platform HART Count : 8
Boot HART ID        : 0
Boot HART ISA       : rv32imas
BOOT HART Features  : time
BOOT HART PMP Count : 0
Firmware Base       : 0x40f00000
Firmware Size       : 124 KB
Runtime SBI Version : 0.2

MIDELEG : 0x00000222
MEDELEG : 0x0000b101
[    0.000000] Linux version 5.14.0 (florent@panda) (riscv32-buildroot-linux-gnu-gcc.br_real (Buildroot 2021.08-381-g279167ee8d) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP Tue Sep 21 12:57:31 CEST 2021
[    0.000000] earlycon: liteuart0 at I/O port 0x0 (options '')
[    0.000000] Malformed early option 'console'
[    0.000000] earlycon: liteuart0 at MMIO 0xf0001000 (options '')
[    0.000000] printk: bootconsole [liteuart0] enabled
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] SBI specification v0.2 detected
[    0.000000] SBI implementation ID=0x1 Version=0x8
...