IT研修 デジタルとは何か


digit2024

内容更新2024/5


 このページはインターネットを知る前に、デジタルの本質を知るタイパ最強のHPにします。
福井県工業技術センターで自動化を担当してきた経験を凝縮したいと思います。独自解釈なので学術的でないのはご容赦を。


 基本編・・・ まずは前菜から
Q1 アナログとデジタルは何が違うか?
A デジタルが出る前は全てアナログでした。アナログは数直線のように、連続な値を示します。
 一方、デジタルは1,2,3・・・の自然数のように、飛び飛びの値を示します。
1と2の間には値は存在しません。


1−2 アナログの電子回路とデジタルの電子回路はどう違うのか?
 アナログの電子回路は電圧の値を一定比率で拡大したり、縮小したりして電圧を伝えます。スピーカーのアンプが例です。
 一方、デジタルは1か0かの論理を伝えます。実際には、例えば直流5Vと0Vを論理1と論理0にあてはめ、それを伝えます。
ノイズ等で0Vより高くなっても2.5Vまでは論理0、それ以上は論理1とします。
この幅があるため、多少ノイズがあっても、正確に論理を伝えることができます。


1−3 論理を正確に伝えるだけで何ができるの?
 ここからがデジタルのすごいところです。
 デジタル回路(出力0か1)を複数並べると、2進数の整数になります。8個並べると8ビット(0から255までの整数)になります。
例えば、色をデジタルで表現して、Red=8ビット、Green=8ビット、Blue=8ビットの16777216色で表現したりします。
00000000= 0
00000001= 1
00000010= 2
00000011= 3
00000100= 4
00000101= 5

11111111= 255

1−4 足し算や引き算はできるの?
 整数ならできます。デジタル回路編で説明するアダーという回路で加算と減算ができます。
 デジタル回路には2入力のものがあり、そのANDやORやXORを出力するものがあります。
これらを下図のように組み合わせて、1ビットの加算器が作られます。
キャリーCoutを次のビットのキャリーCinに入れて行けば複数ビットの加算器になります。


1−5 小数点以下がある場合はどうするの?
 小数点以下がある場合は、〇.〇〇×10^△という指数表現に変えて計算することができます。
〇.〇〇のところをどこまで細かくするかにより、単精度と倍精度と4倍精度があります。




Q2 デジタル回路ってどんなもの?・・・ここからが面白い
2−1 論理を伝えるデジタル回路はどんなものがあるの?
 デジタル回路は入力が2つ持つことができます。
すると、論理積ANDや論理和ORや排他的論理和XORをつくることができます。
また、1が入ったら1を、0が入ったら0を出力するデジタル回路のことをバッファーと言います
逆に1が入ったら0を、0が入ったら1を出力するデジタル回路のことをインバーターと言います。
ANDは両方1の時に1、それ以外は0
ORはどうちらかが1なら1、両方0なら0
XOPは両方が違うなら1、同じなら0


2−2 デジタル回路の内部は?
 内部はトランジスタとダイオードと抵抗でできた回路です。規格化されていて、TI社の7400シリーズが有名です。
NANDはAND回路+インバーターです。





Q3 デジタル回路はどう発展してきたの? メモリーへの道
 メモリーはPCやスマホでおなじみの記憶装置ですが、その基本は記憶回路から始まります。
3−1 双安定回路
 出力をまた入力へ戻せば、論理0か1の双方が成り立ちます。これが基本の双安定回路です。


3−2 RSフリップフロップ
 双安定回路に入力ピンを作ります。SET信号とRESET信号です。
SETとRESETともに1の時は双安定になります。
SETだけが0ですと、出力は1となり、SETが1に戻っても、1を保持します。
RESETだけが0ですと、出力は0となり、RESETが1に戻っても、0を保持します。
 つまり、記憶することになります。



3−3 Dフリップフロップ ここがポイント!
 RSフリップフロップの記録方法は最後にSETかRESETが0になったか決まりますが、これでは使いづらいです。
そこで、クロック信号(CLKとします)が立ち上がった瞬間の入力信号D値を記憶する回路が以下になります。
これをCLK同期とか単に同期を呼びます。大切な技術です。
 左側の原理図を見て、CLKが0か1、Dが0か1の場合を追いかけて下さい。
