デジタル回路 デジタル回路でのアナログ問題

デジタル回路

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/10 15:54 UTC 版)

デジタル回路でのアナログ問題

デジタル回路はアナログ回路と同様に一般的な電子部品で構成されており、物理的な現象に支配される。設計に当たってはそれら部品のアナログ的性質に影響されずに必要なデジタルな動作をさせるようにしなければならない。デジタルシステムはノイズやタイミングのマージン、寄生インダクタンスや寄生キャパシタンスを管理し、電源との接続をフィルタリングしなければならない。

設計に不備があると「グリッチ」と呼ばれる極めて細いパルスが発生し、ごく一部のロジックだけがそれに反応する。また、「ラントパルス」というしきい値に到達しないパルスが発生したり、ロジックの状態が予期しない組み合わせになったりする。

さらにクロックで駆動されるデジタルシステムをアナログシステムや異なるクロック周波数のデジタルシステムと接続する場合、入力の変化がデジタル入力ラッチの設定時間に違反することもある。このような状況は自然に解決するがそれまでにかかる時間は不定であり、その間に無効な信号がデジタルシステム内を伝播することになる。

デジタル回路はアナログ電子部品で出来ているため、同等の体積と電力を使ったとき、低精度のアナログ回路よりも処理速度が遅くなる。しかしデジタル回路はノイズへの耐性が高いため、繰り返し計算することができる。一方、高精度の計算(例えば14ビット以上の精度が必要な場合)では、アナログ回路はデジタル回路よりも大規模になり、電力も多く消費する。

構築

デジタル回路は論理ゲートと呼ばれる小さな電子回路から構成されることが多く、それによって組合わせ論理を形成する。個々の論理ゲートはブール論理の関数を実装している。論理ゲートは電気で制御されるスイッチを配置したもので、スイッチとしてトランジスタを使ったものが多い。論理ゲートはそれぞれに回路記号が対応している。詳しくは論理回路を参照。

論理ゲートの出力は電流または電圧であり、それがさらに後段の論理ゲート群を制御する。

論理ゲートはトランジスタの個数を最小に押さえて、大きさ・電力消費・コストをなるべく低減し、同時に信頼性を高く保つよう設計される。

集積回路は大量の論理ゲートを安価に生産する手段である。集積回路の設計にはEDAソフトウェアを使うのが一般的である(後述)。

参照テーブルを使ってデジタル回路を構築する技法もある(プログラマブルロジックデバイスなど)。参照テーブルを使った技法は、論理ゲートに基づく場合と同等の機能を実装でき、同時に配線を変更せずに容易に再プログラム可能である。すなわち、設計者が配線を変更せずに設計ミスを修正できる。したがって少量生産ではPLDなどをよく利用している。それらも一般にEDAソフトで設計されている。

デジタル回路として大規模なものが必要になり、低速であっても複雑なアルゴリズムや連鎖的動作が必要な場合、組み込みシステムとしてマイクロコントローラプログラムを搭載して使うことが多い。

工場の生産ラインの制御などでは、プログラマブルロジックコントローラ (PLC) がよく使われている。こちらはラダー・ロジックなどを使って生産ラインのエンジニアがプログラミングを行う。

デジタルシステムの構造

回路の複雑さを低減させるためには、なるべく単純化して機能を最小限にすることが多いが、これにより誤りも少なくなり安価となる。回路の単純化のためのアルゴリズムとしては、CADシステムに組み込まれたエスプレッソ・ヒューリスティック・ロジック・ミニママイザー英語版などがよく使われているが、古典的な二分決定図、自動化したクワイン・マクラスキー法真理値表カルノー図ブール代数なども使われてきた。

デジタル回路の設計にとって、その表現は重要である。一部の解析手法は特定の表現でないと使えない。デジタル回路の古典的表現として論理ゲートを使ったものがある。もう1つの表現はトランジスタなどの電子スイッチを使って構成を表す方法がある。簡単な方法の1つとして、真理値表をメモリー上に配置する方法がある。入力群をメモリのアドレスとして使い、そのアドレスの指すメモリの内容が論理関数の出力となる。自動解析のために、これらの表現にはデジタルのファイルフォーマットがあり、コンピュータプログラムで処理することができる。

