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

小野 裕幸,森田 一

近年,LSIの動作電圧は低下の一途をたどっています.動作電圧が低下すれば,そのぶん予期せぬノイズの影響を受けやすくなります.そこで今回は,製品動作の安定度・信頼性を高めるための設計事例を紹介します.(編集部)

事例1.フラッシュ・メモリとCPLDを用いた大規模FPGAの起動回路

小野 裕幸

外部回路

  • 回路図:なし
  • 主要部品:なし
HDL記述
  • 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にハードウェア・システムの構成を示します.

zu01_01.gif
図1-1 大規模FPGAの起動システムの構成

 電源が投入されると,MAX IIはフラッシュ・メモリから順次コンフィグレーション・データを吸い上げ,Stratix IIのコンフィグレーション・ポートのフォーマットに従って内容を送り出します.それを受け取ったStratix IIはコンフィグレーションを完了し,同時にStratix IIとMAX IIの間のSPIも利用可能になります.フラッシュ・メモリ書き換えの際には,Stratix IIからSPIを通じてMAX IIにデータが送られ,MAX IIがもう一つのSPIを通じてフラッシュ・メモリに内容を書き出します.Stratixからフラッシュ・メモリが見かけ上スルーになるということです.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日