- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!LiteX
まずは手軽に,[litex-boards|https://github.com/litex-hub/litex-boards]にある御仕着せの環境からかな,と,
[LiteX installation guide|https://github.com/enjoy-digital/litex/wiki/Installation]に従ってみる
:: セットアップ
$ 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|https://github.com/enjoy-digital/litex/wiki/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
よくできてる.