機器各種 - 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つを選んで出力するデジタル回路です。
選択信号によって、どの入力を出力するかを制御します。