組合せ回路(Combinational circuit)

 組合せ回路は、複数入力の論理演算により一意に決まる回路のことです。単純に定式化しただけでは無駄な回路が多くなるため簡略化が必要です。カルノー図やクワイン・マクラスキー法などの簡略化法が知られていますが、実際の設計現場では論理合成ツールが最適な論理圧縮を自動で行ってくれるため、回路仕様を十分に理解/検討することの方が重要になります。

演習1 7セグメントLEDデコーダ

7セグメントLEDのaセグメントを発光させる論理を作り、その動作の妥当性を確認しなさい。ただし入力4bitのうち10以上の値は入力されないものとする(don't care)。

7セグメントLEDによる数値の表示と各セクメントの定義

解説

まず真理値表を作成します。続いて、4bitの入力値x3x2x1x0を2bitづつ2つに分けて、4x4の表を作成します。そして各条件に対してaの論理を記載します。ただし、10以上は入力されないのでdon't care(表のグレー箇所)として、カルノー図を完成させます。最終的に4項の積和になりますが、XNORブロックがあるので第3と第4項はまとめ、3項の論理和にします。

 

 

ブロックで動作を確認するために、まず入力の4bitを生成する回路を作ります。0~9までUPしてその次に0に戻るため、カウント値と9を比較してカウントクリアタイミングを生成します。またカウント値は数値表示器で表示し、生成したaはLEDに接続して目視します。カウンタ値が1と4の時にLEDが消灯することを確認すればOK。

7セグメントLEDの真理値表
セグメントaのカルノー図

10進カウンタとセグメントa用のデコーダ回路のブロック実装図((アニメーション付き)
10進カウンタとセグメントa用論理回路図

演習2 ハーフアダー/フルアダー/3bit加算器

ハーフアダーとフルアダーの真理値表を作成し、ハーフアダーを使ってフルアダーをブロックで作成し動作を確認しなさい。またフルアダーを3つ使った3bit加算器を図のように組み立てて定数C1とC3の加算が正しく演算されることを確認しなさい。

 

解説

ハーフアダーの真理値表は右図の通り。

 s=a ^ b

 c=a・b

 

 

 

ハーフアダーの真理値表

ハーフアダーの真理値表


フルアダーの真理値表は右図の通り。一つ前の桁からのキャリーを入力に持つ点が異なります。ci=0の場合はハーフアダーと等価です。

 

フルアダー確認用回路のブロック実装図
フルアダーの真理値表

フルアダーの真理値表

フルアダー確認用回路図

 

3bit加算器の3bit入力2系統は定数C1とC3に割り当てます。また加算結果はエンコーダーを介して数値表示器に表示させます。基本的にフルアダー3つで構成しますが、LSBのキャリー入力は常に0なので、ハーフアダーと同じになります。c1とc3の値を変更して加算結果が正しく数値表示器に表示されることを確認します。

3bit加算器の動作確認用回路図
3biit加算器の動作確認用回路のブロック実装図

演習3 グレイコードカウンタ

カウンタ出力から3bitのグレイコードを生成する組合せ回路を作成し動作を確認しなさい。

 

解説

グレイコードは直前のコードとの変化が1bitのみ(ハミング距離が1)となるコードで、ロータリーエンコーダや非同期バス信号の載せ替えなどに応用されます。通常カウンタ出力からXOR演算により簡単に生成することができます。

3bitグレイコードカウンタの回路図

3bitグレイコードカウンタ回路のブロック実装図(アニメーション付き)

下記は5bitのグレイコード生成用ブロック実装例

5bitグレイコードカウンタ回路のブロック実装図