表現の選択にあたってはデジタルシステムの種類を考慮する。ほとんどのデジタルシステムは組合わせ回路順序回路に分けられる。組合わせ回路は入力(の組合わせ)が同じであれば常に同じ出力を示す。これは論理関数を組み合わせたもの(基本論理ゲートの組合せ)といえる。

順序回路は一部の出力が入力にフィードバックされる組合わせ回路ということができる。これによって「逐次的」な動作を実現できる。最も単純な順序回路としてフリップフロップがあり、二進法数字または「ビット」を保持することができる。

順序回路は有限オートマトンとして設計することが多い。その場合、システムの大まかな振る舞いを設計すれば論理関数の詳細を考慮せずにシミュレーションで検証できる。

順序回路はさらに2つに分類でき、クロック信号で駆動することで状態が一斉に変化するクロック同期システムと、入力の変化に伴って変化が伝播していく非同期システムがある。同期順序回路はフリップフロップのような非同期回路で構成されていて、それらがクロック信号にあわせて状態を変化させるようになっているため、タイミングマージンの設計には注意が必要である。

同期順序状態機械を実装する一般的な方法は、それを組合わせ回路部分と「状態レジスタ」と呼ばれるフリップフロップ群とに分けることである。クロック信号のパルスの度に状態レジスタが組合わせ回路の以前の状態から生成されたフィードバックを捉え、状態機械の組合わせ回路部分への不変の入力としてそれをフィードバックする。クロック周波数をどれだけ上げられるかは、組合わせ回路で最も時間のかかる経路によって決まる。

状態レジスタは単に二進数の数値を表している。状態機械の状態に番号を振れるとすれば、論理関数は次の状態の番号を生成する組合わせ回路だと言える。

それに対して非同期システムはありうるタイミングを全て考慮し、あらゆる状態を考慮しなければならず、設計が難しい。一般的手法としては、個々の状態が存在しうる最短時間と最長時間の表を作成し、そのような状態の数が最小になるよう回路を調整していき、全体が周期的に「自己再同期」と呼ばれる互換状態に入って待つようにする。そのように注意深く設計しないと容易に不安定な状態になり、個々の電子部品の値の公差などに起因する遅延が蓄積して予測不可能な結果となる。ある種の回路は本質的に非同期であり(フリップフロップで構成されるシンクロナイザ、スイッチデバウンサ、調停回路、外部からの非同期な信号が同期順序回路に入るような回路など)、このような設計が必須である。

2005年現在、同期設計の方が設計と検証が容易なため、デジタルシステムのほとんどが同期設計となっている。設計/シミュレーションツールも非同期回路用のものはほとんど存在しない。しかしうまく設計できればクロック周波数に制限されないぶんだけ非同期の方が優れていると言われている。

多くのデジタル回路はデータフローマシンと見なせる。この場合、同期式レジスタ転送レベルで設計ができ、VHDLVerilogなどのハードウェア記述言語を使うことができる。

レジスタ転送レベルでは、一連のフリップフロップで構成されるレジスタに二進数のを格納する。レジスタの出力は「バス」と呼ばれる配線の束に繋がっており、バスがその数を他の計算機構に向けて転送する。計算機構は単なる組合わせ回路である。計算機構にも出力バスがあり、いくつかのレジスタの入力と繋がっている。レジスタの入力にはマルチプレクサが配置されていることもあり、いくつかのバスから選択して数を格納することができる。あるいは、複数の出力をスリーステート・バッファ経由でバスに接続し、1つを除いて他の出力を遮断することができる。逐次状態機械は、それぞれのレジスタが入力から新たなデータを受け取る時点を制御する。

1980年代、一部の研究者はFIFO式同期論理を使うことでほとんどの同期式レジスタ転送機械を非同期設計に変換できることを発見した。この場合デジタル機械はデータフローの集合と見なせる。フローの各ステップにおいて、非同期の「同期回路」はその出力が妥当なものかどうかを判断でき、次のステップに対して「データを使ってよい」という信号を出すことができる。したがって、相対的に単純なステップ間の同期回路だけを設置すればよい。