すごいでしょう。これが記憶回路の基本です。
出力はQで、Qのバーはnot(Q)です。
 右図は7474という型番のICです。SETのバーとCLのバーが追加され、0の時にセットおよびクリアするという意味です。


3−4カウンター
 CLKが立ち上がった数を数える回路です。先ほどのDフリップフロップを4つ並べます。
下図はクロックが立ち上がる度に、0000⇒0001⇒0010⇒0011⇒0100⇒0101⇒0110⇒0111⇒1000⇒1001・・・とカウントアップします。

 ただ、4ビットは五月雨式に変化しますから、Dフリップフロップの出力時間(10ns程度)づつ遅れが生じます。
それを改良したのが、同期式カウンターと呼ばれ、74163とかが有名です。


3−5 発振回路 クロックとも呼ばれます。1と0を一定時間ごとに繰り返します。
 トランジスタと抵抗とコンデンサで作れる発振回路が以下の左図です。トランジスタはベース電流が流れるとコレクタ電流が流れるスイッチです。
2つあるトランジスタのどちらかが先にONすると、反対側が強制的にOFFになります。
ON側のコンデンサが充電されると、それ以上電流が流れなくなりOFFします。すると、反対側のトランジスタがONします。
よって、一定時間ごとにON・OFFを繰り返し、出力も1ー0を繰り返します。PCでは、右側の図のように、水晶の圧電効果を使って正確なクロックを作っています。


3−6 データセレクタ 入力データを入れ替える回路です。
上側の図で、信号S=0のとき出力Y=A、S=1のとき出力Y=B 
切り替え信号Sで出力が切り替わります。下側はNANDに置き換えた場合で同じです。

3−7 デコーダー コードを分解するという意味
 2進数コードを入力し、それに相当するビットだけを1にします。
下図で(A1,A0)=(0,0)⇒Y0=1、 (A1,A0)=(0,1)⇒Y1=1、・・・以下同様

3−8 ROM(ReedOnlyMemory)
 1度書き込んだら、読みしかできない記憶回路です。
PCの起動用BIOSなど、消えては困るものを書き込みます。
 ダイオードがマトリックス状に並んだ部分がデータです。ダイオード通電なら1、ダイオード切断すれば0になります。
例えば、A=00なら、Y0=1となり、左端の列のデータがD7〜D0になります。

 一方、RAM(RandomAccessMemory)は何回でも読み書きできる記憶回路です。
作業用なので、電源を切るとデータは失われます。
PCの8GBメモリーとかのスペックはRAMの容量です。(8ギガバイトと呼びます)回路は割愛





(作業中)Q4 デジタルの頂点CPUはどんな設計なの? 
 メインディッシュ登場。CPUはPCの心臓部(CentralProcessingUnit)です。
これがわかっている人は情報の学者さん、システムエンジニアでも極一部。まさに神のみぞ知る?

(作業中)4−1 ハンガリー出身アメリカ人のジョン・フォン・ノイマンという方が考えたノイマン型コンピューター方式というのがあります。
 ROMに書き込んだマイクロプログラムという制御コードをクロックごとに読み出します。
制御コードの各ビットはCPU内のレジスタを選択する信号であったり、書き込むタイミング信号であったりします。
マイクロプログラムROMのアドレスはCLKの度に+1されますが、最後にリセットすることで0番からの命令フェッチサイクルに入ります。

参考本=マイクロコンピュータアーキテクチャ オーム社 1982/2/20




(作業中)4−2 デザート1 シーケンス回路とシーケンサー
 シーケンス回路はリレーやタイマーを使った電気回路です。信号機の制御であったり、工場の分電盤の中がこれです。
シーケンサーはシーケンス回路をマイコンに置き換えたものです。コンパクトになりますし、プログラムで書き換えできるので汎用的です。
 シーケンサーのプログラムはラダープログラムと呼ばれ、シーケンス回路を置き換えたものですが、ノイマン型ライクな記述法を紹介します。




(作業中)4−3 デザート2 FPGAとRAMでもマイクロプログラム制御
   ロボット言語も作れてしまいます。
参考=トランジスタ技術2001年5月号 やってみようディジタル回路 第9章
または、下記リンクの近藤幸治のHP に記事全文を掲載しております。



************   りんく   *************
IT研修 インターネットはなぜつながるか
作者:近藤幸治のHP inserted by FC2 system