ディジタル電子回路

フリップフロップと基本回路・タイミング設計

🔧 基本回路の概要

学習目標

  • 加減算器、マルチプレクサ、算術論理演算器(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
同様にタイミングずれでハザードが発生

ハザード対策

  • 同期設計の採用
  • クロックドメインの統一
  • 適切なタイミング制約の設定
  • カルノー図による論理最適化

📝 理解度チェック

問題:次の用語の説明として正しいものを選んでください
セットアップ時間:
クロックエッジ前にデータが安定していなければならない最小時間
ホールド時間:
クロックエッジ後にデータが安定していなければならない最小時間
クリティカルパス:
パス遅延が最大であるパス
ハザード:
本来一定値であるべき出力の一時的な変化