コンピュータは最も汎用的なレジスタ転送論理機械である。コンピュータの制御装置は一般にマイクロシーケンサ上でマイクロプログラムを動作させるよう設計されている。マイクロプログラムは自動ピアノの巻紙に似ている。マイクロプログラムの「ワード」またはテーブルのエントリは、コンピュータを制御する全てのビットの状態を指揮する。マイクロシーケンサはカウントし、そのカウントが次のマイクロプログラムを格納したメモリ位置や組合わせ回路を指定する。マイクロプログラムの個々のビットは演算論理装置やメモリや他のコンピュータの部分を制御し、それにはマイクロシーケンサ自身も含まれる。

このようにして、コンピュータを制御するという複雑な設計をもっと単純な論理回路の集合体のプログラミングという比較的単純な作業に還元することができる。

自動化設計ツール

開発コストを低減するため、大規模な論理機械の設計の大部分は自動化されてきた。そのためのコンピュータソフトウェアをEDAツールと呼ぶ。

EDAは多くの場合単純な真理値表のような記述を最適化でき、必要な出力を行う論理ゲート数を縮小したシステムかより小さな参照テーブルを自動的に生成する。そのようなソフトウェアとして最も一般的な例がエスプレッソ・ヒュースリティック・ロジック・ミニママイザーである。

大規模なシステムを最適化する最も実用的アルゴリズムは、代数的操作二分決定図を使い、遺伝的アルゴリズム焼きなまし法を実験的に使った例もある。

コストのかかる開発プロセスを自動化するため、一部のEDAは有限オートマトンの振る舞いを記述した状態表を入力とし、その状態機械の組合わせ回路の真理値表(機能表)を自動生成する。状態表は各状態を並べたテキストの断片であり、さらに状態遷移の条件や出力信号などが書かれている。コンピュータで生成された状態機械の機能表は、Minilogなどのロジック最小化ソフトウェアで最適化するのが一般的である。

実際には大規模な回路を部分ごとに設計し、ツールフローを使ってそれらを結合するのが一般的である。ツールフローは一般にスクリプトであり、設計ツールを正しい順序で呼び出すことができる。マイクロプロセッサなどの大規模なシステムのツールフローは数千におよぶコマンド列であり、多数の技術者の作業を連結する役目を果たす。

デジタル回路を設計する会社は、ツールフローを書いてデバッグすることが仕事となっている。ツールフローは最終的に詳細なコンピュータファイルまたはファイル群を出力し、そこには回路を物理的にどのように構築するかが記されている。多くの場合、集積回路やプリント基板上でトランジスタや配線をどう配置するかが描かれている。

ツールフローの一部は、所定の入力に対するシミュレーション結果を確認することで「デバッグ」される。テストツールはコンピュータファイルに入力と出力を与え、シミュレート動作と期待される動作の間の不一致を強調する。

入力データが正しいと信用されたとしても、設計自体の正しさも検証が必要である。一部のツールフローはまず設計を生成することで設計を検証し、次にツールフローのための互換入力データを生成するためにその設計を走査する。走査によって生成されたデータと入力データが一致すれば、ツールフローがエラーを指摘することはない。

機能検証データを一般に「テストベクタ」と呼ぶ。機能テストベクタは新たに構築した論理回路を正しくテストするために工場などで保存され使われる。しかし、機能テストパターンは一般的な製造工程での障害を検出しない。製造工程用のテストはATPG(自動テストパターン・ジェネレーション英語版)と呼ばれるソフトウェアツールで設計されることが多い。設計自体もテスト可能なようになされ(次節参照)、網羅率が100%に近くなる。

設計が完了し、検証され、テスト可能になったら、さらに製造可能なように処理が必要とされることが多い。最近の集積回路は光の波長よりも構造が細かい。露光マスクの解像度とコントラストを強化するため、干渉縞パターンをマスクに追加するソフトウェアも存在する。

検証可能な設計

論理回路のテストにはいくつかの理由がある。開発したばかりの回路は、設計の意図通りかどうかを検証し、機能やタイミングの要求仕様を満たしているかを確認する意味でテストを必要とする。大量生産に移行した場合も製造工程で問題が生じていないことを確認するためにテストが必須である[3]

大規模なデジタル回路は天文学的な数の状態をとりうる。1つの状態の確認に1μ秒しかかからないとしても、工場で全ての状態をテストすることは明らかに現実的ではない。しかし、大規模な回路はもっと小さなデジタル回路の集合体として設計されるのが一般的である。時間を節約するため、「テスト容易化設計」と称してテスト用の回路を組み込んでおき、部分ごとに単独でテストできるようにすることができる。

