機器各種 - Shinichi0713/hard-ware GitHub Wiki

加算器

FPGAにおける加算器(アドダー、Adder)とは、「2つ以上の数値(主にバイナリ値)を加算するための回路(ハードウェア)」のことを指します。
これは**制御器(コントローラ)**ではなく、**演算器(データパス回路)**の一種です。

詳細説明

1. 加算器の役割

  • FPGA内部で、主に2つのバイナリ値(例えば8ビット、16ビットなど)を足し合わせる回路です。
  • 論理合成ツール(Vivado, Quartus等)では、+演算子やadd関数を書くだけで、FPGAのLUTや専用のDSPブロックに変換されます。
  • 例:
    assign sum = a + b;
    
    sum <= a + b;
    

2. 制御器との違い

  • **制御器(コントローラ)**は、状態遷移や信号のタイミング制御を行う論理回路です(例:ステートマシン)。
  • **加算器(演算器)**は、実際のデータ処理・演算を行う回路です。
  • FPGA設計では、**制御器(コントローラ)演算器(データパス)**を分離して設計するのが一般的です。

3. FPGAでの加算器の利用例

  • 算術演算(加算、減算、積和演算など)
  • カウンタ
  • データパスにおけるアドレス計算
  • フィルタや信号処理回路

4. FPGA内部での実装

  • 小規模な加算器はLUT(ルックアップテーブル)で実現されます。
  • 大規模な加算器や高速加算器は、FPGA内蔵のDSPブロックや専用キャリーチェーンで効率的に実装されます。

まとめ

  • 加算器はFPGA上で「数値の加算」を行う演算回路です。
  • 制御器(コントローラ)とは役割が異なり、主にデータを計算するために使われます。
  • FPGA設計では、加算器は非常に基本的かつ重要な構成要素です。

マルチプレクサ

**マルチプレクサ(Multiplexer, 略称:MUX)**とは、複数の入力信号の中から1つを選んで出力する回路です。
日本語では「多重器」や「多重選択器」とも呼ばれます。


基本的な特徴

  • 複数のデータ入力(例:A, B, C, D など)がある
  • **選択信号(セレクト信号)**によって、どの入力を出力するかを決める
  • 出力は1本(選ばれた入力信号がそのまま出力される)

例:2入力1出力マルチプレクサ(2:1 MUX)

  • データ入力:A, B(2本)
  • 選択信号:S(1本)
  • 出力:Y(1本)

論理式は
[ Y = (\overline{S} \cdot A) + (S \cdot B) ]

  • S=0 のとき A が出力
  • S=1 のとき B が出力

例:4入力1出力マルチプレクサ(4:1 MUX)

  • データ入力:A, B, C, D(4本)
  • 選択信号:S1, S0(2本)
  • 出力:Y(1本)

用途

  • データの切り替え(バスの選択、信号の経路制御など)
  • 複数の信号源から1つを選ぶ必要がある場合
  • 論理回路の簡略化

イメージ図

入力A ─┐
       │
入力B ─┼──[選択信号S]──→ 出力Y
       │
入力C ─┤
       │
入力D ─┘

(選択信号によってA~Dのどれか1つがYに出力される)


まとめ

マルチプレクサとは、複数の入力から1つを選んで出力するデジタル回路です。
選択信号によって、どの入力を出力するかを制御します。