自宅でパソコンなどを使っていてトラブった時の対策を記録しておきます。
Linuxディストリビューションのkodiではなくて、https://kodi.tvサイトからダウンロードすれば対応しています。
xfonts-base パッケージをインストールして、X windowを再起動します。
/boot/config.txtファイルを次のように編集します。
diamondコマンドをインストールする
diamondコマンドを使う
programmerを使う
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1134", ATTRS{idProduct}=="8001", MODE=="0660", GROUP=="username:x:1000:", SYMLINK+="lattice-%n"
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'"
コンフィグレーションを書き込めるところまで来た…と思う。
Crescentに重要な情報を発見。 MachXO3L Starter Kitは、NVCMという書き込み回数の少ないROMを使っているため、フラッシュROMの感覚で何度も書き換えることができないそう。 何度も書き換える場合は、MachXO3LF Starter Kitを使うべし。 先に言ってよ。
さらに調べてみると、MachXO3L Starter Kitに乗っているFPGAチップにはNVCMを内蔵しているけど、外付けでSPI Flash ROMを搭載。 SPI Flash ROMを何度も書き換えてテストすればよい。
ProgrammerでSPI Flash ROMを書き換えるには、まずSRAMをEraseしてから、SPI Flash ROMに書き込む。 SRAMをEraseするときの設定は、以下。
SPI Flash ROMに書き込むときの設定は、以下。
diamondのVerilog HDLでは、レジスタ線を含むモジュールを1個定義して、同じモジュールを2個以上使うと、うまく働きません。 異なるモジュール間でレジスタ線を勝手に共有してしまいます。
Linux をアップデートすると、プログラマーを起動するときに"drivers were not detected" というエラーが出ることがある。 udev のルールを次のように書き換えるとよい。
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1134", ATTRS{idProduct}=="8001", MODE=="0660", GROUP=="username:x:1000:", SYMLINK+="lattice-%n"
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:1.0 > /sys/bus/usb/drivers/ftdi_sio/unbind'"
udevのルールを書き換えた後、有効化する手順。
sudo udevadm control --reload-rules
Tang Nano 4kをコンフィグレーションするとき、GW IDE 1.10.02付属のプログラマーだと「このデバイスはGW1NSR-4だよ」とエラーメッセージを出します。 GW1NSR-4Cを正しく認識してくれません。 GW IDE 1.9.9 付属のプログラマーだと書き込みできました。 書き込んだ内容が正しいかどうかは、まだ確認できていません。
Linuxの openFPGALoader v0.12.1 で書き込めました。
HDMI経由でパソコン出力をDSP-AX1900につないでいるとき、再生する動画によってアンプの電源が落ちることがありました。 試行錯誤した結果、メインボリュームを下げることで解決しました。 音声のオーバーフローで、変な領域をアクセスしていたのかな?
Tang Nano 9kをコンフィグレーションするとき、GW IDE 1.10.02付属のプログラマーだとSRAMには書き込めるのですが、Flash ROMに書き込めません。 Linux の openFPGALoader v0.12.1 で書き込めました。
GoWinのサポートによると、GW IDE 1.10.02付属のプログラマーにバグがあるそうです。 「古いバージョンのプログラマーを使え」と言われました。
udevのルールは、MACH XO3の時と同じ設定でいけます。
Altera(一時Intel)のFPGAをコンフィグレーションするには、USB BlasterなどのJTAGを使います。 このUSB Blasterはニセモノが出回っているようです。
CQ出版社『インターフェース2024年10月号』付録の『FPGAマガジン特別版No.3』の39ページに3種類のニセモノの写真が並んでいて、動作しないニセモノについて書いてありました。
Webmasterが先日購入したのも動かないニセモノだったので、買い直しました。
2023年9月21日 初出
2024年11月19日 追記