!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/_synth.v -o -ccf src/.ccf > log/impl.logls に対して, * Log output in log/impl.log * Configuration bitsream: _00.cfg.bit * Verilog netlist for post-implementation simulation: _00.v * SDF delay file for post-implementation simulation: _00.sdf * Pin file: _00.pin * Place file: _00.place が出力される. 最後に書き込み. $ sudo $HOME/tools/GateMate/bin/openFPGALoader -b gatemate_evb_jtag blink_00.cfg ボード上のLEDが点滅する.