SPI ROMプログラマの最初のリリース
特電Spartan-6ボードで動作するSPI ROMプログラマの最初のリリースを行いました。
USB-SPI書き込みアプリケーションで、DOSプロンプトから
spiwr.exe -w ファイル名
で書き込めるというものです。
Spartan-6用のBitStreamを書くのに要する時間は10秒程度でした。
SPI ROMへの書き込みのほか、ベリファイ、リード、チップ消去、メモリダンプ、IDCODE読み出し、ステータスレジスタ読み出し、セキュリティコード読み出しなどの機能をつけました。
読み出しやベリファイは1秒程度です。やはり書き込みは、消去を伴っているので時間がかかります。
このツールを使ってbitファイルをSPIメモリに直接書き込めば、FPGAが起動します。
MCSに変換しなくてもよいので、i●PACTを使って書き込むよりも、はるかに手軽です。
また、上で述べたセキュリティコードというのは、SPIメモリに格納された128バイトのワンタイムROM領域で、後半の64バイトは、ベンダーによってあらかじめ重複しない何かが書き込まれています。前半の64バイトはユーザが1回だけ自由に書き込めます。(上の画面のキャプチャーを参照)
何かに使えそうですね。
ただし、今回作った回路は、SPI読み出し部分が完璧ではないようで、かなりの確率でビットが化けます。どうやら書き込みには問題なく、読み出しの場合のみのエラーのようなので、ベリファイエラーとなった場合は複数回ベリファイを行ってみてください。
この問題は、SPIのMISOをFPGA内に取り込む際のタイミングの問題ではないかなと思うので、近いうちに精査します。
FPGAに書き込むBitファイルと、アプリケーションプログラムとソースコード一式を入れて、こちらにアップロードしました。
ご興味のある方はどうぞお試しください。
| 固定リンク
コメント