-高性能なシステムを高速に運用したい、またはしなければならないという背景から、その用途を満たす方法のひとつとして、いまFPGAが注目されている。『ソフトウェア・エンジニアのためのFPGA入門』と題し、これまでFPGAに触れてこなかった方々へFPGAを紹介する当企画。今回はFPGAの仕組みと構造を紹介する前段階として、一般的なRAMの仕組みを解説したい。メモリの仕組みFPGAを構成する主要部分であるLUTはメモリでできている。このため、FPGAを使いこなす一歩として、まず一般的なメモリの仕組みについて知っておいてもらいたい。Memory)を例とする図1に1bitデータ幅、容量16bitのSRAMの構成イメージを示す。データ幅が1bitなので、データの入出力端子は1本である。ほかに16bitのメモリ空間を示す4bitのアドレス入力端子と、出力および書き込み制御を行う入力端子がそれぞれ1本ある。I/Oからアドレス入力端子で指定されたアドレスのデータが出力される。I/Oは入力状態となる。従って、データの書き込みを行う場合はOEを0にする必要がある。Enable)はデータの書き込み指示を行う端子で、通常は0にしておく。I/Oから該当のデータを入力した状態でWEを1にして0に戻すと、指定のアドレスにデータが書き込まれる。この手順について、アドレス0番地に1を、それ以外のアドレスに0を書き込む例で説明する。0番地に1を書き込むには、図2のようにアドレスA0~A3に0000を入力する。I/Oに1を入力する。この状態のまま、WEのみ0から1にして、さらに0に戻す。次にこの状態から、1番地にデータを書き込むので、図3に示すようにアドレスを0001とする。その他は先程と同じ手順となる。これをF番地までの全てのアドレスに対して行う(図4)。次に書き込まれたデータの読み出しは図5に示す通り、読み出したいアドレスを指定してOEを1にするだけである。以上がSRAMの基本動作となる。FPGAはこのSRAMを用いて論理回路を実現している。メモリの0番地に書かれたデータを読み出すここまで、FPGAの演算処理の中心であるLUTに使用されている、一般的なRAMの動作について解説した。次回はこのRAMを使用してLUTが実現される仕組み、そこからいよいよ、本企画のメインテーマとなるFPGA全体の構造と仕組みについて紹介する。元FPGA-CAFE店長。回路図は読める人のためのHDLガイド」(秀和システム)がある。Corporation。