理論上の時計の質問


8

何よりも理論的な質問です。クロック信号は、ピークとトラフの間で同じ幅でなければなりませんか?

データ付きの通常のクロック信号(以下):

通常の時計

データを含むランダムなクロック信号(データはまだクロックと同期しています)(以下):

ランダム時計

チップ(一般的にはチップですが、例として、シリアルインパラレルアウトシフトレジスタ)は、よりランダムなクロックで正常に動作しますか?そうでない場合、なぜそうではないのですか?

繰り返しますが、これを計画しているわけではありませんが、理論的にはRaspberry Pi / Arduinoの標準出力ピンをクロックとして使用できず、別のピンをデータとして使用できない理由はありますか?

擬似コードの例:

fakeClockPin = 1;
dataPin = 2;

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, HIGH);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

setPin(dataPin, LOW);
setPin(fakeClockPin, HIGH);
sleep(1); //1ms
setPin(fakeClockPin, LOW);
sleep(1); //1ms

すべてのクロックが対称であるとは限りません。一部の古いマイクロプロセッサは、66%のデューティサイクル(私が正しく覚えていれば)クロックを必要としました。
HL-SDK

1
疑似コードで記述された手法はビットバンギングと呼ばれ、完全に正当なことです。
Phil Frost

回答:


12

例では、ポジティブエッジでクロック信号がエッジトリガーになります。クロックエッジ(セットアップタイム)の少し前にデータが安定している必要があり、クロックが立ち下がりエッジでラッチする場合、データの変化と同時に発生することがわかります。

セットアップ時間を除いて、いくつかの制約があります。クロックは、必要なだけ高いままでかまいません。ただし、次の立ち上がりエッジの前に、最低のロータイムが必要です。


7

チップは、データシートで指定されている「通常の操作パラメーター」内で操作する限り、正常に動作します。ほとんどのチップには、クロックエッジ間の最小時間とセットアップタイム(データクロックエッジからアクティブクロックエッジまで)に関する要件しかありません。どちらも時計を伸ばすことによって違反されません。

実際には、ソフトウェアで生成されたクロック信号のタイミングは常に大きく変動します。重要な点は、外付けのチップに対してあまり速く実行しないことです。しかし、一般的なシフトレジスタのタイミングは、数十ナノ秒で表されます。これは、観察される1ミリ秒よりも数桁速いです。


1

「クロックピン」を備えた単純なチップは、クロックエッジがいつ到着したかは関係ありません。さらに、等時性パルスは、ソフトウェアや、PLLベースのデバイスなどのより複雑なハードウェアの利点のためのものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.