《注》 以下、マジメに読んでは、イケマセン(笑)
基本的に、ガッコの課題ってのはさぁ、「正解を出す」のが目的じゃぁなくって、「考え方を知る」とか「いろいろ考えてみる」とかってのが目的だと思う。だから、ココに素直に回答を書いちゃっちゃタメにならんと思う。
だから、素直に書いてないっす。 このままレポートに書いたら、きっと貴重な単位を落としますです、はい(^^;
|
普通、論理回路における信号遅延の問題ってのは、「掟」みたいなモンで、反することは許されないにも関わらず、語られることはなく、文章にもなっていないような気がする。
けど、実際には「回路には遅延が存在する」っていう暗黙の前提を無視すると、もっとも簡単な論理回路ですら、動作が困難になる。
例えば、2段の直列入力直列出力シフトレジスタ(笑)。回路で書くと、下図のようになる。
さて、この回路でD1っていう信号は1段目のFlipFlopの出力であり、2段目のFlipFlopの入力でもある。
右側のタイミングをよぉ〜く見ると、D1は、Clockの立ち上がりと同時に変化しているのが判る。
そりゃそーだ、D1は1段目のFlipFlopがClockの立ち上がりで変化させてるんだから、そんなんなるのはアタリマエ。
けどこれって、2段目のFlipFlopにしてみりゃイイ迷惑。なにせClockと同時にd入力が変化してしまう。変化する前の値を取り込みゃ良いのか、変化した後の値を取り込みゃ良いのか、よーわからんってコトになる。
ここで登場するのが、「掟」(笑)。 単に「時間の定義」って話もある。 もっと簡単に言うと「因果関係」かもしんない。
「D1が変化するのはClockの立ち上がりに起因するので、D1の変化はClockの立ち上がりより必ず遅くなる」と考える。
そうすると2段目FlipFlopは、安心して「変化する前のD1の値」を取り込むことが出来る。
この掟を無視すると、シフトレジスタとか同期カウンタとか、同期回路として設計された回路はまるで動作出来なくなる。
非同期カウンタみたいなヤツは生き残れるけど、同期回路を使わずに大規模な回路を作ろうなんて、ほとんど不可能。
|
上記のように、純粋な理論上の論理回路であれば、信号の遅延は「因果関係」に頼るしかない。
そう、もっとも速い因果でも、光の速度は超えないのだ。光の速度を超えて伝わる因果を発見できたなら、もうタイムマシンなんて出来たも同然(笑)
ちなみに、簡易的な論理回路シミュレータの多くは、「ユニットディレイ」って考え方を使ってると思う。つまり、「信号が1ヶのゲートを通過するたびに、出力は入力に対して、シミュレータが扱う最小時間単位だけ遅れる」という考え方。こうしないと、論理回路シミュレータはマトモに動けない。さらに、「どんなゲートでも遅延は一緒」っていう条件と、「配線では信号が遅延しない」っという条件を加えると、シミュレーションの演算量が大幅に減る。
|
じゃ、実際に組みたてた現実のデジタル回路も、因果関係やユニットディレイで動いているかって? いえいえ、現実は常に過酷じゃ。
現実のデジタル回路で信号を伝えるのは、電子だったり電界だったりする。 電界だったら光速に近いと思うけど、電子だったらもっと遅い。 さらに半導体中の電子だと、うんとこさ遅い。(どれくらい遅いかは、計って見たコトないんで、わからんけど)
で、その信号が通るゲートによって電子や電界が通る経路が違うワケだから、ゲート毎に遅延が違う。さらに、ゲートとゲートの間の配線だって、配線が短けりゃ伝達時間も短いし、配線が長けりゃ伝達時間も長い。その配線が何箇所に繋がってるかによっても、伝達時間は変わってくる。 え?なぜ配線個所が伝達時間に影響するかって? そりゃ配線やゲートの入力には容量があって、ゲートの出力には出力インピーダンスがあるんだから、「抵抗を通してコンデンサを充電する場合の電圧変化」みたいな話が絡んでくる。
だから普通LSIを作る場合には、ユニットディレイによるシミュレーションで論理回路としてのバグを取り除き、その次にゲートや配線の遅延を考慮したシミュレーションで、信号伝達時間まで厳密にシミュレーションして、現実世界で起こる可能性のあるバグを取る。
|
これが、0.1μmみたいな、最先端の半導体によるロジックだと、もっと話がヤヤこしい。
0.3μmくらいのプロセスであれば、配線による遅延がゲートによる遅延を超えることは少なかった。だから、先の2段シフトレジスタにおいて、二つのFlipFlopのトリガ端子には、同時にClock信号が伝達すると考えても、大きな問題は無かった。
ところがどっこい、最先端のプロセスだと、ゲートの動作が高速になった分だけ、配線による遅延が無視できなくなってきた。つまり、二つのFlipFlopのトリガ端子には、同じClock信号が伝達されるにも関わらず、同時に信号が伝達するとは限らない。 これってもう、速度や重力が変わると時間が変わる相対論と同じくらいに始末が悪い。
より高速の半導体を得るために、トランジスタの性能を上げてプロセス縮めてっていう物理デバイスの性能向上が計られて来たんだけど、より高速のトランジスタ(最近聞かないジョセフソン素子とか)が出てくると、これまでの論理回路の設計手法を変えてしまうことになるかもしれない。 それとも、電子で動くロジックを捨てて、光で動くロジックに移行するのか・・・
どっちにしろ、20世紀で最も信頼された論理回路設計手法である「同期設計」が、まるで使えなくなってしまう・・かもしれない(笑)
|
これから論理回路を組むような仕事に就く人には、そういう過酷な現実が待ち構えておりますので、「信号遅延の主要因は何か」というような細かい問題はサッサと片付けて、もっと過激な応用問題に挑みましょう(汗)
|