LatticeのケーブルでXilinxのFPGAをコンフィグ

JTAGの標準フォーマットSVFを経由することで、iMPACT(Xilinxのコンフィグソフト)からSVFを出力→ispVM(Latticeのコンフィグソフト)で読み込んで実行とやれば普通にコンフィグできた。
SPI Flashの書き込みもできたので、これでXilinxのケーブル買わなくても済む。


SVFの中身はテキストで書かれたコマンド+ビット長+16進数のデータ本体なので、ざっと読んでみたが、ちゃんとベリファイもやってるっぽいので、問題なさそう。


手順の覚書。

  1. iMPACTを起動する
  2. Boundary Scanチェーンを手動入力するを選ぶ
  3. JTAGチェーンの構成に合わせて、Add Xilinx Deviceで追加する(bitファイル内にデバイス名が書いてあるのでデバイスは自動的に決まる)
  4. Output→SVF File→Create SVF FileでSVFモードにする
  5. ファイル保存ダイアログが出るので、出力するSVFファイルの名前を入力
  6. 全デバイスを選択して、Program(一部だけコンフィグすることも可能のようだが、やったことがない)
  7. 行いたいことが終わったらOutput→SVF File→Stop writing to SVF Fileを選択し、SVFへの記録を止める
  8. ispVMを起動する
  9. Add DeviceでJTAG-SVFを選び、先ほどのSVFファイルを読み込む
  10. FPGAをLatticeのケーブルに接続する
  11. Go(Downloadの実行)を押す


これでコンフィグできる。
ispVMの機能を見ている限り、単一デバイスごとのSVFファイルを作って、チェーンの構成はispVM側で設定しても出来そうな気はする。
今のところXilinxのデバイスしかいないので、より確実なiMPACT側で設定し、Latticeのほうからは単一のデカいJTAGバイスとして見えるようにしてやっている。


SVFを経由するので手順が煩雑になるが、ケーブルが統一できるのはメリットだと思う。
逆にLatticeのFPGAXilinxのケーブルでコンフィグとかもできるとは思うが、もともとの目的が手持ちのLatticeのケーブル(バイトの時にもらった)でXilinxFPGAがコンフィグできたらいいなということだったので、本末転倒。
最近のFPGA評価ボードとかだと、USB接続のJTAGが内蔵されていたりするが…