🔧 基本回路の概要
学習目標
- 加減算器、マルチプレクサ、算術論理演算器(ALU)の構造と動作を理解する
- Dフリップフロップの構造と動作を理解する
- 回路の遅延とクロックの関係を理解する
- 同期回路のタイミング制約を理解する
主要な基本回路
加減算器 ← 数値の加算・減算を行う
↓
マルチプレクサ/デマルチプレクサ ← データの選択・分配
↓
算術論理演算器(ALU) ← 算術・論理演算の統合
↓
Dフリップフロップ ← データの記憶・同期
🔄 SRラッチとDラッチ
SRラッチ(SR-latch)
Set(S)とReset(R)の2つの入力を持つ基本的な記憶回路です。
S |
R |
q'(次の状態) |
動作 |
0 |
0 |
q(現在の状態) |
保持 |
0 |
1 |
0 |
リセット |
1 |
0 |
1 |
セット |
1 |
1 |
? |
禁止状態 |
Dラッチ(D-latch)
データ入力(D)とクロック入力を持つラッチ回路です。
動作原理:
・clk = 0のとき:出力qに変化なし(保持)
・clk = 1のとき:入力dの値を出力qに反映(透過)
⚡ フリップフロップの種類
マスタースレイブ型DFF
2つのDラッチを直列に接続した構造で、クロックの立ち上がりエッジで動作します。
d → [Dラッチ(マスター)] → q* → [Dラッチ(スレーブ)] → q
clk /clk
エッジトリガ型DFF
クロックのエッジ(立ち上がりまたは立ち下がり)でのみ動作するフリップフロップです。
クロック立ち上がり時の動作:
clk: 0→1 のとき、入力dの値を出力qに取り込む
clk: 1 の間、入力dが変化してもqは変化しない
⏰ タイミング設計
重要なタイミングパラメータ
- セットアップ時間(tset):クロックエッジの前にデータが安定していなければならない時間
- ホールド時間(thold):クロックエッジの後にデータが安定していなければならない時間
- フリップフロップ遅延(tff):クロックエッジから出力が変化するまでの時間
- パス遅延(tpath):組み合わせ回路の遅延
クリティカルパスとクロック制約
クロック周期の制約:
tclk > tff + tcrt + tset + tskw
ここで:
- tcrt:クリティカル遅延(最大パス遅延)
- tskw:クロックスキュー(クロック到着時刻のズレ)
タイミング制約
セットアップ時間制約:
tclk > tff + tcrt + tset + tskw
ホールド時間制約:
tff + tshrt > thold + tskw
📊 遅延の種類
配線遅延(Interconnect Delay)
配線の抵抗(R)と容量(C)による遅延。配線が長くなるほど遅延が大きくなります。
ゲート遅延(Gate Delay)
論理ゲート自体の遅延。入力から出力までの信号伝搬時間です。
パス遅延(Path Delay)
ゲート遅延と配線遅延の合計。回路全体での信号伝搬時間です。
tpath = ゲート遅延 + 配線遅延
⚠️ ハザードとグリッチ
ハザード(Hazard)とは
本来一定値であるべき出力に生じる一時的な変化のことです。グリッチ(Glitch)とも呼ばれます。
ハザードの原因
- 信号到着時刻のズレ
- 回路の遅延特性の違い
- 同時に変化すべき信号のタイミングのずれ
CMOSでのハザード
NAND回路:
入力の1つでもLowなら出力はHigh
入力変化のタイミングずれでハザードが発生
NOR回路:
入力の1つでもHighなら出力はLow
同様にタイミングずれでハザードが発生
ハザード対策
- 同期設計の採用
- クロックドメインの統一
- 適切なタイミング制約の設定
- カルノー図による論理最適化
📝 理解度チェック
問題:次の用語の説明として正しいものを選んでください
セットアップ時間:
クロックエッジ前にデータが安定していなければならない最小時間
ホールド時間:
クロックエッジ後にデータが安定していなければならない最小時間
クリティカルパス:
パス遅延が最大であるパス
ハザード:
本来一定値であるべき出力の一時的な変化