Lattice Diamond
Lattice Diamond は Lattice FPGA アーキテクチャの設計ソフトウェアです。
公式には Lattice Diamond は Arch Linux をサポートしていませんが、Xilinx ISE WebPACK や Xilinx Vivado などの他の HDL スイートと同じように、多少の修正で Lattice Diamond のほとんどの機能を使うことができます。
目次
要件
現在、AUR にあるパッケージは、64ビット版のスイートでしか使うことができません。そのため、Arch Linux の64ビット環境をインストールする必要があります。
インストール
lattice-diamondAUR をインストールしてください。インストール容量がかなり大きいため (4 GB)、パッケージの圧縮時にかなり時間がかかります。PKGBUILD ファイルを編集して圧縮を無効にすることでパッケージの生成を速くすることができます。
ライセンス
Lattice Semiconductor からフリーライセンスを得ることができます (登録が必要です)。ノードロックライセンスです (MAC やイーサネットカードに紐付けられます)。ライセンスファイルを入手したら、/usr/local/diamond/3.10_x64/license/license.dat
にコピーすることで、スイートが起動できるようになります。
トラブルシューティング
Place & Route が失敗する
Place & Route が ERROR - par: Switch "-msgsegset" is not allowed.
というメッセージを残して失敗する場合、プロジェクトのルートディレクトリに存在する promote.xml
ファイルを削除して、再度実行してみてください。それで通常通り実行されるはずです。
FTDI ケーブルを使ってプログラミングできない
ftdi_sio
カーネルモジュールがロードされていない場合、FTDI チップが載ったケーブルを使って FPGA をプログラミングすることはできません。プログラマを接続してから、以下を実行してください:
# rmmod ftdi_sio
接続を解除するまでプログラマが正しく動作するようになります (プログラマを接続するたびに上のコマンドを実行してください)。
FTDI ベースのシリアルインターフェイスが Lattice スターターキットに存在するとき Diamond がクラッシュする
"Lattice Diamond 3.9 Installation Notice for Linux" ドキュメントには手動でシリアルドライバーを設定する方法が載っていますが、ドキュメントに書かれている udev ルールの命名方法は機能しません。代わりに以下の手順で上手く行きます。
1. まず /etc/group
ファイルに書かれているユーザー名を探してください。必要ならログアウトしてください。例:
username:x:1000:
2. 51-lattice.rules
という名前のファイルを作成してください。
3. 51-lattice.rules
ファイルに以下の情報を追加してください:
- Lattice
SUBSYSTEM=="usb",ACTION=="add",ATTRS{idVendor}=="1134",ATTRS{idProduct}=="8001",MODE=="0660",GROUP=="username:x:1000:",SYMLINK+="lattice-%n"
- FTDI
SUBSYSTEM=="usb",ACTION=="add",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",MODE=="0666",GROUP=="username:x:1000:",SYMLINK+="ftdi-%n" SUBSYSTEM=="usb",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",RUN+="/bin/sh -c 'basename %p > /sys/bus/usb/drivers/ftdi_sio/unbind'"