FPGA活用回路&サンプル記述集(4) ―― 安定動作のための回路
tag: 半導体 電子回路 ディジタル・デザイン
技術解説 2009年4月 6日
● FPGAのコンフィグレーション・プロトコル
MAX IIとStratix IIの間のコンフィグレーション・プロトコルについて解説します.Stratix IIはこのときはまだ空で,コンフィグレーション・ポートだけが動いています.以降はすべてMAX IIのプログラミングです.
図1-2にコンフィグレーション・プロトコルのタイミング・チャートを示します.各ステートをX0から順に番号を振って示しています.まずX0ですが,Resetの遅延処理を行い,チャタリングなどの誤動作を回避しています.X1は1μsのウェイトです.X2でMAX IIがnCONFIGをアサートします.X3はStratix IIからのnSTATUSのアサート待ちです.ただし,8μs以内にアサートしないときはステートXFに移行し,処理を凍結します.
図1-2 Stratix IIをコンフィグレーションするためのタイミング・チャート
X4はnSTATUSのアサート後8μs待機しnCONFIGをネゲート,さらに2μs待機します.X5ではnSTATUSの確認です.ネゲートならX6へ,アサートされていればX7へ移行します.X6はnSTATUSのネゲート待ちです.ただし,1μs以内にネゲートしないときはステートXFに移行し,処理を凍結します.
X7,X8,X9は後述する状態遷移図と内容をリンクさせるために,便宜上三つのステートに分けたものです.1μsのウェイトの後,Stratix IIにコンフィグレーション・データの転送を開始します.XAではCONF_DONEのアサートを待ち,アサートを確認した時点でデータ転送を終了します.ただし,535ms以内にアサートしないときはステートXFに移行し処理を凍結します.XBはINIT_DONEのアサートを待ち,アサート確認後FPGA_RESETをネゲートします.
ここまででStratix IIのコンフィグレーションは終了です.ここでさらにStratix IIにNios IIを実装した場合を考慮して,FPGA_RESETのネゲートの後にNios II用ファームウエアの転送を開始します.XCがそれで,この転送はコンフィグレーションによって完成したSPIを通じて行われます.このとき,前述のようにStratix IIからフラッシュ・メモリへはスルーになるので,MAX IIのプログラムとしてはNios II用ファームウェアの転送が終わるまで待機しています.転送終了に伴い,FLASH_RESETをネゲートします.XDではFLASH_RESETのネゲートによりすべての処理が完了したことを示し,次のPowerON_RESETnまで待機します.以上をまとめた状態遷移図を図1-3に示します.
図1-3 Max IIを利用してStratix IIをコンフィグレーションするための状態遷移
* * *
ここまでの内容を元にRTLを組んでみました.リスト1-1に示します.ただし,ここではコンフィグレーション・ポートのプロトコルだけを記述しています.実際にはこれに加えてSPIを組み込む必要があります.
おの・ひろゆき
(株)アイメス 執行役 先進製品事業部長
<筆者プロフィール>
小野裕幸.1983年~2003年,日本IBMにて主にHDD(Hard Disk Drive)のサーボ系設計を担当.2001年APTOテクニカルマスター.日立GSTへの移籍を経て,現職では次世代HDDのヘッド・ディスク試験装置の開発に従事.著書に「Mathematica DSPと制御」(トッパン,1992年)がある.
tag: FPGA