よくわからないFPGAのこととか

よくわからないFPGAとか回路とか数学とかについて

アナログ回路とデジタル回路の違いを考える

はじめに

入社して、数日目ぐらいに

「うちの開発1課と隣の開発2課は何が違うんですか?」
「君のいる1課はデジタル回路で2課はアナログ回路の部署なんだよ」
「なるほどです」(ふーん。ふーん?ふーん???)

今まで上記を素直に受け入れられず、何が違うんだろうと考えてきた。
自分なりに考えを一回整理してみる。


目次

<メイントピック>
  • とりあえず結論
  • なんでデジタル回路が生まれたの?
  • アナログ回路とデジタル回路のたとえ
  • アナログ回路の中のデジタル回路
  • アナログ回路とデジタル回路の情報
  • デジタル回路のメリット
<勝手に考えてみた>
  • そもそもなんでデジタル回路が必要なの?
    • コンピュータシステム
    • デジタル回路設計の都合(たくさんの信号を扱う
    • デジタル回路の高速化(結局アナログの概念に戻りつつある?)

<注記>
※この記事は勉強不足で正しくないかもしれません。デジタル回路アナログ回路は人によってい考え方が違ったり、曖昧に使われているものかもしれません。


前置き

電気は熱や光を発生させたり、何かを動かしたり、情報を伝達したりする。
そのうちの「情報」を扱う中でデジタル回路、アナログ回路という概念があるみたい。 情報を扱う以外の回路は強いて言えばアナログ回路(デジタル回路じゃない)とみなされるようだ。


とりあえず結論

アナログ回路の信号にはどの時間にどの電圧(または電流)であったかが情報として含まれる。
デジタル回路はこの信号の情報(電気・時間)をまとまった範囲で扱うことにより、情報の劣化を防ぐ。

f:id:manaka1122:20210103232220j:plain
アナログの中のデジタル回路

アナログ信号は連続的に変化する電気信号だが、デジタル回路は有限個の信号レベル(0と1)である。
ここまではよく言われるが、デジタル回路はタイミングをそろえることで時間の概念も有限個として扱っていると思ってる。

アナログは連続的、デジタルは離散的と考えられるが、デジタル回路も突き詰めればアナログ回路の集まりである。


なんでデジタル回路が生まれたの?(推測含む)

19世紀、エジソンが電球を発明したあたりではデジタル回路という概念はなかったはずである。
いつからか、たぶん誰か電気を使って計算できないか考え始めた。手で計算するのめんどくさいよね。
そして1937年にクロード・シャノンが「継電器及び開閉回路の記号的解析」において、電気回路(ないし電子回路)が論理演算に対応することを示した。
これがデジタル回路の始まりと言われている。この延長にコンピュータシステムがあって、デジタル回路は今日の情報化社会を支えている。

f:id:manaka1122:20210118215915j:plain
なんでデジタル回路

トランジスタがあれば論理回路ができて、論理回路があれば加算器ができる。
加算ができれば減算ができ、加算減算ができれば掛け算割り算もできる。
四則演算ができれば、微分積分などあらゆる計算ができる。

情報を扱うアナログ回路は最後はコンピュータシステムによって検出される。
デジタル回路はやはり演算するコンピュータシステム(と人間)の都合だと考えることもできると思う。


アナログ回路とデジタル回路のたとえ

まず怪しいたとえ話から入ります。2834ml入る桶に2834mlピッタリ入っています。
これをこぼさず10m運びましょう。途中には汚水の雨が降っています。

f:id:manaka1122:20210103232317j:plain
アナログ回路のたとえ

きっと10m先では水もこぼれているだろうし、汚水も入っているかもしれません。
邪魔しないように静かにして、道に屋根をつけてあげました。
それで頑張っても2834mlがきっと2500mlになっちゃうでしょう。

これは困った。このままでは要求を満たせません。
するとADCさんが現れてこう言いました。
2834mlという情報を正確に渡せれば良いんでしょう。情報を12人で分けましょう。

f:id:manaka1122:20210103232339j:plain
デジタル回路のたとえ

これでうまく情報を運ぶことができました。しかし人手がたくさん必要でした。


アナログ回路の中のデジタル回路

電気回路には以下の4つの素子しかありません。

主にアナログ回路は上記の素子で作られます。
もちろんデジタル回路も上記の素子で作られます。
じゃあ使われる素子は同じだけどその使い方で異なるのであろう。

すべては連続的に変化する電気信号であるため、アナログ回路といえると思う。
その中でも連続的に変化するけれど、有限個の信号レベル(0と1)を扱うものをデジタル回路としているっぽい。

f:id:manaka1122:20210103232401j:plain
アナログ回路の中のデジタル回路

アナログは電気信号が連続的に変化するが、デジタル回路は時間、電圧レベル共に離散的に扱っている。
しかし、突き詰めていくとそれは連続的に変化する信号の集まりです。


アナログ回路の情報とデジタル回路の情報

ある連続的なアナログ信号を考えてみます。
ある時間を取り出して、電圧を測って、これを12本の信号に分解します。 これを行うのかADCさんです。
AnalogDigitalConverterはそのままアナログデジタル変換器という意味です。

f:id:manaka1122:20210103232423j:plain
アナログデジタル変換

ここで10mVのノイズが乗ってきてしまったとしましょう。
アナログ信号2834mVは2844mVになり、情報が変化します。

f:id:manaka1122:20210103232455j:plain
アナログデジタル変換(ノイズ)

しかしデジタル信号は0~1Vは0とし,2V以上で1と判断する場合、10mVのノイズが乗ってもデータは変わりません。
つまりデジタル回路のほうがノイズに強いのです。

しかし、トレードオフもあります。
信号1本で伝えられる情報が12本になってしまいました。
信号線が増えるだけでなく、このデータの処理に携わるトランジスタの数が多くなります。

時間と電圧の情報を細かく分解しすぎても大変です。
あまりに細かすぎると物理的に厳しいですが、たいていは情報を必要な分取ります。

f:id:manaka1122:20210118220034j:plain
デジタル回路の細かさ

電圧も必要な細かさ(分解能)で時間も必要な細かさ(サンプリングレートで)取ります。
細かければ細かいほど、コストとかエネルギーが多くなってしまうのでバランスが大切。


デジタル回路にした時の良いところ

ここまででデジタル回路は、

  • メリット:ノイズに強い
  • デメリット:信号線とトランジスタ数が多くなる

しかし最近は半導体の微細加工技術の向上により、トランジスタ1個がどんどん小さく安く作られるようになっています。
そのため、トランジスタが増えることのデメリットは少なくなってきました。

そしてノイズの影響を受け、自由に特性を変えることができないアナログ回路をデジタル回路に代替えするようになり、今までアナログ回路で行っていた処理をデジタルデータで行うなども多くなってきています。


以下、勝手に考えてみた内容


そもそもなんでデジタル回路が必要なの?

コンピュータシステムとの相性

1937年にクロード・シャノンが「継電器及び開閉回路の記号的解析」において、電気回路(ないし電子回路)が論理演算に対応することを示した。ここが始まりのようだ。クロード・シャノンはデジタル回路設計の創始者と言われているみたい。コンピュータの処理は莫大な量の論理演算を行うため、デジタル回路(CPU)を内蔵している。

現代のコンピューターがプログラム内蔵方式のディジタルコンピュータである。
順次命令文を実行させて、限られたHWにて様々な処理ができるようになっている。

限られたHWを何度も活用するために、クロックという概念があり、フリップフロップ(FF)は時間のまとまりで扱うことを可能にしている。

→タイミングの記事 manaka1122.hatenablog.com

→コンピュータアーキテクチャの記事を書きたい(準備中)

たとえば...
CPU:64bit → 0とか1のデータを64bitそろえて処理しますよ
動作クロック:1GHz → データを1nsごとにまとまりにして処理をしていますよ

どんなところで使われているの?

よく言われるのが、RF(無線)関連です。それ以外にもセンサから出てくる情報はまずアナログ信号だったりします。

f:id:manaka1122:20210118220120j:plain
アナログ回路の使われどころ

無線は振幅とか位相情報をある程度まとまりとして扱うので、この記事の説明とは矛盾してしまうかもです。

デジタル回路設計の都合(たくさんの信号を扱う)

デジタル回路という概念はどういった意味合いを含んでいるんだろう?
アナログ回路は少しのノイズでデータが変わってしまうので、とても気を使います。
でもデジタルデータはノイズが乗っても簡単には変わらないし、多少は雑に扱えます。しかし、本数はとんでもなく多いです。
なので、電気信号をデジタル(0,1とクロックごとの時間のまとまり)と考え、アナログに比べて設計を簡略化しているように感じる。

デジタル回路の高速化

デジタル回路が数十MHz程度で動いていた時代は良かったのですが、今は平然とGHzで動きます。
(もちろん数十MHzでもエッジ部分の周波数成分は高くノイズの考慮も大変だと思います。)
CPUの動作クロックも速ければ、インターフェースのクロックも速くなります。
またアナログ回路を吸収することもデジタル回路が高速にしており、これもデジタル回路設計の難易度が上げています。
(たとえば数GHz~数十GHzのシリアル信号を複数レーン、DDRのバススピードなど)