Введение
EDIF (Electronic Design Interchange Format) — это нейтральный формат, не зависящий от поставщика, основанный на S-выражениях, предназначенный для хранения электронных списков соединений и схем. Это была одна из первых попыток установить единый формат обмена данными для индустрии автоматизированного проектирования электроники (EDA). Целью было создание общего формата, от которого можно было бы получать проприетарные форматы EDA-систем. Когда заказчикам требовалось передавать данные между системами, приходилось разрабатывать трансляторы из одного формата в другой. С ростом числа форматов (N) проблема трансляции превращалась в проблему, сложность которой росла пропорционально квадрату N. Предполагалось, что использование EDIF позволит сократить количество трансляторов до числа участвующих систем. Представители компаний Daisy Systems, Mentor Graphics, Motorola, National Semiconductor, Tektronix, Texas Instruments и Калифорнийского университета в Беркли создали Руководящий комитет EDIF в ноябре 1983 года. Позже к команде присоединился Хилари Кан, профессор информатики из Манчестерского университета, и возглавил разработку, начиная с версии EDIF 2.0.0 и до финальной версии 4.0.0.
EDIF 2 9 0
Выпущен 15 сентября 1992 года.
Проблемы с 2 0 0
Чтобы понять проблемы, с которыми сталкивались пользователи и поставщики при работе с EDIF 2.0.0, необходимо сначала представить себе все элементы и динамику электронной промышленности. Основными пользователями этого стандарта были инженеры-конструкторы, работавшие в компаниях, размер которых варьировался от небольших гаражных мастерских до многомиллиардных предприятий с тысячами сотрудников. В конце 1980-х годов эти инженеры в основном работали с принципиальными схемами и списками соединений, и основной задачей было автоматическое генерирование списков соединений из принципиальных схем. Первыми поставщиками были компании, занимающиеся автоматизацией проектирования электроники (например, Daisy, Mentor и Valid сформировали самую раннюю доминирующую группу). Эти компании активно конкурировали за свою долю рынка. Одной из тактик, используемых этими компаниями для "удержания" клиентов, были их проприетарные базы данных. Каждая из них обладала уникальными функциями, которых не было у других. После принятия решения об использовании программного обеспечения конкретного поставщика для разработки проекта, клиент оказывался навсегда ограничен в использовании какого-либо другого программного обеспечения. Переход с системы поставщика A на систему поставщика B обычно требовал дорогостоящего ручного повторного ввода практически всех данных проекта в новую систему. Эта стоимость "миграции" была основным фактором, приковывавшим инженеров-конструкторов к одному поставщику. Однако "клиенты" имели иные желания. Они сразу поняли, что, хотя у поставщика A может быть действительно хорошая среда для аналогового моделирования, у поставщика B был гораздо лучший автоматический маршрутизатор для печатных плат или кремния. И они хотели иметь возможность выбирать среди различных поставщиков. EDIF поддерживался в основном конечными пользователями электронного проектирования и их компаниями. Поставщики EDA также участвовали в этом, но их мотивация была скорее в том, чтобы не оттолкнуть своих клиентов. Большинство поставщиков EDA создавали трансляторы EDIF 2.0.0, но они, безусловно, были более заинтересованы в создании высококачественных парсеров EDIF и не имели никакой мотивации писать программное обеспечение, генерирующее EDIF (генератор EDIF), за исключением угроз со стороны клиентов о массовой миграции на программное обеспечение другого поставщика. Результат оказался довольно интересным. Практически ни один поставщик программного обеспечения не создавал выходные данные EDIF 2.0.0 без серьезных нарушений синтаксиса или семантики. Семантика была достаточно гибкой, чтобы одни и те же данные можно было описать несколькими способами. Это стало известно как "варианты" EDIF. Компании-поставщики не всегда считали важным выделять много ресурсов на продукты EDIF, даже если они продавали их в больших количествах. Существовало множество случаев, когда активные продукты годами практически никто не поддерживал. Жалобы пользователей просто собирались и приоритизировались. Чем сложнее становилось экспортировать данные клиентов в EDIF, тем больше это нравилось поставщикам. Те, кто создавал трансляторы EDIF, обнаружили, что тратят огромное количество времени и усилий на создание достаточно мощных, устойчивых к ошибкам, интеллектуальных парсеров, которые могли обрабатывать и собирать низкокачественный код, создаваемый существующими генераторами EDIF 2.0.0 того времени. При разработке EDIF 3.0.0 комитеты хорошо знали о недостатках языка, о клевете, распространяемой поставщиками в отношении EDIF 2.0.0, и о разочаровании конечных пользователей. Поэтому, чтобы ужесточить семантику языка и обеспечить более формальное описание стандарта, был принят революционный подход – предоставление информационной модели для EDIF на языке информационного моделирования EXPRESS. Это помогло лучше документировать стандарт, но было сделано скорее как дополнение, поскольку синтаксис разрабатывался независимо от модели, а не генерировался из нее. Кроме того, хотя в стандарте говорится, что если синтаксис и модель не согласуются, модель является стандартом, на практике это не так. Описание синтаксиса в БНФ является основой языка, поскольку программное обеспечение, выполняющее повседневную работу по созданию описаний проектов, основано на фиксированном синтаксисе. Информационная модель также страдала от того, что она не очень хорошо подходила для описания EDIF. Она не очень хорошо описывает такие понятия, как пространства имен, и различия между определением и ссылкой также не могут быть четко описаны. Кроме того, конструкции в EXPRESS для описания ограничений могут быть формальными, но описание ограничений иногда является довольно сложной задачей. Поэтому большинство ограничений в конечном итоге описывались просто как комментарии. Остальные стали сложными формальными описаниями, которые большинство читателей никогда не смогут расшифровать и, следовательно, могут не выдержать автоматическую отладку/компиляцию, как программа может выглядеть хорошо при проверке, но компилятор может найти интересные ошибки, а фактическое выполнение написанной программы может выявить еще более интересные ошибки. (Кроме того, аналогичные компиляторы/исполнители EXPRESS не существовали на момент написания стандарта и, возможно, не существуют и сегодня!)
Решение проблем EDIF 2 0 0
Решение проблемы "специфичности" EDIF 2.0.0 заключалось в разработке более точного семантического описания в EDIF 3.0.0 (1993). Действительно, сообщалось, что создание трансляторов EDIF 3.0.0 оказалось гораздо сложнее из-за большого количества семантических ограничений, в то время как разработка программ для чтения (readers) была сравнительно простой задачей. Решением проблемы "конфликта интересов" поставщиков стали нейтральные сторонние компании, которые могли предоставлять продукты EDIF на основе интерфейсов поставщиков. Это разделение продуктов EDIF от прямого контроля поставщиков было критически важно для обеспечения сообщества конечных пользователей инструментами, которые хорошо работали. Это произошло естественным образом и без каких-либо замечаний. Engineering DataXpress, возможно, была первой такой компанией в этой области, а Electronic Tools Company, похоже, захватила рынок в середине и конце 1990-х годов. Еще одна особенность этой отрасли – это сам формат 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.
Наследники EDIF
LKSoft использовала основные концепции из EDIF 2.0.0 для создания собственного формата данных с расширением по умолчанию ".cam" для своей системы CircuitCAM, изначально предлагаемой компанией LPKF Laser & Electronics AG в Гарбзене/Ганновере, Германия, а сегодня принадлежащей компании DCT Co., Ltd. в Тяньцзине, Китай. Для эффективной работы с форматами, подобными EDIF, LKSoft разработала EDIF Procedural Interface – API для языка программирования C. Zuken, ранее Racal Redac Ltd., использовала концепции из ранней разработки EDIF 4.0.0 для создания нового фирменного формата под названием CADIF для своей CAD-системы Visula PCB. Этот формат также широко используется сторонними производителями. STEP AP210, являющийся частью ISO 10303, практически унаследовал всю функциональность EDIF 4.0.0, за исключением схем.