トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2024-7-9の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!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
よくできてる.