次の表に示す値が格納されたLUT(Lookup Table)と等価な回路はどれか。
ここで,LUTのアドレス信号A2~A0はA0がLSBで,選択肢1~4(図のア~エ)の回路の入力信号aがA2,bがA1,cがA0に対応する。
〔LUTの値〕
アドレス|値/0|0/1|1/2|0/3|1/4|0/5|1/6|1/7|0
正答2
解説
正解は2です。
LUT(Lookup Table)は、入力の組合せ(アドレス)ごとに出力値を表として記憶し、論理回路の代わりに使う仕組みです。
アドレスを3ビットの2進数で表したとき、上位からa、b、cに対応します。
表をabcの順に並べると、000が0、001が1、010が0、011が1です。
同様に、100が0、101が1、110が1、111が0です。
つまり、aとbがともに1のときだけcが反転し、それ以外では出力がcと同じになっています。
【選択肢別解説】
1:× 選択肢1の回路(図のア)は、AND回路の出力とcをOR回路に入れた(a AND b)OR cです。
アドレス7(a=1、b=1、c=1)では出力が1になり、表の値0と一致しません。
2:○ 選択肢2の回路(図のイ)は、AND回路の出力とcをXOR回路に入れた(a AND b)XOR cです。
a AND bが0のときは出力がcと等しく、1のときはcの反転になるので、表の全アドレスの値と一致します。
3:× 選択肢3の回路(図のウ)は、OR回路の出力とcをAND回路に入れた(a OR b)AND cです。
アドレス1(a=0、b=0、c=1)では出力が0になり、表の値1と一致しません。
4:× 選択肢4の回路(図のエ)は、OR回路の出力とcをXOR回路に入れた(a OR b)XOR cです。
アドレス2(a=0、b=1、c=0)では出力が1になり、表の値0と一致しません。
【ポイント】
LUTの問題は、全アドレスを調べる前に、候補ごとに結果が分かれるアドレスを見つけると早く解けます。
FPGAの内部では、このようなLUTを組み合わせて任意の論理回路を実現しています。