FPGA活用回路&サンプル記述集(4) ―― 安定動作のための回路

小野 裕幸,森田 一

● 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に移行し,処理を凍結します.

zu01_02.gif
図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に示します.

zu01_03.gif
図1-3 Max IIを利用してStratix IIをコンフィグレーションするための状態遷移

*     *     *

 ここまでの内容を元にRTLを組んでみました.リスト1-1に示します.ただし,ここではコンフィグレーション・ポートのプロトコルだけを記述しています.実際にはこれに加えてSPIを組み込む必要があります.

おの・ひろゆき
(株)アイメス 執行役 先進製品事業部長

<筆者プロフィール>
小野裕幸.1983年~2003年,日本IBMにて主にHDD(Hard Disk Drive)のサーボ系設計を担当.2001年APTOテクニカルマスター.日立GSTへの移籍を経て,現職では次世代HDDのヘッド・ディスク試験装置の開発に従事.著書に「Mathematica DSPと制御」(トッパン,1992年)がある.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日