MAX1000のCONF_DONE 【自作USBブラスター】

アイキャッチ

MAX1000のコンフィグ完了LEDの動きが想像と違ってた。

コンフィグ完了で点灯するという暗黙的に思っていたけど、MAX1000はコンフィグ完了で消灯する。意図してなのか、基板回路の設計ミスか・・・。ま、どっちでもいいけど。

MAX1000のCONF_DONE LED

動作

コンフィグ状態LED状態CONF_DONE信号
コンフィグ前点灯L
コンフィグ中点灯L
コンフィグ完了後消灯H

上の表のような動きです。
回路は↓のようになっていて、FPGAが電流を吸い込むとき(Lレベルのとき)にLEDが点灯します。(左のほうにFPGAがあります)

せっかくなので動作確認

ほんとに少しだけ確認してみました。
別件でCONF_DONEからコネクタへジャンパしている経路を利用して、CONF_DONEにつながる(一般のIO)ピンをFPGA内部でHとLにつないでみます。

以下がソース。
やったのはこれだけですが、 0のとき点灯、1のとき消灯で予想通りの動作です。

conf_done <= '0';
conf_done <= '1';

MAX10のCONF_DONE

データシートも確認しました。かなり要約しましたが、次のような順序でデバイスが起動してきます。

  • CONF_DONEはコンフィグレーション(Configuration)が終わるとリリースされる
  • コンフィグレーションの次にイニシャライズ(Initialize)
  • イニシャライズ後、ユーザモードになる
  • ユーザモードでは、ユーザが設計したデザインが動作する

Configurationピン

データシートのコンフィグピンのまとめ(下図)を見てもイニシャライズ完了がわかるピン(INIT_DONE)はなさそうです。
なので、CONF_DONEを監視することで起動完了を知るのがいいのかなと思います。

「表 24. MAX 10 デバイスのコンフィグレーション・ピンのまとめ」より

コンフィグレーション・ピン入力/出力コンフィグレーション手法
CRC_ERROR出力のみ、オープンドレインオプショナル、JTAGおよび内部コンフィグレーション
CONFIG_SEL入力のみ内部コンフィグレーション
DEV_CLRn入力のみオプショナル、JTAGおよび内部コンフィグレーション
DEV_OE入力のみオプショナル、JTAGおよび内部コンフィグレーション
CONF_DONE双方向、オープンドレインJTAGおよび内部コンフィグレーション
nCONFIG入力のみJTAGおよび内部コンフィグレーション
nSTATUS双方向、オープンドレインJTAGおよび内部コンフィグレーション
JTAGEN入力のみオプショナル、JTAG コンフィグレーション
TCK入力のみJTAGコンフィグレーション
TDO出力のみJTAGコンフィグレーション
TMS入力のみJTAGコンフィグレーション
TDI入力のみJTAGコンフィグレーション

結論

  • コンフィグ完了LEDは、コンフィグ完了時に消灯する
  • INIT_DONEピンはないので、CONF_DONEピンを監視してデバイスの起動を確認する

スポンサーリンク