トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

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

よくできてる.