よく使われるテスト技法として「スキャン設計」がある。外部試験装置から一連のビットをシフトレジスタを通して逐次入力してテストする方式である。シリアルスキャンには1本か2本の線しか使わず、普段使用しないテスト用回路の大きさとコストをなるべく抑えるよう設計されている。

基板のテスト環境も含め、JTAGというバウンダリスキャンテストの規格が定められている。

他に、回路の一部をテストサイクル状態に移行させるテストモードを提供する方式もある。テストサイクルは通常大きめの独立した部分を対象とする。

トレードオフ

デジタル論理回路の実用性を決定するいくつかの数値がある。技術者らはファン・アウト、高速性、低コスト、信頼性という4点の組み合わせが理想的なデバイスを探究してきた。

論理ゲートは大量に使うため、そのコストは極めて重要である。1930年代、初期のデジタル回路は電話用リレーを使っていた。それは、リレーが安価で比較的信頼性が高かったためである。その後も技術者らは要求を満足しつつ、、その時代で入手できる最も安価なスイッチデバイスを常に採用してきた。

集積回路には幸運な偶然があった。当初、集積回路は低コストだから使われたわけではなく、軽さを重視して採用され、アポロ誘導コンピュータでの慣性航法装置の制御が可能となった。初期の集積回路の論理ゲートのコストは50ドルほどだった(1960年当時の価格であり、技術者の年報が1万ドルほどだった)。その後の集積回路の改良には常にコスト低減が伴っている。

集積回路が発展してくると、チップの絶対数削減もコスト低減の一面を表すようになった。設計の目標には単に回路を単純化することだけでなく、部品点数を減らすことも含まれるようになった。その結果、デジタル回路はやや複雑化することもあったが、部品点数を減らすことで基板を小さくでき、消費電力も低減できるという効果があった。

例えば、一部のロジックファミリではNANDゲートが最も基本的な論理ゲートとなっている。他の論理演算は全てNANDゲートで実装できる。回路で既にNANDゲートを1つ使っているとしたとき、一般に1つのチップにNANDゲートは4つ集積されているので、残りのNANDゲートを例えばANDゲートNANDゲート2個で構成可能)として利用することができる。こうすると、異なる種類の論理ゲートを集積したチップを使う必要がなくなる。

論理ゲートの信頼性は平均故障間隔 (MTBF) で表される。デジタル機器は数百万の論理ゲートを使うことも多い。また、デジタル機器もコスト低減が重要な目標であることが多い。そのため冗長性は考慮されず、1つの論理ゲートの故障で機器全体が動かなくなることが多い。

論理ゲート(またはスイッチ)のMTBFが数百時間を越えたころ、デジタル機器が実用的になってきた。当時のデジタル機械の多くは複雑で、十分試行された修理手順を持っていたが、真空管が焼き切れたりリレーに蛾が挟まったりすると何時間も停止した。現代の半導体集積回路の論理ゲートのMTBFは820億時間(8.2×1010)以上だが[注釈 12]、あまりにも多数の論理ゲートを使っているためそれだけのMTBFが必要となっている。

ファン・アウトは論理ゲートの1つの出力に接続して電流駆動能力の範囲内で制御できる入力の数である[4]。ファン・アウトは少なくとも5以上でないと実用的でない。CMOSの論理ゲートではファン・アウトは最低でも50弱ぐらいである。

スイッチング速度はインバータ(NOTゲート)が1秒間に出力を反転させられる回数で表される。高速であればより短時間により多くの処理が可能となる。初期のデジタル回路は50Hzで動作できるようになったころに人間が機械式計算機を操作するよりも高速となり、実用的となった。最近では5GHz(5×109Hz)でスイッチングできるのが当たり前となり、実験室レベルでは1THz(1×1012Hz)以上も可能となっている。

ロジック・ファミリ

デジタル回路はリレーを使ったものから始まった。リレーは比較的安価で安定動作したが、低速だった。それでも時折故障が起きていた。ファン・アウト数は約10で、コイルの抵抗値に制限されており、高い電圧を印加すると接点で火花が散るという問題が生じた。

