EDIF(Electronic Design Interchange Format )は、電子ネットリストや回路図を格納するためのS式に基づくベンダーニュートラルなフォーマットです。これは、電子設計自動化(EDA)業界向けのニュートラルなデータ交換フォーマットを確立しようとする最初の試みの1つでした。その目的は、EDAシステムの独自フォーマットを派生させることができる共通フォーマットを確立することでした。顧客がデータをあるシステムから別のシステムに転送する必要がある場合、あるフォーマットから別のフォーマットへのトランスレータを作成する必要がありました。フォーマットの数(N)が増えるにつれて、トランスレータの問題はNの2乗の問題になりました。EDIFを使用すれば、トランスレータの数を関係するシステムの数にまで減らすことができると期待されていました。
EDA企業であるDaisy Systems、Mentor Graphics、Motorola、National Semiconductor、Tektronix、Texas Instruments 、およびカリフォルニア大学バークレー校の代表者が、1983年11月にEDIF運営委員会を設立しました。その後、マンチェスター大学のコンピュータサイエンス教授であるヒラリー・カーンがチームに加わり、EDIF 200から最終バージョン400までの開発を主導しました。
EDIF の一般的な形式は、括弧を使用してデータ定義を区切るものであり、この点で表面的にはLispに似ています。EDIF 2.0.0 の基本的なトークンは、キーワード ( library、cell、instanceなど)、文字列 (二重引用符で囲む)、整数、シンボル定数 (セル型の場合はGENERIC、TIE、RIPPERなど)、および非常に限られた文字セットから構成される参照ラベルである「識別子」でした。EDIF 3.0.0 および 4.0.0 では、シンボル定数は完全に廃止され、代わりにキーワードが使用されるようになりました。したがって、EDIF の構文はかなりシンプルな基盤を持っています。典型的な EDIF ファイルは次のようになります。
( edif fibex ( edifVersion 2 0 0 ) ( edifLevel 0 ) ( keywordMap ( keywordLevel 0 )) ( status ( written ( timeStamp 1995 1 1 1 1 1 ) ( program "xxx" ( version "v1" )))) ( library xxx ( edifLevel 0 ) ( technology ( numberDefinition ( scale 1 ( e 1 -6 ) ( unit distance )))) ( cell dff_4 ( cellType generic ) ( view view1 ( viewType netlist ) ( interface ( port aset ( direction INPUT )) ( port clok ( direction INPUT )) ... ( cell yyy ( cellType generic ) ( view schematic_ ( viewType netlist ) ( interface ( port CLEAR ( direction INPUT )) ( port CLOCK ( direction INPUT )) ... ) ( contents ( instance I_36_1 ( viewRef view1 ( cellRef dff_4 ))) ( instance ( rename I_36_3 "I$3" ) ( viewRef view1 ( cellRef addsub_4 ))) ... ( net CLEAR ( joined ( portRef CLEAR ) ( portRef aset ( instanceRef I_36_1 )) ( portRef aset ( instanceRef I_36_3 )))) ...EDIFバージョン100(1985年)
EDIFバージョン110(1986年)
EDIFの最初の「真の」公開版はバージョン200で、1988年3月にANSI/EIA-548-1988規格として承認されました。これは1冊の書籍として出版されています。このバージョンには正式な適用範囲に関する記述はありませんが、定義済みのviewType sでカバーされている範囲を網羅しています。
業界ではこのリリースを数年間テストしましたが、最終的にはNETLISTビューのみが広く使用されるようになり、一部のEDAツールは現在でもEDIF 200でそれをサポートしています。
主要な200規格の問題点を克服するために、さらにいくつかの文書が公開された。
1992年9月15日にリリースされました。
200 リリースにはいくつかの根本的な弱点があったため、互換性のない新しいリリース 300 が 1993 年 9 月にリリースされ、EIA規格 EIA-618 として指定されました。その後、ANSIおよびISO の指定も取得しました。これは 4 巻で発行されています。このバージョンの主な焦点は、200 のビュー タイプ NETLIST と SCHEMATIC でした。MASKLAYOUT、PCBLAYOUT、およびその他のいくつかのビューは、これらのビューの作業が完全に完了していなかったため、このリリースから削除され、後のリリースに延期されました。
EDIF 3 0 0は、国際電気標準会議( IEC)からIEC 61690-1として入手可能です。
EDIF 4 0 0は1996年8月下旬にリリースされ、主にEDIF 3 0 0に「プリント基板」拡張機能(オリジナルのPCBLAYOUTビュー)を追加することを目的としていました。これによりEDIF 3 0 0のサイズは2倍以上になり、CD-ROMにHTML形式で収録されています。これは、当時ヨーロッパにおける回路基板製造のリーディングカンパニーであったインターコネクション・システムズ社の、コンピュータ支援設計(CAD)プリント基板スペシャリストであるロバート・ウォーカー氏からの多大な協力を得て確立されました。
EDIF 4 0 0は、国際電気標準会議(IEC)からIEC 61690-2として入手可能です。
EDIF 200 に関してユーザーとベンダーが直面した問題を理解するには、まず電子産業のあらゆる要素とダイナミクスを思い描く必要がある。この規格を必要としていたのは主に設計エンジニアであり、彼らは自宅のガレージから数千人のエンジニアを抱える数十億ドル規模の施設まで、さまざまな規模の企業で働いていた。1980 年代後半、これらのエンジニアは主に回路図とネットリストに基づいて作業しており、回路図からネットリストを自動的に生成することが大きな推進力となっていた。最初の供給者は電子設計自動化ベンダーであり (例えば、Daisy、Mentor、Valid が初期の支配的なグループを形成していた)、これらの企業はこの市場でのシェアをめぐって激しく競争した。
これらの企業が顧客を「囲い込む」ために用いた戦術の一つが、独自のデータベースでした。各社は他社にはない特別な機能を備えていました。一度特定のベンダーのソフトウェアを使って設計を入力すると、顧客はその後、他のソフトウェアを使うことができなくなりました。ベンダーAのシステムからベンダーBのシステムに移行するには、通常、ほぼすべての設計データを新しいシステムに手作業で再入力する必要があり、非常にコストがかかりました。この「移行」にかかる費用こそが、設計エンジニアが単一のベンダーに縛り付けられる主な要因でした。
しかし、「顧客」側は別の要望を持っていた。ベンダーAは非常に優れたアナログシミュレーション環境を持っているかもしれないが、ベンダーBははるかに優れたPCBまたはシリコンレイアウト自動配線ツールを持っていることに、彼らはすぐに気づいた。そして、複数のベンダーの中から自由に選択できることを望んだのだ。
EDIFは主に電子機器設計のエンドユーザーとその企業によって支持されていました。EDAベンダーも関与していましたが、彼らの動機は顧客を遠ざけたくないという点にありました。ほとんどのEDAベンダーはEDIF 200トランスレータを開発しましたが、彼らがより関心を寄せていたのは高品質のEDIFリーダーの開発であり、顧客から他社製ソフトウェアへの大量移行の脅威を受ける以外に、EDIFを生成するソフトウェア(EDIFライター)を開発する動機は全くありませんでした。
その結果、構文や意味論に違反しないEDIF 2.0.0出力を作成するソフトウェアベンダーはほとんどいなかった。意味論が緩かったため、同じデータが複数の方法で記述されることがしばしばあった。そのため、各社は独自のEDIF規格を持つことになった。ベンダー企業は、たとえ大量に販売されていても、EDIF製品に多くのリソースを割り当てなかった。EDIFトランスレータを作成したベンダーは、当時のEDIF 2.0.0作成者が作成した質の低いコードを処理し、組み立てることができる、十分強力で寛容な人工知能搭載のリーダーを開発するために、多大な時間と労力を費やすことになった。
EDIF 3 0 0 の設計にあたり、委員会は言語の欠点、ベンダーによる EDIF 2 0 0 への誹謗中傷、エンドユーザーの不満を十分に認識していました。そこで、言語のセマンティクスを厳格化し、標準のより形式的な記述を提供するために、情報モデリング言語EXPRESSで EDIF の情報モデルを提供するという革新的なアプローチが採用されました。これは標準の文書化を改善するのに役立ちましたが、構文の作成がモデルから生成されるのではなく、モデルとは独立して行われたため、どちらかというと後付けの対応でした。また、標準では構文とモデルが一致しない場合はモデルが標準であるとされていますが、実際にはそうではありません。構文のBNF記述は、設計記述を作成する日常業務を行うソフトウェアが固定構文に基づいているため、言語の基盤となっています。情報モデルは、EDIF の記述に理想的ではなかった(そして現在もそうではない)という問題も抱えていました。名前空間といった概念をうまく説明できておらず、定義と参照の違いも明確に説明できていません。また、EXPRESSにおける制約記述の構成要素は形式的かもしれませんが、制約記述は時に非常に複雑な問題です。そのため、ほとんどの制約はコメントとして記述されるにとどまりました。残りの制約の多くは、ほとんどの読者が解読できないような複雑な形式的記述となり、自動デバッグやコンパイルに耐えられない可能性があります。これは、プログラムがレビューでは問題ないように見えても、コンパイラが興味深いエラーを発見し、実際にプログラムを実行するとさらに多くの興味深いエラーが見つかる可能性があるのと同様です。(さらに、この標準が作成された当時は、これに相当するEXPRESSコンパイラ/実行プログラムは存在せず、現在も存在しない可能性があります。)
EDIF 2 0 0 の「雰囲気」の問題に対する解決策は、EDIF 3 0 0 (1993) でより具体的な意味記述を開発することであった。実際、EDIF 3 0 0 翻訳ツールを作成した人々の報告によると、意味的な制約が非常に多いため、書き手を正しく表現するのがはるかに難しくなった一方、読み手は比較的簡単に開発できるようになったという。
ベンダーの「利益相反」に対する解決策は、ベンダーのインターフェースに基づいてEDIF製品を提供できる中立的なサードパーティ企業でした。EDIF製品をベンダーの直接的な管理から分離することは、エンドユーザーコミュニティにうまく機能するツールを提供するために不可欠でした。これは自然に、そして議論されることなく形成されました。エンジニアリングデータエクスプレスはおそらくこの分野で最初の企業であり、エレクトロニックツールズカンパニーは1990年代半ばから後半にかけて市場を掌握したようです。この業界のもう1つの動向はEDIF自体です。EDIFはかなり大規模になったため、リーダーとライターを生成することは非常にコストのかかるものになりました。通常、サードパーティ企業は必要な専門家を集め、この専門知識を使用してより効率的にソフトウェアを生成できます。また、個々のベンダーではできないコード共有やその他の技術を活用することもできます。2000年までに、主要なベンダーはほとんど独自のEDIFツールを生産しておらず、代わりにサードパーティツールをOEMすることを選択しました。
EDIF 4 0 0 のリリース以降、EDIF 標準化組織は事実上解散しました。技術小委員会や EDIF エキスパートグループなどの会議は一切開催されていません。関係者のほとんどは他の企業やプロジェクトに移っています。ニュースレターは廃止され、ユーザーグループも年次会議を開催しなくなりました。EDIF 3 0 0 と 4 0 0 は現在、ANSI、IEC、および欧州 (EN) 規格となっています。EDIF バージョン 3 0 0 は IEC/EN 61690-1、EDIF バージョン 4 0 0 は IEC/EN 61690-2 です。