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

Diary/2024-7-8の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!GateMate(2)
過去に[GateMate|https://www.wasamon.net/miyo/index.cgi?page=Diary%2F2023%2D5%2D14]で遊んでいたのを,約1年ぶりにおさらい.
今度はツール一式をビルドしてみた.環境は Ubuntu 22.04.
[GateMate FPGA|https://colognechip.com/programmable-logic/gatemate/]公式ページから[GateMate Toolchain Installation User Guide (January 2024)|https://www.colognechip.com/docs/ug1002-toolchain-install-latest.pdf]をダウンロードして真似する.
今回は,openFPGALoaderの実行時にsudoが必要だったのが,前回との違い(というか前回は本当に不要だったのか?)

:: ビルド済みツール一式のダウンロード
サンプル一式とプロプライエタリな配置配線ツールが欲しいので,
"Programmable Logic"の"myGateMate Login"からログインして,
"myGateMate"の"Software Download"でダウンロードページにアクセス.
Toolchain Packages for Linux (27.05.2024) をダウンロード.
今回はツール一式を,$HOME/tools/GateMate/ 以下に置くことにする.
 $ mkdir -p $HOME/tools/GateMate/
 $ tar xvf cc-toolchain-linux.tar.gz -C $HOME/tools/GateMate/
 $ export PATH=$HOME/tools/GateMate/cc-toolchain-linux/bin/p_r:$PATH

:: Yosys
 $ sudo apt install build-essential clang bison flex libreadline-dev \
                    gawk tcl-dev libffi-dev git graphviz xdot pkg-config python3 \
                    libboost-system-dev libboost-python-dev libboost-filesystem-dev \
                    zlib1g-dev
 $ git clone https://github.com/YosysHQ/yosys.git
 $ cd yosys
 $ git submodule update --init --recursive
 $ make config-clang
 $ vi Makefile # MakefileのPREFIXを $(HOME)/tools/GateMate に変更.これは好み.
 $ make -j$(nproc)
 $ make install
 $ cd ..
 $ export PATH=$HOME/tools/GateMate/bin:$PATH

:: GHDL
 $ sudo apt install gnat zlib1g-dev
 $ git clone https://github.com/ghdl/ghdl.git
 $ cd ghdl
 $ ./configure --prefix=$HOME/tools/GateMate
 $ make -j$(nproc)
 $ make install
 $ cd ..

:: YosysのGHDLプラグイン
 $ git clone https://github.com/ghdl/ghdl-yosys-plugin.git
 $ cd ghdl-yosys-plugin
 $ make -j$(nproc)
 $ make install
 $ cd ..

:: openFPGALoader
 $ sudo apt install libftdi1-2 libftdi1-dev libhidapi-hidraw0 libhidapi-dev libudev-dev zlib1g-dev cmake pkg-config make g++
 $ git clone https://github.com/trabucayre/openFPGALoader.git
 $ cd openFPGALoader
 $ mkdir build
 $ cd build
 $ cmake -DCMAKE_INSTALL_PREFIX=$HOME/tools/GateMate ..
 $ make -j$(nproc)
 $ make install
 $ cd ../..

:: インストールされたもの
 $ ls $HOME/tools/GateMate/bin
 ghdl  ghwdump  openFPGALoader  yosys  yosys-abc  yosys-config  yosys-filterlib  yosys-smtbmc  yosys-witness

:: クイックスタート
準備
 $ cp -r $HOME/tools/GateMate/cc-toolchain-linux/workspace .
 $ cd workspace/blink
合成 
 $ yosys -qql log/synth.log -p 'read -sv src/blink.v; synth_gatemate -top blink -nomx8 -vlog net/blink_synth.v'
net/blink_synth.vができた.
シミュレーション
 $ iverilog -Winfloop -g2012 -gspecify -Ttyp -o sim/synth_sim.vvp net/blink_synth.v sim/blink_tb.v $HOME/tools/GateMate/share/yosys/gatemate/cells_sim.v
 $ vvp -N sim/synth_sim.vvp -fst
波形表示
 $ gtkwave sim/blink_tb.vcd
配置配線.
 $ p_r -i net/blink_synth.v -o blink -ccf src/blink.ccf -cCP > log/impl.log
p_rでは,
 $ p_r -i net/<TOP>_synth.v -o <TOP> -ccf src/<TOP>.ccf > log/impl.logls
に対して,
* Log output in log/impl.log
* Configuration bitsream: <TOP>_00.cfg.bit
* Verilog netlist for post-implementation simulation: <TOP>_00.v
* SDF delay file for post-implementation simulation: <TOP>_00.sdf
* Pin file: <TOP>_00.pin
* Place file: <TOP>_00.place
が出力される.
最後に書き込み.
 $ sudo $HOME/tools/GateMate/bin/openFPGALoader -b gatemate_evb_jtag blink_00.cfg
ボード上のLEDが点滅する.