以下のデジタル回路の問題をやってみる。続き。
Q: 同期回路と非同期回路の違いは何ですか?
A: 同期順序回路は、クロック信号の立ち上がり(0から1への遷移)または立ち下がり(1から0への遷移)で指定された時間の離散的な瞬間に状態と出力値を変更します。例えば、フリップフロップは2進数の値を記憶し、入力値に基づいてクロックのエッジで変化することができます。
A: 非同期式順序回路では、ある状態から別の状態への遷移は、クロックエッジのような外部同期なしに主入力の変化により開始される。 フィードバックループを持つ組合せ回路と考えることができる。 非同期式逐次回路は、論理ゲート間のフィードバックがあるため、過渡的な条件により不安定になることがあり、一般には使用されない。簡単な例として RSラッチ。
Q: セットアップタイムとホールドタイムについ説明してください。
- A: セットアップタイムは、クロックによる正しい転送が行われるために、クロックが確定されるまでに入力信号が確定していなければならない時間を示す。
A: ホールドタイムは、クロックによる正しい転送が行われるために、クロックが確定された後信号が安定していなければならない時間を示す。
Q: クロックスキューの意味は何でしょうか?
- A: 互いに影響し合う任意の2つのフロップにおけるクロック信号の到達時間の差をクロックスキューという。
- 例えば、上図では、1番目のフリップフロップからのD入力は、組み合わせデータパス回路を経由して2番目のフリップフロップに伝搬されます。共通のソースからのクロック(SYSCK)は両方のフリップフロップに配線されますが、配線や配線遅延により、2つのフリップフロップでエッジを確認する際にわずかな差が生じる可能性があります。この時間の差をクロックスキューと呼びます。
クロックスキューが重要なのは、一方のフリップフロップの出力をもう一方のフリップフロップがサンプリングしている2つのフリップフロップ間だけです。
Q: 下図のような順序回路において、両方のフリップフロップのクロック-出力間遅延=10ns、セットアップ時間=5ns、ホールド時間=2nsと仮定します。また、組合せデータパスの遅延は10nsとする。設計が正しく動作するために可能なCLKAの最大周波数を計算しなさい。
- A: この順序回路が正しく動作するためには、最初のフリップフロップの出力が組み合わせデータパスを伝搬し、次のクロックエッジの前に2番目のフリップフロップのセットアップ時間に等しい最小時間だけ安定である必要があります。TCLKAをクロック周期、TCQをクロックから出力までの遅延、TPDをデータパスの伝搬遅延、TSETをフリップフロップのセットアップ時間とすると、この条件はTCLKA ≥ TCQ + TPD + TSETとなります。
したがって、この例ではクロック周期は >= 10+10+5 = 25ns、最大周波数は 1/25ns = 40MHz とする必要があります。
Q: フリップフロップとラッチの違いは何ですか?
- A: ラッチとフリップフロップは、情報を記憶するための基本素子です。 1つのラッチまたはフリップフロップは1ビットの情報を記憶することができます。
- ラッチとフリップフロップの大きな違いは、ラッチの場合、イネーブル信号がアサートされている限り、その出力は入力の影響を常に受けることです。つまり、イネーブル信号がHighのとき、入力が変化するとラッチの内容もすぐに変化します。
一方、フリップフロップは、通常クロック信号であるイネーブル信号の立ち上がりまたは立ち下がりエッジでのみ内容が変化します。クロックの立ち上がりエッジまたは立ち下がりエッジの後は、入力が変化してもフリップフロップの内容は一定に保たれます。
Q: レースコンディションとは何ですか?どのような状況で発生し、どのように回避できますか?
- A: レースコンディションとは、1でも0でもない出力が得られる場合のこと。安定時間、保持時間の間に安定したデータを維持しないと、準安定状態(0でも1でもない状態)になる。
- これを避けるために、セットアップとホールドタイムを維持する必要があります。