次に真空管が使われるようになった。非常に高速だが、発熱量が大きく、フィラメントが焼き切れやすく信頼性は高くなかった。ファン・アウト数は一般に5から7で、発熱に制限された。1950年代にはケイ素のような高温で揮発する性質のある元素を除去したフィラメントを使ったコンピュータ専用の真空管が作られ、数十万時間動作した。

最初の半導体ロジックファミリは抵抗・トランジスタ・ロジック(RTL) である。真空管よりも数千倍信頼性が高く、発熱量も少なく、消費電力も小さかったが、ファンイン数は3と非常に少なかった。ダイオード・トランジスタ・ロジック(DTL)はファン・アウトを約7まで改良し、消費電力をさらに低減させた。ファン・アウト数を増加させるため、NPNのDTLとPNPのDTLを交互に相互接続し、それぞれに電源を用意する方式も考案された。

トランジスタ・トランジスタ・ロジック(TTL)はそれまでのロジックファミリからの大幅な改良をもたらした。ファン・アウト数は初期のデバイスで10まで増加し、後の改良版では20まで安定動作した。また高速であり、20ナノ秒未満のスイッチング時間を達成している。TTLは今も一部用途で使われている。

エミッタ結合論理(ECL)は非常に高速だが、消費電力が大きい。一時期は高性能コンピュータによく使われた(ILLIAC IV など)。

現在最も多く使われているのはCMOSである。高速で小さく、消費電力も低い。ファン・アウトは40以上が可能だが、たくさん接続しすぎると性能が低下する。

最近の発展

半導体を使ったトランジスタをベースとするデジタル回路以外に、最近では次のようなものが研究開発されている。


注釈

  1. ^ 他にも、基準となる交流波に対する位相差、電圧ではなく電流ベースなど、いろいろありうる。
  2. ^ 具体的に許される範囲は異なる。仕様などでは中間に必ず「定常的な状態として、この範囲にしてはならない」という範囲があることが多い。シュミットトリガなど故意にヒステリシスを大きく取り、直前の状態に引きずられるものとして、これを避けることもある。ただしそれでも、非同期系から同期系へのインタフェースには、必ず、セットアップ時間とホールド時間という、何らかのタイミングの瞬間の前後に変動が許されない期間があるため、完全には、準安定状態の可能性を無視してはいけない(en:Metastability in electronics)。
  3. ^ 増幅と同調の順序といった具体的な構成は実例により様々であろう(複同調といった構成もある)。
  4. ^ TTLの出力電圧範囲の入力を許容するCMOSの標準ロジックICもあり、このようなシリーズは「74HCT~」「74ACT~」のように、型番に「T」の文字が入っている。
  5. ^ 大小異なる抵抗を持つ2つの抵抗器を並列に接続した場合、電流は小さな抵抗側により多く流れて、大きな抵抗側には電流はそれほど流れない。抵抗値の大きなプルアップやプルダウンの抵抗器の有無は端子に接続された状態での動作にはそれほど影響しない。
  6. ^ : high-impedance
  7. ^ : three-state
  8. ^ : gate
  9. ^ : enable
  10. ^ : output enable
  11. ^ : chip select
  12. ^ MIL-HDBK-217F notice 2, section 5.3 での10万ゲートの0.8μmCMOS商用集積回路を40℃で使用した場合の値。2010年にはプロセスルールが0.045μmまで小さくなり、ゲート毎に必要なチップ外の接続が少なくなっているため、さらにMTBFが延びている。

出典

  1. ^ "ディジタル回路". 改訂新版 世界大百科事典. コトバンクより2024年3月10日閲覧
  2. ^ ポール・ホロヴィッツ英語版、ウィンフィールド・フィル共著「The Art of Electronics」第二版、ケンブリッジ大学出版局、1989年。ISBN 0-521-37095-7、471ページ
  3. ^ Brown S & Vranesic Z. (2009). Fundamentals of Digital Logic with VHDL Design. 3rd ed. New York, N.Y.: Mc Graw Hill.
  4. ^ ヴィリアム・クライツ(2002年)「Digital and Microprocessor Fundamentals: Theory and Application」第4版、ピアソン・プレンティスホール






デジタル回路と同じ種類の言葉


固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「デジタル回路」の関連用語

デジタル回路のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



デジタル回路のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデジタル回路 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS