2018-10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【解説記事】Dラッチの構成とその挙動

こんにちは、竹村です。

今回紹介するのはDラッチという回路で、値を保存する回路です。
この回路は今まで紹介した回路とさまざまな点で違います。なので、難しく感じるかもしれませんが、しっかり読んでもらえば理解できると思います。
今回はおまけもついていますよ!
それでは始めていきましょう。


早速ですが、値を保存する回路にはどのような入力があり、どのような出力があればいいのでしょうか?

入力は2種類あります。
1つ目は保存したい値です。
例えば、3という数を保存したいときは、値を保存する回路に「3を保存しろ」と教えてやる必要があります。これが必要なことはすぐにわかると思います。
2つ目は保存するタイミングを教える入力です。
これは、入力されている数をどのタイミングで保存するかを決めるものです。

ここで、疑問に思う人が多いかと思います。
「なぜ保存するタイミングを決める必要があるの?保存したい値が入力されたときにその値を保存すればいいのに」と。
それには、電気回路の性質が関係しています。
電気回路は「入力が無い状態」を作るのが難しいのです。
以前の記事でも紹介しましたが、僕たちは電圧で0と1を表現しています。
仮に入力に何もつながなかったとしても、電圧というものがなくなることはありません。
つまり、いつでも何らかの値が入力されることになってしまうのです。
なので、入力が保存したい値になったときだけ、値を保存するように指示する必要があります。

出力の方はいたってシンプルで、保存している値を出力すれば充分です。
他に欲しい情報も得にありません。

また、以前の記事でも紹介したように、CPUの内部では数は2進数で表現されているので、当然保存する数も、2進数で表現されたものになります。
つまり、0か1のどちらかを選んで保存できる回路が必要となります。それこそがDラッチなのです。
1つのDラッチでは1桁の2進数しか保存できませんが、Dラッチをいくつも用意することで、何桁の2進数でも保存できるようになります。

ではDラッチの真理値表を…と言いたいところなのですが、実はDラッチは真理値表を持ちません
今まで紹介した回路は、ある入力に対し対応する出力がただ一つ存在しました
そのような回路を組み合わせ回路と呼びます。
それに対し、Dラッチは入力が同じでも出力が違う場合があります
具体的に言えば、保存できない状態で保存したい値を0としても、保存している値、つまり出力が、0の場合も1の場合もあり得るのです。
これは、直前の出力が現在の出力に関係するので起こります。このような性質を持つ回路を順序回路と呼びます。

そういうわけで、Dラッチの挙動を回路と照らし合わせながら説明していきます。
リレーの挙動が不安な人は、リレーについての記事と照らし合わせながら読むといいと思います。
Dラッチの回路図は図1となります。右のリレーの出力が左のリレーの入力の一つとなっているのが大きな特徴です。
入力のうち、保存したい値をin、保存できるかできないかを決める入力をCLK、出力をoutとしています。

D-Latch0.png
(図1:Dラッチ 初期状態)

Dラッチは、CLKが1のとき保存可能で、0のときは保存できないようになっています。
つまり、DラッチはCLKが1から0になるときのinの値を、CLKが0の間保存します。
また、回路が複雑でoutが0になるときと1になるときの違いが分かりにくいと思いますが、outは右のリレーの上段のスイッチで決まります。
つまり、左のGとつながっているときはoutは0で、逆に右のVとつながっているときはoutは1になります。

では、0を保存する場合を考えてみましょう。つまりinは0です。
CLKが1のとき、左のリレーのスイッチが動くので、図2のようにinが右のリレーの電磁石の回路につながります。しかし、inは0なので右のリレーのスイッチは動かず、outは0のままです。
ここで、CLKを0にすると、図1の状態に戻り、左のリレーのスイッチが元に戻るのでinが変化してもoutは変わらなくなります。
そして、このときのoutは、Gにつながっているので0です。

D-Latch1.png
(図2:Dラッチ CLK=1、in=0のとき)

次に、1を保存する場合を考えてみましょう。つまりinは1です。
CLKが1のとき、左のリレーのスイッチが動くので、図3のようにinが右のリレーの電磁石の回路につながります。そして、inが1なので右のリレーのスイッチも動き、outはVとつながって1になります。
ここでCLKを0にすると、図4のようになります。
こうして、CLKが0になったときでもoutは1のままで、inが変化してもoutは変化しないまま、つまり値が保存されるのです。

D-Latch2.png
(図3:Dラッチ CLK=1、in=1のとき)

D-Latch3.png
(図4:Dラッチ CLK=1、in=1からCLK=0にしたとき)

実はこのDラッチという回路、論理ゲートの組み合わせでも作れます
しかし、そうするとDラッチ1個あたり7個ものリレーを使うことになってしまうので、コストが明らかに足りなくなってしまうんですね。
この回路のコストをいかに下げるかが、僕らにとって死活問題だったわけです。


今回の解説は以上です。
実はこのDラッチ、以前の活動報告にて動画で紹介した事があります。
動画内ではCLKのことをイネイブル(Enable)と呼んでいますが、それ以外は同じなので、ぜひ見てみてください。

さて、解説記事はこれで一区切りとなり、次回は未定です。
質問は遠慮なくコメントでお願いします。

それではまた、次回の更新で。



おまけ
今回説明したDラッチ、実は紹介した回路通りに作るとちゃんと動いてくれません
どこで誤作動を起こすかというと、1を保存するときです。
図3から図4の状態になるとき、左のリレーのスイッチが動いている間、右のリレーの電磁石に電流は流れません。
よって、右のリレーのスイッチも動いてしまい、図1の状態に戻ってしまうわけです。

これを解決するには、図3から図4の状態になるときに、右のリレーの電磁石に電流を流す必要があります。
そこで登場するのがコンデンサーです。
コンデンサーは充電式の電池だと思ってもらえれば大丈夫です。
コンデンサーを図5のように回路にいれます。

D-Latch4.jpg
(図5:Dラッチ コンデンサーあり)

こうすると、図3から図4の状態になるときに、コンデンサーが右のリレーの電磁石に電流を流してくれます。

説明の簡略化のために本文では省略しましたが、間違ったことを書いておくのもなあと思ったので、おまけという形で紹介しました。


コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://antisemiconductor.blog.fc2.com/tb.php/22-2e265140
この記事にトラックバックする(FC2ブログユーザー)

«  | ホーム |  »

プロフィール

アンチ半導体同盟(仮)

Author:アンチ半導体同盟(仮)
東京工業大学 工大祭 2013でリレー式計算機を展示します。
日時:10月12日(土)、10月13日(日)
場所:大岡山キャンパス西9号館W934講義室
企画名:リレー式計算機展

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
活動紹介 (19)
メンバー紹介 (2)
解説記事 (6)

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。