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

Diary/2023-12-17

QuickLogicで

遊んでみようと思ったけど,ダメだった.

メモ


セットアップ

chmod 755 Symbiflow-v1.3.2.gz.run
export INSTALL_DIR=/home/miyo/tools/Symbiflow/
bash Symbiflow-v1.3.2.gz.run

サンプル

export INSTALL_DIR=/home/miyo/tools/Symbiflow
export PATH=$INSTALL_DIR/quicklogic-arch-defs/bin:$INSTALL_DIR/quicklogic-arch-defs/bin/python:$PATH
source $INSTALL_DIR/conda/etc/profile.d/conda.sh
conda activate

でサンプルをビルドしてみる

cd $INSTALL_DIR/quicklogic-arch-defs/tests/counter_16bit
ql_symbiflow -synth -d ql-eos-s3 -t top -v counter_16bit.v -p chandalar.pcf -P PD64

やってみると,↓とかいってエラー.

ERROR: TCL interpreter returned an error: Yosys command produced an error
make: *** [Makefile.symbiflow:20: build/top.eblif] Error 1

ログ(build/top.log)をみてみると,

4. Executing SYNTH_QUICKLOGIC pass.
ERROR: Can't open input file `/home/miyo/tools/Symbiflow/conda/bin/../share/quicklogic/cells_sim.v' for reading: No such file or directory

といって怒られてる.
symbiflow_synthを手でたたいてみる.

cd build
symbiflow_synth -t top -v ../counter_16bit.v   -d ql-eos-s3_wlcsp -p counter_16bit/chandalar.pcf -P PD64

同じように,
4. Executing SYNTH_QUICKLOGIC pass.

ERROR: Can't open input file `/home/miyo/tools/Symbiflow/conda/bin/../share/quicklogic/cells_sim.v' for reading: No such file or directory

なるエラー.そもそも /home/miyo/tools/Symbiflow/conda/bin/../share/quicklogic/ がない.
おそらく,$INSTALL_DIR/quicklogic-arch-defs/share 以下の,

$INSTALL_DIR/quicklogic-arch-defs/share/techmaps/quicklogic/pp3/techmap/cells_sim.v

か,

$INSTALL_DIR/conda/share/yosys/quicklogic/cells_sim.v

を参照して欲しいんだろうな,と思う.

$INSTALL_DIR/quicklogic-arch-defs/bin/symbiflow_synth

とかみてみると,

MYPATH=`realpath $0`
MYPATH=`dirname ${MYPATH}`

export TECHMAP_PATH=`realpath ${MYPATH}/../share/techmaps/quicklogic/pp3/techmap`

というところがある.試しにset -xを追加してみると

+ MYPATH=/home/miyo/tools/Symbiflow/quicklogic-arch-defs/bin

と表示されるので,ここまでは問題なさそう.
というか,実行ログの上の方には,

2. Executing Verilog-2005 frontend: /home/miyo/tools/Symbiflow/quicklogic-arch-defs/share/techmaps/quicklogic/pp3/techmap/cells_sim.v
Parsing Verilog input from `/home/miyo/tools/Symbiflow/quicklogic-arch-defs/share/techmaps/quicklogic/pp3/techmap/cells_sim.v' to AST representation.
...
Successfully finished Verilog frontend.

ってでてるな.
プログラムの実行文は,

+ yosys -p 'tcl /home/miyo/tools/Symbiflow/quicklogic-arch-defs/share/quicklogic/synth.tcl' -l top_synth.log ../counter_16bit.v

なのだけど,

read_verilog -lib $::env(TECHMAP_PATH)/cells_sim.v

は,問題ない,ということ.で,問題は,

synth_quicklogic -family pp3 

の中にあるのだけど,これは,簡単には手が出せそうにないなあ.
とりあえず,

ln -s /home/miyo/tools/Symbiflow/conda/share/yosys/quicklogic /home/miyo/tools/Symbiflow/conda/share/

して,先にすすめてみた.
今度は,

ERROR: Can't open input file `/home/miyo/tools/Symbiflow/conda/bin/../share/cmp2lut.v' for reading: No such file or directory

cmp2lut.vは,/home/miyo/tools/Symbiflow/conda/bin/../share/yosys にある.
うーん,yosysは,/home/miyo/tools/Symbiflow/conda/bin/../share じゃなくて /home/miyo/tools/Symbiflow/conda/bin/../share/yosys をみるべきなんじゃないかな.
すごく納得いかないけど,

ln -s /home/miyo/tools/Symbiflow/conda/share/yosys/*.v /home/miyo/tools/Symbiflow/conda/share/

として再度挑戦.

ERROR: Can't load module `./get_count': /home/miyo/tools/Symbiflow/conda/bin/../share/plugins/get_count.so: cannot open shared object file: No such file or directory

get_count.soは,/home/miyo/tools/Symbiflow/conda/share/yosys/plugins/get_count.soにある.
参照先のルートがずれてる,で間違いなさそう.これも納得いかないけど,

ln -s /home/miyo/tools/Symbiflow/conda/share/yosys/plugins /home/miyo/tools/Symbiflow/conda/share/

して再度挑戦.

ERROR: Can't load module `./ql-iob': /home/miyo/tools/Symbiflow/conda/bin/../share/plugins/ql-iob.so: undefined symbol: _ZN5Yosys5RTLIL4Cell8setParamENS0_8IdStringENS0_5ConstE

あ,もうダメだ,これ.

自分でビルドする

https://github.com/QuickLogic-Corp/quicklogic-fpga-toolchain をやってみる.

sudo apt install tcl-dev libreadline-dev # for my environment
git clone https://github.com/QuickLogic-Corp/yosys.git -b quicklogic-rebased quicklogic-yosys
cd quicklogic-yosys
make config-gcc
make install PREFIX='specify installation path'

途中でエラーがあったので,ちょっと修正.

diff --git a/passes/sat/freduce.cc b/passes/sat/freduce.cc
index 5dfd7bd3f..4ac97f852 100644
--- a/passes/sat/freduce.cc
+++ b/passes/sat/freduce.cc
@@ -27,6 +27,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <algorithm>
+#include <limits>
 
 USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN

で,次と思ったら,https://github.com/QuickLogic-Corp/yosys-symbiflow-plugins ないじゃん...