hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
デジタル回路 構築
デジタル回路として大規模なものが必要になり、低速であっても複雑なアルゴリズムや連鎖的動作が必要な場合、組み込みシステムとしてマイクロコントローラにプログラムを搭載して使うことが多い。
工場の生産ラインの制御などでは、プログラマブルロジックコントローラ (PLC) がよく使われている。こちらはラダー・ロジックなどを使って生産ラインのエンジニアがプログラミングを行う。
回路の複雑さを低減させるためには、なるべく単純化して機能を最小限にすることが多いが、これにより誤りも少なくなり安価となる。回路の単純化のためのアルゴリズムとしては、CADシステムに組み込まれたエスプレッソ・ヒューリスティック・ロジック・ミニママイザーなどがよく使われているが、古典的な二分決定図、自動化したクワイン・マクラスキー法、真理値表、カルノー図、ブール代数なども使われてきた。
デジタル回路 構築
デジタル回路の設計にとって、その表現は重要である。一部の解析手法は特定の表現でないと使えない。デジタル回路の古典的表現として論理ゲートを使ったものがある。もう1つの表現はトランジスタなどの電子スイッチを使って構成を表す方法がある。簡単な方法の1つとして、真理値表をメモリー上に配置する方法がある。入力群をメモリのアドレスとして使い、そのアドレスの指すメモリの内容が論理関数の出力となる。自動解析のために、これらの表現にはデジタルのファイルフォーマットがあり、コンピュータプログラムで処理することができる。
表現の選択にあたってはデジタルシステムの種類を考慮する。ほとんどのデジタルシステムは組合わせ回路と順序回路に分けられる。組合わせ回路は入力（の組合わせ）が同じであれば常に同じ出力を示す。これは論理関数を組み合わせたもの（基本論理ゲートの組合せ）といえる。
順序回路は一部の出力が入力にフィードバックされる組合わせ回路ということができる。これによって「逐次的」な動作を実現できる。最も単純な順序回路としてフリップフロップがあり、二進法の数字または「ビット」を保持することができる。
順序回路は有限オートマトンとして設計することが多い。その場合、システムの大まかな振る舞いを設計すれば論理関数の詳細を考慮せずにシミュレーションで検証できる。
デジタル回路 構築
順序回路はさらに2つに分類でき、クロック信号で駆動することで状態が一斉に変化するクロック同期システムと、入力の変化に伴って変化が伝播していく非同期システムがある。同期順序回路はフリップフロップのような非同期回路で構成されていて、それらがクロック信号にあわせて状態を変化させるようになっているため、タイミングマージンの設計には注意が必要である。
同期順序状態機械を実装する一般的な方法は、それを組合わせ回路部分と「状態レジスタ」と呼ばれるフリップフロップ群とに分けることである。クロック信号のパルスの度に状態レジスタが組合わせ回路の以前の状態から生成されたフィードバックを捉え、状態機械の組合わせ回路部分への不変の入力としてそれをフィードバックする。クロック周波数をどれだけ上げられるかは、組合わせ回路で最も時間のかかる経路によって決まる。
状態レジスタは単に二進数の数値を表している。状態機械の状態に番号を振れるとすれば、論理関数は次の状態の番号を生成する組合わせ回路だと言える。
デジタル回路 構築
それに対して非同期システムはありうるタイミングを全て考慮し、あらゆる状態を考慮しなければならず、設計が難しい。一般的手法としては、個々の状態が存在しうる最短時間と最長時間の表を作成し、そのような状態の数が最小になるよう回路を調整していき、全体が周期的に「自己再同期」と呼ばれる互換状態に入って待つようにする。そのように注意深く設計しないと容易に不安定な状態になり、個々の電子部品の値の公差などに起因する遅延が蓄積して予測不可能な結果となる。ある種の回路は本質的に非同期であり（フリップフロップで構成されるシンクロナイザ、スイッチデバウンサ、調停回路、外部からの非同期な信号が同期順序回路に入るような回路など）、このような設計が必須である。
2005年現在、同期設計の方が設計と検証が容易なため、デジタルシステムのほとんどが同期設計となっている。設計/シミュレーションツールも非同期回路用のものはほとんど存在しない。しかしうまく設計できればクロック周波数に制限されないぶんだけ非同期の方が優れていると言われている。
多くのデジタル回路はデータフローマシンと見なせる。この場合、同期式レジスタ転送レベルで設計ができ、VHDLやVerilogなどのハードウェア記述言語を使うことができる。
デジタル回路 構築
レジスタ転送レベルでは、一連のフリップフロップで構成されるレジスタに二進数の数を格納する。レジスタの出力は「バス」と呼ばれる配線の束に繋がっており、バスがその数を他の計算機構に向けて転送する。計算機構は単なる組合わせ回路である。計算機構にも出力バスがあり、いくつかのレジスタの入力と繋がっている。レジスタの入力にはマルチプレクサが配置されていることもあり、いくつかのバスから選択して数を格納することができる。あるいは、複数の出力をスリーステート・バッファ経由でバスに接続し、1つを除いて他の出力を遮断することができる。逐次状態機械は、それぞれのレジスタが入力から新たなデータを受け取る時点を制御する。
1980年代、一部の研究者はFIFO式同期論理を使うことでほとんどの同期式レジスタ転送機械を非同期設計に変換できることを発見した。この場合デジタル機械はデータフローの集合と見なせる。フローの各ステップにおいて、非同期の「同期回路」はその出力が妥当なものかどうかを判断でき、次のステップに対して「データを使ってよい」という信号を出すことができる。したがって、相対的に単純なステップ間の同期回路だけを設置すればよい。
デジタル回路 構築
コンピュータは最も汎用的なレジスタ転送論理機械である。コンピュータの制御装置は一般にマイクロシーケンサ上でマイクロプログラムを動作させるよう設計されている。マイクロプログラムは自動ピアノの巻紙に似ている。マイクロプログラムの「ワード」またはテーブルのエントリは、コンピュータを制御する全てのビットの状態を指揮する。マイクロシーケンサはカウントし、そのカウントが次のマイクロプログラムを格納したメモリ位置や組合わせ回路を指定する。マイクロプログラムの個々のビットは演算論理装置やメモリや他のコンピュータの部分を制御し、それにはマイクロシーケンサ自身も含まれる。
このようにして、コンピュータを制御するという複雑な設計をもっと単純な論理回路の集合体のプログラミングという比較的単純な作業に還元することができる。
開発コストを低減するため、大規模な論理機械の設計の大部分は自動化されてきた。そのためのコンピュータソフトウェアをEDAツールと呼ぶ。
EDAは多くの場合単純な真理値表のような記述を最適化でき、必要な出力を行う論理ゲート数を縮小したシステムかより小さな参照テーブルを自動的に生成する。そのようなソフトウェアとして最も一般的な例がエスプレッソ・ヒュースリティック・ロジック・ミニママイザーである。
デジタル回路 構築
大規模なシステムを最適化する最も実用的アルゴリズムは、代数的操作か二分決定図を使い、遺伝的アルゴリズムや焼きなまし法を実験的に使った例もある。
コストのかかる開発プロセスを自動化するため、一部のEDAは有限オートマトンの振る舞いを記述した状態表を入力とし、その状態機械の組合わせ回路の真理値表（機能表）を自動生成する。状態表は各状態を並べたテキストの断片であり、さらに状態遷移の条件や出力信号などが書かれている。コンピュータで生成された状態機械の機能表は、Minilogなどのロジック最小化ソフトウェアで最適化するのが一般的である。
実際には大規模な回路を部分ごとに設計し、ツールフローを使ってそれらを結合するのが一般的である。ツールフローは一般にスクリプトであり、設計ツールを正しい順序で呼び出すことができる。マイクロプロセッサなどの大規模なシステムのツールフローは数千におよぶコマンド列であり、多数の技術者の作業を連結する役目を果たす。
デジタル回路を設計する会社は、ツールフローを書いてデバッグすることが仕事となっている。ツールフローは最終的に詳細なコンピュータファイルまたはファイル群を出力し、そこには回路を物理的にどのように構築するかが記されている。多くの場合、集積回路やプリント基板上でトランジスタや配線をどう配置するかが描かれている。
デジタル回路 構築
ツールフローの一部は、所定の入力に対するシミュレーション結果を確認することで「デバッグ」される。テストツールはコンピュータファイルに入力と出力を与え、シミュレート動作と期待される動作の間の不一致を強調する。
入力データが正しいと信用されたとしても、設計自体の正しさも検証が必要である。一部のツールフローはまず設計を生成することで設計を検証し、次にツールフローのための互換入力データを生成するためにその設計を走査する。走査によって生成されたデータと入力データが一致すれば、ツールフローがエラーを指摘することはない。
機能検証データを一般に「テストベクタ」と呼ぶ。機能テストベクタは新たに構築した論理回路を正しくテストするために工場などで保存され使われる。しかし、機能テストパターンは一般的な製造工程での障害を検出しない。製造工程用のテストはATPG（自動テストパターン生成）と呼ばれるソフトウェアツールで設計されることが多い。設計自体もテスト可能なようになされ（次節参照）、網羅率が100%に近くなる。
設計が完了し、検証され、テスト可能になったら、さらに製造可能なように処理が必要とされることが多い。最近の集積回路は光の波長よりも構造が細かい。露光マスクの解像度とコントラストを強化するため、干渉縞パターンをマスクに追加するソフトウェアも存在する。
デジタル回路 構築
論理回路のテストにはいくつかの理由がある。開発したばかりの回路は、設計の意図通りかどうかを検証し、機能やタイミングの要求仕様を満たしているかを確認する意味でテストを必要とする。大量生産に移行した場合も製造工程で問題が生じていないことを確認するためにテストが必須である。
大規模なデジタル回路は天文学的な数の状態をとりうる。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）以上だが、あまりにも多数の論理ゲートを使っているためそれだけのMTBFが必要となっている。
デジタル回路 構築
ファン・アウトは論理ゲートの1つの出力に接続して電流駆動能力の範囲内で制御できる入力の数である。ファン・アウトは少なくとも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以上が可能だが、たくさん接続しすぎると性能が低下する。
デジタル回路 最近の発展
半導体を使ったトランジスタをベースとするデジタル回路以外に、最近では次のようなものが研究開発されている。
論理回路
論理回路（ろんりかいろ、英: logic circuit）とは、デジタルな電子回路による、論理演算や記憶を行う回路である。
論理回路 概要
真理値の「真」と「偽」、あるいは二進法の「0」と「1」を、電圧の正負や高低、電流の方向や多少、位相の差異、パルスなどの時間の長短、などで表現し、論理素子などで論理演算を実装する。電圧の高低で表現する場合それぞれを「H（ハイ）」「L（ロー）」等という。基本的な演算を実装する論理ゲートがあり、それらを組み合わせて複雑な動作をする回路を構成する。状態を持たない組み合わせ回路と状態を持つ順序回路に分けられる。
論理回路 表記法
論理回路の設計には、論理式や真理値表が用いられる。さらに回路図的な表記手段としてMIL記号など論理素子記号が使われる。
負論理には正論理の信号名の上にオーバーバー（例：  ）を加えることで表現し、MIL記号では小丸(○)で表現する。
論理回路 正論理・負論理
MIL記号を含めて通常のロジック・ダイアグラムでは正論理と負論理が混在して使用される。
正論理では「H」を真偽値の「真」に、負論理では「L」を真偽値の「真」に対応させる。
厳密には正論理の出力信号線は必ず正論理の入力に接続されねばならず、負論理出力は負論理の入力に接続されねばならないが、図面上の表記として必ず守られるとは限らない（「厳密には」というよりは、図面の目的による。たとえば、論理的な動作を理解するための図であるのか、製造のための電子的な回路図に近い性格のものであるのか、結局のところケースバイケースであろう）。
論理回路 組み合わせ回路
組み合わせ回路は、現在の入力のみで出力が決まる回路である。
加算器 : 2進数の加算を行うもの。全加算器と半加算器があり、多桁の全加算器では桁上げの高速化の為に「キャリールックアヘッド回路」を備えるものもある。負の数の表現に2の補数を使っているのであれば、減算は2の補数を加算することで実現出来る。回路規模が大きくなってもわずかでも高速化したい場合、減算に対応するための論理反転の追加（XORを1段または、NOTを1段とセレクタを1段）を避け、専用の減算回路を持つこともある。
論理回路 順序回路
順序回路は過去の内部状態と取得時の入力信号とで出力が決まる回路である。組み合わせ回路は、伝播遅延によって信号が遅れることを除けば、入力の組み合わせだけで出力が一意に決まるが、順序回路はループにより内部に状態を保持しており、過去の入力に影響されるその状態も、出力の決定に関わる。入力信号の組み合わせによっては「不定」になる場合がある（ラッチ回路#SRラッチの「不定」）。
フリップフロップは制御信号により現在の入力信号の保持を行うものである。ラッチとも呼ばれる。論理回路ではフリップフロップと呼ぶものも、コンピュータ・システムでの回路名としては（通常は複数ビットの記憶回路を）レジスタと呼ぶ。フリップフロップにはクロック入力の有無により同期式と非同期式がある。
カウンタ回路は、特定の順序で出力の組み合わせが変化し、一定の周期で元の状態に戻るもので、フリップフロップとゲートとをいくつか組み合わせたものである。
論理回路 順序回路
また、全ての出力状態が使用されるものと出力状態の一部のみ使用されるものの差で次の2つのグループに分類出来る。
カウンタには同期式と非同期式があり、非同期式カウンタは常に前段の結果によって次段の動作が左右されるため、多段になるほど終段の結果の確定は回路の伝播遅延による遅れが蓄積される。こうしたものは「非同期式リプルカウンタ」と呼ばれる。
多くのカウンタ回路には、加算と減算の動作選択、各段の初期値のプリセット、全段のリセットなどの機能を備えており、また、論理回路的な設計とは無関係であるが実際のICチップパッケージには多段接続時に数珠繋ぎに延長できるよう、キャリアアウト出力とキャリアイン入力と云う桁上げ出力や桁借り出力などが備わっている。
論理回路 同期と非同期・他
以上の、組合わせ回路と順序回路という分類とは別に、以下のような分類もある。
同期式では非同期式に比べて信号の遅れやレーシングといった問題に起因する動作不良が減らせる、又は根絶できるが、回路規模が大きくなるので消費電力や回路コストが増す。非同期式は単純な回路構成が採れるので低消費で回路コストも安くて済み、回路設計が最適化出来れば高速動作が可能になるが、設計マージンが小さくなる傾向があり小さなミスが動作不良に結びつく。
特に完全同期式回路は、全体で共有するクロック信号を利用して動作のタイミングをあわせる回路である(クロック同期設計)。大規模な回路で広く用いられている。設計時に大規模な回路のシミュレーションが行いやすい、製造時に全てのラッチの 1・0 が切り替わるかどうかのテストを行う試験機のプログラムを作成しやすい、といった利点がある。
同期式に対し、別に同期信号を持たないものが非同期式で、非同期論理・非同期回路（en:Asynchronous circuit）と言う。電気試験所のETL Mark IとMark II、富士通のFACOM 128などのリレー式計算機に採用がある。マイクロプロセッサでは、商業的に販売されてはいないがAMULETや南谷研の「TITAC」がある。
論理回路 同期と非同期・他
DRAMのように、常に活動していなければ正常に動作しない論理回路を動的と言う。これに対し、SRAMのように、電圧の供給だけで働く論理回路を静的と言う。マイクロプロセッサのレジスタのように多くの記憶が必要な場合、素子数の点で有利な動的回路の場合があり、そういったマイクロプロセッサは動作周波数に下限があり、また、クロックを止めることができない。
論理演算に対しても、常に働く回路として論理演算をおこなうものを静的論理と言う。汎用ロジックICの多くなど、現在使われている多くの論理回路は静的である。これに対し、クロックに合わせ1クロックで1段階の論理演算を行うような方式もあり、動的論理（en:Dynamic logic (digital electronics)）と言う。電気試験所のETL Mark III・IV、パラメトロンの回路方式、トランスピュータの内部回路などに実例がある。
論理回路 その他
論理回路というよりディジタル回路としての分類になるが、以下のようなデバイスがある。
論理回路 歴史
電気による論理演算は、リレー（ことによってはソレノイドアクチュエータやモータと、スイッチ）による装置（たとえば初期の電話交換機など）があった。しかし、ブール代数は19世紀中頃に考案されていたが、当時はそれらの装置と関連付けて考えられていなかった。
ディジタル回路と論理演算の対応付けは、中嶋章が1934年頃から研究、論文としては1936-1937年に榛沢正男と発表した「継電器回路に於ける単部分路の等価変換の理論」を嚆矢とし、クロード・シャノンの1937年の研究とその発表が有名である（他にも相次いで発表されている）。後者の着想が独立かどうかは不明である。
個別部品時代もモジュール化はおこなわれていたが、1960年代に登場した汎用ロジックICにより、アナログ的な回路設計と論理設計をほぼ分離できるようになった。
小規模な場合は、論理素子記号などを使った手書きによる設計が可能であるが、大規模になると難しい。そのため、大規模な回路の設計にはハードウェア記述言語（HDL）が多用されるようになった。
1990年代後半より、試作や少量生産の場合に論理がプログラマブルな（書き換え可能な）PLDやCPLD、FPGAなどが使用されるようになった。大量生産または高性能が要求される場合はASICも使用される。
論理回路 その他
十進法で表現された数を、整数値として2進に変換するのではなく扱う方法として二進化十進表現がある。0000 から 1001 を使用し 1010 から 1111 は使用しないというよくある方法の他いくつかのバリエーションや、近年の十進浮動小数点で使われている10ビットに十進3桁を詰め込む densely packed decimal、3増し符号、2-5進コード（二五進法）などがある。
デジタル-アナログ変換回路
デジタル-アナログ変換回路（デジタル-アナログへんかんかいろ、D/A変換回路、英: digital to analog converter）は、デジタル電気信号をアナログ電気信号に変換する電子回路である。D/Aコンバーター（DAC（ダック））とも呼ばれる。
また、デジタル-アナログ変換（デジタル-アナログへんかん、D/A変換）は、デジタル信号をアナログ信号に変換することをいう。
逆はアナログ-デジタル変換回路である。集積回路化されている。下述のR2Rラダー方式のオーディオ用DACとしてディスクリート回路で構成されたものもある。
デジタル-アナログ変換回路 原理
2進数データをパルス幅変調データに変換し、その出力をローパスフィルタに通してパルス周波数による高周波成分を除去する。
パワートランジスタによるスイッチングの直後にLCローパスフィルタを挿入すると、リニアアンプ無しに低損失大出力DA変換を実現でき、そのままスピーカーやモーターを直結できる（D級アンプ、チョッパ制御）。
デジタル入力を時間方向に補完してサンプリング周波数を数十倍にする（オーバーサンプリング）。この出力をデルタ・シグマ・モジュレータを通すことで低ビットのオーバーサンプリングデータにする。デルタ・シグマ・モジュレータの目的はAD変換の場合と同じだが、高ビットのデジタル入力を、デジタル処理によって低ビットの「ディザ化」されたデジタル出力にする。1bit出力であればパルス幅変調と似た出力になるが、デルタ・シグマ・モジュレータにより、より良いパルス波形になる。
この低ビット出力をDA変換し（1bitの場合は出力電力が足りればそのままでもよい）、パルス幅変調型と同様にローパスフィルタに通すことで折り返し雑音（エイリアス）成分や量子化誤差成分を除去して、アナログ出力とする。
デジタル-アナログ変換回路 原理
bitの場合は、個の抵抗を直列に接続して基準電圧を分圧する事で、対応する電圧個を全て得られる。この中から、デジタル入力に対応する電圧点をアナログスイッチで接続して出力する。
２点間の抵抗値をそのまま用いれば、デジタルポテンショメータとして用いる事もできる。
オペアンプによる演算機能を用い、抵抗のオンオフや電圧印加から目的の電圧を得る。
R-2Rラダー型抵抗回路（2種類の抵抗を組み合わせた回路）によるものが有名である。
ビットに応じて重み付けをしたコンデンサを充電し、全体の電圧を測定する。
重み抵抗型とも言う。
スイッチを介してビットに応じて重み付けした抵抗を、並列接続する。ここに電圧をかけると、総電流量はスイッチでオンした抵抗に流れる電流の総和となり、結果として2進数値に比例する電流が流れる。ビット数だけの抵抗とスイッチが基本構成であり、高速化が容易である。
通常は電流出力を電圧に変換して利用する。ここで変換係数を自由に設定出来る変換回路を使用すると、出力＝（自由に設定出来る離散化単位電圧）×（デジタル入力）という、全体としてはアナログとデジタルの乗算を実現する回路になる。
デジタル-アナログ変換回路 RAMDAC
特にIBM PC/AT互換機に使用するビデオカードにおいて用いられる、映像信号処理用DACをRAMDACと呼ぶ。Color Lookup Translation(CLUT)を行う為の792バイトのメモリを持ち、インデクスカラー256色を最大1680万色のいずれかに変換する(パレット変換)機能を持つ。インデクスカラーによる表示は主にゲームに使われたが、WindowsとDirectXの普及により使われなくなった。しかし、CLUTの機能は表示のブライトネス・コントラスト・γ補正に技術的に転用が容易であった事から、現在の市販されているビデオカードはCLUTに加え各チャンネルごとの発色特性を補正できるRAMDACを搭載している。2011年現在市販されているビデオカードではRAMDACはGraphics Processing Unitに吸収内包され、単体パッケージとしてビデオカード上に見ることはできない。また映像信号のデジタル化により、アナログ出力を持たない製品もある。これらの製品ではRAMはGPUが担当し、DACをディスプレイ側で分担する。従来のRGB8フォーマットからISO YCbCr出力（デジタル放送）の表示に対応する場合ディスプレイがRAMも搭載する事もある。またSMPTE/VESA RGB10・RGB16フォーマットの普及により、搭載メモリの容量は大きくなっている。DAC本質であるレイテンシを削減する為に、NVidiaはG-Syncという新技術を開発した。
デジタル-アナログ変換回路 オーディオ機器のDAC
CDプレーヤーやSACDプレーヤー、PC等のデジタル機器内部でDA変換を行うと、その回路自体から発生したノイズが出力音声に乗りやすいこと、また音質に拘った回路を搭載するだけのスペースがない場合があるため、変換を別体のコンポーネントに担当させる場合がある。この機器をその機能からDAC、外部DACと通称する。機器からDACへの信号の転送にはUSBやS/PDIFが多く用いられる。高級機では信号のジッタ（時間軸のわずかな揺れ）の影響を排するためにIEEE 1394で接続したり、さらなる高精度を用いる場合にはS/PDIF同軸ケーブルで接続された機器同士で、クロックを同期させる機構を併用したり外部クロックジェネレータを利用する場合もある。なお、内部のDACを用いずに専らデジタルデータの送出のみに利用されるプレーヤーはトランスポートと呼ばれる。
高品位な再生を目指し、オーディオシステムの技術開発はサンプリングレートを高く、ビット数を高く、アナログ段を短くするように進められている。
2010年以降は1個当たりのコストが安く、消費電力が低く、マルチビット型よりも変換誤差が少ないため、普及価格帯の製品に搭載されるDACはデルタシグマ型1bitDACがほぼ全てを占めている。
また、抵抗の熱雑音や不確定性原理による測定限界によりDACのS/N比の向上が限界に達している。
デジタル-アナログ変換回路 オーディオ機器のDAC
例えば、2000年前後から民生品においても普及し始めた24bitDACの場合、量子化ビット数から計算されるアナログ信号のS/N比は144dBとなるが、現実には最上位機種であっても120dB程度である。2023年現在、AK4499EXEQでは138dB(モノラルモード時)に到達し、また現在では32bitDACが登場し、市販品にも搭載されている。
その限界を乗り越えるために、N個のDACの出力信号を加算した場合、音声信号成分の振幅はN倍、ノイズ成分の振幅は√N倍となり、S/N比が改善される事に着目し、高級機ではマルチDACの構成を採用することがある。
ただし、S/N比は対数で定義されるため、DAC2個の出力の加算によるS/N比の改善は数dB程度であり、さらに加算する個数を増やしても1個毎のS/N比の改善幅は小さくなる。そのため、回路構成が複雑になり、実装面積が大きくなることを考慮すると、この手法の費用対効果は低くならざるを得ない（そのため、高価格で販売される高級機においてのみ採用される）。
アナログ信号は一旦ノイズの混入や周囲へのエネルギーの放射等により減衰すると二度と復元できないため、システム中のDACの位置を後段に移しアナログ段を短くするための研究も進められている。
デジタル-アナログ変換回路 オーディオ機器のDAC
その研究と技術開発の成果として、2010年代に入りデジタルスピーカーが実用化されている。こちらは入力されたデジタル信号をスピーカーのボイスコイルで音声に変換する。従って、デジタル信号をシステムの最終段で直接音声に変換することにより、アナログ信号が電気回路を通ることが無くなり、抵抗の熱雑音の問題を解決できる。また、スピーカーの伝達関数が判っていれば、DSPによる音声へのインパルス応答の畳み込みによりスピーカーの歪みまでもが補正可能となる。そのため、デジタルスピーカーでは入力されるデジタル信号を非常に高精度に音声に変換することができる。このシステムにおいて従来のICチップ型のDACは必要としない。
アナログ-デジタル変換回路
アナログ-デジタル変換回路（アナログ-デジタルへんかんかいろ、A/D変換回路）は、マイクが受け取った音声信号やアンテナに入力された電波またはデジタルカメラに入力された光といったアナログ電気信号をデジタル電気信号に変換する電子回路である。デジタル化された信号はCPUといったデジタル信号処理回路で処理可能となるため、センシング及び通信システムに必須となる電子回路である。A/Dコンバーター（ADC（エーディーシー）、英語: Analog-to-digital converter）とも言う。
また、アナログ-デジタル変換（アナログ-デジタルへんかん、A/D変換）は、アナログ信号をデジタル信号に変換することをいう。
逆はデジタル-アナログ変換回路である。
変調方式の一種として見た場合は、A/D変換はパルス符号変調である。A/D変換のような操作をデジタイズということがある。
基本的なA/D変換の操作は、まずサンプリング周波数で入力を標本化し、それを量子化することでおこなう。標本化にともなう折り返し雑音は、重要な問題である。また、量子化にともなう量子化誤差による量子化雑音もある。
アナログ-デジタル変換回路 原理
「比較器」とは、入力電圧を基準電圧と比較して、基準より高いか低いかを出力する回路であり、1bitのAD変換器と言える。
bit出力のAD変換であれば、個の比較器を用意して変換を行う。たとえば0Vから15Vまで1V間隔でAD変換して4bit出力を得る場合であれば、1Vから15Vまで15個の比較器を用意して入力と比較を行い、必要があればそれらの出力を2進数にエンコードする。
原理が単純であり、比較器の動作だけで結果が出るので高速である。しかしビット数が増えると比較器の数が急激に増える。
正確な n bit DA変換器の出力は個の電圧の基準になる。つまりDA変換器出力を入力電圧と比較する事で n bitのAD変換を実現できる。1回の比較で1bitずつ精度を上げる事が出来るので、 n bitの場合は n 回の比較で結果が得られる。比較器1つを繰り返し用いて n 回の比較を行い正確な値に近づける方法が逐次比較型、パイプライン処理のように n 段階の回路構成で処理する場合がパイプライン型である。
この他に、上位半分用と下位半分用のフラッシュ型および上位半分に相当するDA変換器を用意して、2段階に分けて変換する方法などがある。この場合でも完全なフラッシュ型と比べれば比較器の数を大幅に削減できる。
アナログ-デジタル変換回路 原理
1回の変換のために何度も入力を参照する必要があり、その間に入力電圧が変動すると誤変換をしてしまう。そのため、変換が完了するまでの一定時間だけ入力電圧を固定する回路（サンプルアンドホールド回路）が必要となる。
のこぎり波を常時発生させておき、入力電圧と比較する。その上で、のこぎり波の立ち上がりの時点から、のこぎり波の電圧が入力電圧と一致するまでの時間を計測する（傾斜型）。
のこぎり波の代わりに、必要な精度のDA変換器とカウンタにより生成した階段状波形と入力電圧とを比較する場合もある（追従型）。この場合は入力電圧を超えた時点のカウンタ値を採用すればよい。
回路は簡単かつ小規模であるが、遅い。DA変換器を用いる追従型の場合、同じくDA変換器の出力と入力電圧との比較を行う逐次比較型と比べれば、その遅さは明らかである。また、サンプルアンドホールド回路で入力を固定せず入力が変動すると、サンプリングのタイミングが不均等になる。
入力電圧をコンデンサに充電するマルチバイブレータを用いて矩形波を発生させる。入力電圧を積分し、一定電圧になった時に動作を反転させ、そのタイミングでパルスを切り替えて矩形波を作るが、この矩形波の周波数(F)は入力電圧(V)に比例する。必要な場合はこれをカウントする。
アナログ-デジタル変換回路 原理
傾斜型では、一定電圧の積分であるのこぎり波と入力を比較して時間を計測しており、時間対周波数という観点も含めて、逆の方法と言える。
まず入力電圧を一定時間積分する。その後に逆符号の基準電圧で積分して、積分値が0になるまでの時間を計測する。これにより入力電圧と基準電圧の比を、時間の比として計測できる。
入力電圧の充電と基準電圧の放電という二つの操作を同じ回路で行う事で、回路に含まれる誤差（ノイズ）をキャンセルすることができて高精度が得やすい。一方で複雑なアナログ回路になり、積分時間がかかることもあり、高速化しにくい。
積分回路を用いるので一種の平均化が行われる。別の言い方をすると回路自体が1次ローパスフィルタであり、ある程度高い周波数成分はカットされるので、アンチエイリアスフィルタが不要な場合もある。しかしナイキスト周波数付近でも中途半端に減衰されるので、ナイキスト周波数ギリギリまで用いる用途にはあまり向かない。
パルス状入力信号のピーク値、またはパルスの総電荷を計測するために、核物理学者のD.H.Wilkinsonが考案した方法である。
アナログ-デジタル変換回路 原理
ピーク値測定の場合は入力をコンデンサに接続し、ピーク判定をした時点で接続を切る（一種のピークホールド回路になっている）。総電荷の場合は入力を積分回路に接続し、パルスが完了した時点で接続を切る。その後に充電したコンデンサを定電流で放電し、コンデンサの電圧が0になるのに要する時間を測定する。
もっとも簡単な、量子化を1bit（比較器）で行う1次デルタ・シグマ・モジュレータの場合で説明する。
入力は1bitでAD変換され、この結果は+1と-1の列からなる。しかし積分器により量子化誤差が蓄積されていくので、入力を単純に1bit AD変換した値とは異なる値の列が出る。入力の変化が遅い場合、例えば入力が0Vであれば+1と-1が交互にほぼ等しい回数出力され、高い電圧ならば+1が多くなる等、+1と-1の個数の比が入力電圧に比例するように出力される。つまり一種のディザ化を行っている。この+1と-1の個数をmステップ分だけ数えれば、それに応じたbit数のAD変換となる。
アナログ-デジタル変換回路 原理
1 bit AD変換なので各瞬間での量子化誤差は非常に大きいが、変換時間と比較して十分長い時間での平均出力で見れば、誤差を帰還させているので誤差をなくすよう動作する。これにより、高いサンプリング周波数の低ビットAD変換を用いて、低いサンプリング周波数の高ビットAD変換を実現している。あるいは「mステップ分だけ数えた後の結果」という最終的なAD変換のサンプリング周波数から見ると、1bitのAD変換器はそのm倍のサンプリング周波数で変換を行っている、すなわちオーバーサンプリングを行っている。
ここで見方を変えると、この回路は量子誤差を帰還させる一種のフィルタになっている。実際この回路は、入力信号に対しては1次ローパスフィルタ、量子化誤差に対しては1次ハイパスフィルタになっている。入力信号では、最終的なナイキスト周波数以下の部分が必要であり、高い周波数成分は除去したい。一方量子化誤差に起因するノイズは出来るだけ除去したいが、これはフィルタにより高い周波数帯に残っている（上記の0Vの例では+1と-1の交互列、すなわちオーバーサンプリングのナイキスト周波数で出力されている）。そこで、1bitオーバーサンプリングで量子化された出力に対しデジタルフィルタを適用し、量子化ノイズを可能な限り除去して、目的のbit数とサンプリング周波数の出力に仕立てる。上記の「mステップ分だけ数える（連続したmステップのデータを単純平均する）」というのも、一種のデジタルフィルタになっている。
実際にはもっと複雑な帰還をかけて高次のデルタ・シグマ・モジュレータを構成し、フィルタとしての特性を急峻にする。
しかし他の方式のAD変換及びアンチエイリアスフィルタと比べるとアナログ回路部分は簡単であり、その分デジタル回路で処理する部分が増える。
アナログ-デジタル変換回路 AD変換器の性能表示
AD変換器の性能を表示するため、以下のような項目がある。
測定可能な最大値（または最大値と最小値の幅、フルスケール）が、離散化の最小単位でみていくつになるかを表したもので、通常は2進数の桁数（すなわちビット）で表示する。ただしデジタル電圧計など目読する場合は10進数の桁数などで表す。いわば表示可能桁数であるが、他の要因の誤差があるので必ずしも有効桁数とは言えない。
理想的なAD変換をグラフで表示すると、原点を通る傾き一定の階段状であり（量子化誤差を除けば直線であり）、フルスケールが指定値通りとなる。
しかし現実にはこれからずれており、それを許容誤差として表示する必要がある。
誤差の表示方法としては、平均直線からのずれ（積分非線形性誤差）、部分的な傾きのずれ（微分非線形性誤差）、原点やフルスケールでのずれ、これらの温度依存性などがある。
アナログ-デジタル変換回路 AD変換器の性能表示
入力がデジタルに変換されて出力として現れるまでの時間、または変換開始のための合図を入力して結果が出るまでの時間が変換時間である。
一方、サンプリング周波数は1秒間に変換（測定）を行う回数であり、時間方向の分解能と呼べるものである。単純な構造であればサンプリング周波数は変換時間の逆数より小さいが、パイプライン型のように変換処理を同時並行で行える場合はそれより早くなる。
音声信号など、最終的にアナログ信号に復元するためのデジタル化のケースを考えると、サンプリングのタイミングのずれ（ジッター）も重要な誤差の要素になる。
入力信号の周波数が高いと、短い時間の間でも値が変化してしまい、誤差の要因になる。
シェルスクリプト
シェルスクリプト (英語: shell script) は主にオペレーティングシステムのシェルまたはコマンドラインインタプリタから実行可能なコマンドの一連の流れをファイルにして再利用できるようにしたものである。狭義では、Unixシェルで用いられるスクリプト言語を指す。シェルスクリプトは他のコマンドを組み合わせるためのグルー型のドメイン固有言語とみなされることもある。シェルスクリプトで書かれる典型的処理としては、ファイル操作、プログラム実行、テキストの印刷などがある。
シェルスクリプト用インタプリタの多くはコマンドラインインタフェースも兼ねており、各種Unixシェル、Windows PowerShell、DOSのCOMMAND.COMなどがある。他にAppleScriptやグラフィカルな Windows Script Host (WScript.exe) などもあり、コマンドラインインタフェース抜きでコンピューティング環境にスクリプト機能を加えている。
この項目では、Unixシェルのシェルスクリプトについて記載する。
シェルスクリプト 機能
その最も基本的な形式として、シェルスクリプトはシステムコマンドに特別な環境設定、コマンドオプション、後処理などを自動的に適用する形で新たなコマンドのバリエーションを提供するが、そのスクリプトを普通のUNIXのコマンドとして利用することもできる。
例としてlsコマンドのバリエーションを作るスクリプトを示す。コマンドオプションを事前に提供しており、これを例えば l という短い名前のファイルとして /home/username/bin/l などに置くのが一般的である。
ここで、1行目はシバンであり、スクリプトの残りの部分を実行するのに使用するインタプリタが "/bin/sh" であることを示している。2行目ではlsコマンドのオプションを指定しており、ファイル形式のインジケータを表示すること、1行に1ファイルの形式で表示すること、省略せずに全ファイルを表示すること、ファイルサイズをブロック数で表示することを指定している。LC_COLLATE=C は文字の照合順序の指定であり、"$@" は l コマンドに渡されたパラメータの全てをそのまま ls コマンドに渡すことを意味する。したがって、ls の通常のコマンドオプションや構文がそのまま使える。
これを使えば、単に l と入力するだけでよく使うファイル一覧表示形式が得られる。
シェルスクリプト 機能
次の例のシェルスクリプトは、カレントディレクトリの全ファイルおよびディレクトリの一覧を表示するショートカットとして使える。
こちらも先頭行は一般的な #!/bin/sh である。次に clear というコマンドでディスプレイをクリアする。その次の行でこのスクリプトのメインの機能を実行する。ls -l -a というコマンド行は、このスクリプトを実行したときのカレントディレクトリにあるファイルとディレクトリの一覧を表示する。lsコマンドのオプションを変更すれば、ユーザーが必要な表示をさせることができる。
シェルスクリプトを使えば、コマンドラインインタフェースで人手で入力していたコマンド列を自動的に実行でき、一連のコマンドを連続的に実行できる。例えば、あるディレクトリにC言語のソースファイルが3つあるとき、4つのコマンドを人手で入力してビルドする代わりに、次のようなCシェルのスクリプトを作成して、 名称を build としてそのディレクトリに置けば、ビルドを自動実行できる。
このようなスクリプトを用意しておけば、ユーザーがソースファイルを編集し、その途中で ./build を実行すれば、更新された実行ファイルを生成・評価し、編集に戻ることもできる。ただし1980年代以降、このようなスクリプトは make などの専用ユーティリティに置換されている。
シェルスクリプト 機能
簡単なバッチ処理は孤立したタスクでは珍しくないが、シェルの持つループ機能、評価機能、変数などを使えば、より柔軟なスクリプトを書くことができる。次の例はJPEG画像をPNG画像に変換するbashスクリプトで、画像ファイル名はコマンド行で提供し、ワイルドカードも使用できる。そのためファイル名をスクリプト内に羅列する必要はない。このスクリプトは例えば /home/username/bin/jpg2png といったファイル名で置いておく。
jpg2png コマンドを使えば、例えば jpg2png *.jpg とすることでディレクトリ内の全JPEG画像を変換できる。
シェルスクリプト 機能
シバンとはテキストファイル形式の実行ファイルの一行目に書く#!で始まる命令のことである。シバンそのものはシェルスクリプトとは無関係のオペレーティングシステムの機能である。シェルスクリプトを実行するシェルはオペレーティングシステムから見るとスクリプト言語の一つとして扱われている。すなわち、execシステムコールに実行ファイル名を渡すと、シバンをカーネルが解釈し、シバンで指定された実行ファイルに元々渡されたスクリプトファイルとパラメータが渡され実行される。初期の Unix が登場したころはこのような機能はなかった。もちろんPerlやPythonなどのスクリプト言語のプログラムもシバンを介して実行することができ、シェルスクリプトを含めどういった言語で実装されているかに関わらずに使うことができる。
標準的なコマンドと同様、シェルスクリプトのファイル名には拡張子をつけないことが多い。これはコマンドがどのような言語で実装されているかはユーザーが気にすることではないからである。しかし、動作中のシェルにシェルスクリプトを読み込ませる場合（例えば、sh の “. ”コマンドや csh の source コマンド）は、該当のファイルがシェルスクリプトである必要があるため拡張子をつけることが推奨される。
現代の多くのシェルは手続き型プログラミング言語にある基本的な制御フロー構造などに似た豊富な機能を備えている。制御構造、変数、コメント、配列、サブルーチンなどである。それらを使えばかなり洗練されたアプリケーションをシェルスクリプトで書くことも可能である。しかし、シェル言語の多くはデータ型システム、クラス、スレッド、複雑な数学的計算といった高水準言語に見られる機能をほとんどサポートしていない。また、コンパイラや性能重視のインタプリタで実装された汎用言語に比べれば実行速度が遅い。
シェルスクリプト 他のスクリプト言語
シェルスクリプトで扱うには大きい、あるいは複雑で適切ではないタスクを扱うために、awkやPerlなどのスクリプト言語が開発されてきた。ただしそのような用途には高水準言語もあり、高水準言語とスクリプト言語のそれぞれがどういう用途に適しているかは議論のテーマともなってきた。一般にスクリプト言語はインタプリタとして実装される。
スクリプト言語はプログラミング言語と比較して簡単に記述できるため、Proof of Concept実装に適している。ソフトウェア開発の初期段階でシェルスクリプトを使い、そののち Perl、Python、Rubyなどの高機能なスクリプト言語やC言語やRustなどのコンパイラ言語に書き換えていく手法を用いることがある。
シェルスクリプト 長所と短所
同じプログラムを書く場合、他のプログラミング言語よりもシェルスクリプトの方が短く書けることが多い。OS標準コマンド以外を含む豊富なコマンドを容易に利用できるからである。既存のプログラム群を順次実行したり、コマンドの実行結果やファイルの有無などの条件判断を伴って実行する場合などはシェルスクリプトが有効で、限定的ながらパイプライン処理、バックグラウンドジョブ、xargsコマンドの-Pオプションなどを利用すれば、並列処理、並行計算を容易に行うことができる。また、スクリプト言語全般に当てはまることではあるがコンパイルが不要という点も利点の一つである。
シェルスクリプト 長所と短所
一方でシェルスクリプトは中規模以上のプログラムには向いていない。言語仕様やデバッグ機能や例外処理が貧弱で致命的なエラーを引き起こしやすい。例えばrm -rf */をrm -rf * /と打ち間違える有名なミスが存在する。空白が余分に1つ入っただけで、あるディレクトリ以下を削除するつもりだったものがルートディレクトリ以下を削除するという意味になる。またcp や mv、出力をリダイレクトする>を間違って使用すると意図せずファイルを上書きしてしまうことがある。また、UNIXには1文字しか違わないコマンド名が多く存在するため、さらにうっかりミスの危険性が増す。例えば、cp、cd、dd、df などである。この中でもcpとの取り違えでは、誤ったパスにファイルをばら撒き、コピー先のファイル構成を破壊して復旧作業に多大な時間が必要となったり、セキュリティ事故に発展する可能性がある。
シェルスクリプト 長所と短所
もう1つの短所は、実行速度の遅さとほぼ全てのコマンド実行の呼び出しで新たなプロセスを生成する必要がある点である。実際にデータを処理するコマンドはC言語などの高速な言語で実装されているため処理速度自体はあまり問題にならない。しかし、シェルスクリプトから多数のコマンドを呼び出す場合、その呼び出しコストによって桁違いの遅さになることが多い。処理するデータが多い場合は一括してコマンドに渡して処理し、処理するデータが少ない場合はシェル自身が持っている機能（変数展開など）を使って処理することで、実行速度の遅さをある程度回避できる。しかしそのような工夫をするぐらいなら他のスクリプト言語やコンパイラ言語を使った方が簡単である。
また、プラットフォーム間の互換性問題もある。シェルスクリプトからよく利用されるUNIXコマンドは歴史的な理由でプラットフォーム間で完全な互換性がないため、そのようなコマンドに依存するシェルスクリプトは移植性が低くなりがちである。Perlの作者ラリー・ウォールの有名な言葉として「シェルスクリプトを移植するより、シェルそのものを移植する方が簡単だ」というものがある。エリック・レイモンドは「The Art of UNIX Programming」で「複雑なシェルスクリプトは、移植性問題を抱えていることが多い。それはシェル自身に問題があるというよりも、コンポーネントとして他のプログラムが存在することが前提となっていることに起因するものだ。Bourne ShellやKorn Shellのクローンは、Unix以外のオペレーティングシステムにも散発的に移植されているが、シェルプログラムは（現実的にいって）Unix以外のオペレーティングシステムには移植性がない。」とシェルスクリプトの移植性の低さを指摘している。
また、複雑なスクリプトを書こうとするとシェルスクリプト言語自身の制限にぶちあたることが多い。そのため回避策を施すことでコード品質が悪化し、シェル自体を拡張することで上述の互換性問題を引き起こすことになる。
一部スクリプト言語を使った際の多くの短所は、言語の文法上の欠陥や実装上の欠陥が原因である。
ジャコモ・プッチーニ
ジャコモ・アントニオ・ドメニコ・ミケーレ・セコンド・マリア・プッチーニ（伊: Giacomo Antonio Domenico Michele Secondo Maria Puccini、1858年12月22日 - 1924年11月29日）は、イタリアの作曲家。その作品である『トスカ』、『蝶々夫人』、『ラ・ボエーム』などのオペラは今日でも上演の機会が多いことで知られる。イタリアのルッカに生まれ、ベルギーのブリュッセルで没した。
ジャコモ・プッチーニ 生涯
プッチーニ家は、18世紀から連綿と続くルッカの宗教音楽家の家系であるが、中には器楽作曲家もいた。この中で唯一オペラ作曲家を目指し、なおかつ今日、唯一世界的音楽家として名声を残したのがジャコモ・プッチーニである。
1858年12月22日、イタリアのトスカーナ地方にあるルッカで生まれる。
わずか5歳のときに父親ミケーレが没したため、叔父フォルトゥナート・マージより、温情をもって教育を与えられる。最初は教会オルガニストの職を得るが、ジュゼッペ・ヴェルディのオペラ『アイーダ』の上演に接して、オペラ作曲家を志した。1880年『4声のミサ曲』（『グローリア・ミサ』の名で知られる）の完成をもって、初期の音楽修業と、家業である宗教音楽家の道に区切りをつける。この作品では、やがてミラノの舞台においてプッチーニが開花させることとなる劇的な表現力を、魅力的なまでにうかがわせている。実際、この作品の楽想は後に彼のオペラで転用されることとなる。
ジャコモ・プッチーニ 生涯
1880年から1883年までミラノ音楽院にてアミルカレ・ポンキエッリとアントニオ・バッジーニに師事。1882年には、出版社ソンゾーニョ社主催による1幕物オペラの作曲コンクールに参加、入賞することはできなかったが、提出作品『妖精ヴィッリ Le villi』は後に1884年に舞台化され、出版社リコルディ社主ジュリオ・リコルディに注目されるきっかけとなった。こうしてリコルディ社の依嘱によって作曲されたのが、1889年に完成された2作目のオペラ『エドガール』である。1891年には、トスカーナ地方のトッレ・デル・ラーゴに別荘を購入し、終生にわたって仕事場兼自宅とした。プッチーニの亡骸が眠っているのもこの地である。
ジャコモ・プッチーニ 生涯
第3作の『マノン・レスコー』は大成功となったばかりか、優れた台本作家ルイージ・イッリカとジュゼッペ・ジャコーザの協力をももたらすきっかけとなった。この2人の協力のもとに、『ラ・ボエーム』と『トスカ』、『蝶々夫人』の3曲が書かれた。このうち『ラ・ボエーム』はプッチーニの最高傑作としてのみならず、それまでのプッチーニ作品の中では最もロマンティックなオペラの1つに数えられている。『トスカ』はその露骨な暴力描写、主役3人が舞台上で死ぬストーリー、そして扇情的な音楽などが話題となった。『蝶々夫人』は、初演時には敵意（そのほとんどはプッチーニのライヴァル達によって組織されたものであったが）をもって迎えられたが、後にかなり手直しされてからは、プッチーニの最も成功した作品のひとつになった。
それからは御難続きで作曲の筆が緩やかになる。1902年（または1903年）の2月下旬、珍しがりやの性格から、自動車を手に入れさっそく乗り回していたところ、交通事故を起こし、脚を骨折する。1906年にはジャコーザが他界。1909年には、プッチーニの妻エルヴィーラが、誤解から、プッチーニが女中と浮気していると責め立て、疑われた女中が服毒自殺、エルヴィーラが起訴されるというスキャンダルに発展する。そして1912年には、恩人であったリコルディ社社主ジュリオが世を去る。