Diary/2024-7-9
LiteX
まずは手軽に,litex-boardsにある御仕着せの環境からかな,と,
LiteX installation guideに従ってみる
- セットアップ
$ wget https://raw.githubusercontent.com/enjoy-digital/litex/master/litex_setup.py $ chmod +x litex_setup.py $ ./litex_setup.py --init --install --user $ ./litex_setup.py --update $ pip3 install meson $ sudo apt install gcc-riscv64-unknown-elf # ./litex_setup.py --gcc=riscv の代わり $ sudo apt install libevent-dev libjson-c-dev verilator # sim環境
- OpenOCD
FPGA and SPI Flash programmersを参考に.
libtoolとpkg-configが必要なので,インストールしてなければいれる.
makeしたら,libftdiのdeprecatedなAPI呼んでてビルドできなかったので,
Makefile中の -Werror を削除してビルド.
で,実行時の権限を考慮して,とりあえず自分だけの環境だ,っていうことで,
sudo chmod u+s `which openocd`
とか.
- Artyで試してみる
$ source /tools/Xilinx/Vivado/2024.1/settings64.sh $ cd litex-boards/litex_boards/targets $ ./digilent_arty.py --build $ ./digilent_arty.py --load
たとえば,/dev/ttyUSB でLiteXコンソールにアクセスできる
litex> help litex> leds 255 litex> leds 0 litex> ident Ident: LiteX SoC on Arty A7 2024-07-09 20:18:52 litex> sdram_test Memtest at 0x40000000 (8.0MiB)... Write: 0x40000000-0x40800000 8.0MiB Read: 0x40000000-0x40800000 8.0MiB Memtest OK litex> mem_list Available memory regions: ROM 0x00000000 0x20000 SRAM 0x10000000 0x2000 MAIN_RAM 0x40000000 0x10000000 CSR 0xf0000000 0x10000
とか.
- GateMateで試してみる
$ export PATH=$HOME/tools/GateMate/bin:$PATH $ export PATH=$HOME/tools/GateMate/cc-toolchain-linux/bin/p_r:$PATH $ ./colognechip_gatemate_evb.py --build $ ./colognechip_gatemate_evb.py --load
USBは別途用意する必要がある.
ボード上のPMOD Bの2番がRX(USB <- FPGA),3番がTX(USB -> FPGA).
litex> ident Ident: LiteX SoC on GateMate EVB 2024-07-09 21:06:48 litex> mem_list Available memory regions: ROM 0x00000000 0x20000 SRAM 0x10000000 0x2000 CSR 0xf0000000 0x10000
できたできた.
- Arty A7-100で動かしてみる
$ ./digilent_arty.py --build --variant=a7-100 $ ./digilent_arty.py --load --variant=a7-100
よくできてる.