FPGA活用回路&サンプル記述集(4) ―― 安定動作のための回路
tag: 半導体 電子回路 ディジタル・デザイン
技術解説 2009年4月 6日
近年,LSIの動作電圧は低下の一途をたどっています.動作電圧が低下すれば,そのぶん予期せぬノイズの影響を受けやすくなります.そこで今回は,製品動作の安定度・信頼性を高めるための設計事例を紹介します.(編集部)
- 事例1.フラッシュ・メモリとCPLDを用いた大規模FPGAの起動回路
【Keyword】 コンフィグレーション - 事例2.調歩同期のシリアル通信を行う回路
【Keyword】 調歩同期
事例1.フラッシュ・メモリとCPLDを用いた大規模FPGAの起動回路
小野 裕幸
外部回路
- 回路図:なし
- 主要部品:なし
- VHDL記述:リスト1-1
- 外部入力:図1-1参照
- 外部出力:図1-1参照
- 内部入力:なし
- 内部出力:なし
- パラメータ:なし
- Altera社,Quartus II
FPGAは論理構成をプログラムできる極めて柔軟性に富んだデバイスです.しかし毎回システム起動時に回路情報(コンフィグレーション・データ)を書き込んであげなければなりません.その内容は外付けのROMに格納されているのが普通です.FPGAとしての柔軟性をより生かすには,ROMをフラッシュ・メモリとして外部から書き換え可能としておきたいものです.さらに書き換えを行うデバイスがFPGA自身であるなら,とてもスマートなシステムになります.
● CPLDを使いフラッシュ・メモリの内容をロードして大規模FPGAを立ち上げる
今回はAltera社の高速,大規模FPGAであるStratix IIを,CPLDであるMAX IIを使い,フラッシュ・メモリの内容をロードして立ち上げる方法を紹介します.FPGAにはコンフィグレーション・ポートがあります.シリアルとパラレル・インターフェースをサポートしていますが,ここではシリアル・インターフェースに限定します.
● FPGAからフラッシュ・メモリを書き換え可能にする
MAX IIにはSPI(Serial Peripheral Interface)を二つ実装しておきます.一方をフラッシュ・メモリに,もう一方をFPGAに接続します.MAX IIの回路データは内部フラッシュ・メモリに格納されています.これを書き換える際にはJTAGからアクセスします.SPIについては,Quartus IIのIPライブラリに入っているので,それを適用すればよいでしょう.
SPIを実装することにより,起動後Stratix IIから逆にフラッシュ・メモリを書き換え可能になります.例えばStratix II側にNios IIプロセッサとUSBインターフェースを備えていれば,ホスト・パソコンをつないで新たなコードをフラッシュ・メモリにダウンロードし,再起動によりFPGAに全く新しい機能を持たせることができるようになります.図1-1にハードウェア・システムの構成を示します.
電源が投入されると,MAX IIはフラッシュ・メモリから順次コンフィグレーション・データを吸い上げ,Stratix IIのコンフィグレーション・ポートのフォーマットに従って内容を送り出します.それを受け取ったStratix IIはコンフィグレーションを完了し,同時にStratix IIとMAX IIの間のSPIも利用可能になります.フラッシュ・メモリ書き換えの際には,Stratix IIからSPIを通じてMAX IIにデータが送られ,MAX IIがもう一つのSPIを通じてフラッシュ・メモリに内容を書き出します.Stratixからフラッシュ・メモリが見かけ上スルーになるということです.
tag: FPGA