User Tools

Site Tools


geda:format_translation.ru

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
geda:format_translation.ru [2012/02/20 15:14]
127.0.0.1 external edit
geda:format_translation.ru [2014/04/25 06:12] (current)
vzh Updated using po4a
Line 1: Line 1:
 +//Эта страница доступна также на следующих языках://​
 +[[format_translation|English]]
 +
 ====== Преобразование разных форматов файлов друг в друга ====== ====== Преобразование разных форматов файлов друг в друга ======
- 
  
 Нам нужна универсальная система преобразования форматов для трансляции Нам нужна универсальная система преобразования форматов для трансляции
 изменений между всеми современными и возможно будущими средствами gEDA, а изменений между всеми современными и возможно будущими средствами gEDA, а
-также сторонними программами,​ которые,​ вероятно,​ могут использоваться вместе с +также сторонними программами,​ которые,​ вероятно,​ могут использоваться вместе 
-программами gEDA. +с программами gEDA.
  
 ===== Ограничения ===== ===== Ограничения =====
-Поддерживать все возможные преобразования,​ безусловно,​ смысла нет. 
-Поэтому ограничимся современными и возможно будущими составляющими 
-gEDA и сторонними программами,​ которые,​ вероятно,​ могут использоваться 
-вместе с программами gEDA. Разумеется,​ для ряда программ преобразование 
-форматов не имеет смысла и поддерживаться не должно. 
  
-Идея состоит в использовании промежуточного формата. Сначала транслировать +Поддерживать все возможные преобразования,​ безусловно,​ смысла нет. ​ Поэтому 
-в него, затем --- из него. Промежуточный формат должен быть достаточно+ограничимся современными и возможно будущими составляющими gEDA и сторонними 
 +программами,​ которые,​ вероятно,​ могут использоваться вместе с программами 
 +gEDA. Разумеется,​ для ряда программ преобразование форматов не имеет смысла 
 +и поддерживаться не должно. 
 + 
 +Идея состоит в использовании промежуточного формата. Сначала транслировать в 
 +него, затем --- из него. Промежуточный формат должен быть достаточно
 выразительным,​ чтобы его можно было без потерь транслировать в формат любой выразительным,​ чтобы его можно было без потерь транслировать в формат любой
 программы gEDA и обратно. программы gEDA и обратно.
  
-"Без потерь" ​значит,​ что файл, полученный в результате трансляции должен+«Без потерь» значит,​ что файл, полученный в результате трансляции должен
 работать так же, как и исходный. Не обязательно сохранять форматирование и работать так же, как и исходный. Не обязательно сохранять форматирование и
 прочие незначительные вещи. прочие незначительные вещи.
Line 33: Line 35:
 Ниже рассматриваются только те форматы,​ что соответствуют указанной модели. Ниже рассматриваются только те форматы,​ что соответствуют указанной модели.
  
-Если возможно,​ хорошо бы, чтобы выбранный формат уже применялся когда-либо по +Если возможно,​ хорошо бы, чтобы выбранный формат уже применялся когда-либо 
-крайней мере для некоторых из указанных целей, а также имел стороннюю,​+по крайней мере для некоторых из указанных целей, а также имел стороннюю,​
 опубликованную и свободно доступную спецификацию. опубликованную и свободно доступную спецификацию.
  
 Должны быть способы включения изменений из любого источника/​назначения без Должны быть способы включения изменений из любого источника/​назначения без
 смешения различных частей. смешения различных частей.
- 
  
 ==== Инструментарий,​ требующий поддержки ==== ==== Инструментарий,​ требующий поддержки ====
Line 45: Line 46:
   * топологические схемы   * топологические схемы
   * моделирование   * моделирование
- 
  
 ==== Программы gEDA ==== ==== Программы gEDA ====
-Для форматов файлов данных программ нужно преобразование без потерь,​ поэтому +Для форматов файлов данных программ нужно преобразование без потерь,​ поэтому может потребоваться промежуточный формат хранения данных.
-может потребоваться промежуточный формат хранения данных.+
   * gschem   * gschem
   * pcb   * pcb
   * gnucap   * gnucap
   * Icarus Verilog   * Icarus Verilog
- 
  
 ==== Другие свободные программы,​ которые должны полностью поддерживаться ==== ==== Другие свободные программы,​ которые должны полностью поддерживаться ====
-Эти программы тоже свободные. Нужен стандарт для их поддержки на равных правах +Эти программы тоже свободные. Нужен стандарт для их поддержки на равных правах с программами gEDA.
-с программами gEDA.+
   * NGspice   * NGspice
   * Qucs   * Qucs
Line 69: Line 66:
  
 ==== Импорт и экспорт несвободных форматов ==== ==== Импорт и экспорт несвободных форматов ====
-Поддержка форматов данных программ позволит программам gEDA наилучшим образом +Поддержка форматов данных программ позволит программам gEDA наилучшим образом взаимодействовать с коммерческими средствами. Нужна базовая функциональность,​ но преобразование не обязательно должно быть без потерь. Преобразование без потерь должно быть возможным,​ но не является главным приоритетом для фактической реализации средств трансляции.
-взаимодействовать с коммерческими средствами. Нужна базовая функциональность,​ +
-но преобразование не обязательно должно быть без потерь. Преобразование без +
-потерь должно быть возможным,​ но не является главным приоритетом для +
-фактической реализации средств трансляции.+
   * Eagle   * Eagle
   * Orcad   * Orcad
   * LTspice   * LTspice
   * Pads   * Pads
- 
  
 ==== Отсутствующая функциональность gEDA ==== ==== Отсутствующая функциональность gEDA ====
-Надеемся,​ при наличии системы преобразования форматов у нас появится база для +Надеемся,​ при наличии системы преобразования форматов у нас появится база для решения следующих вопросов:​ 
-решения следующих вопросов:​ +  * Обратное аннотирование изменений, сделанных в топологических схемах и файлах моделированияв принципиальные схемы.
-  * Обратная трансляция изменений топологических схем и файлов моделирования в принципиальные схемы.+
   * Анализ статических временных диаграмм.   * Анализ статических временных диаграмм.
   * Моделирование целостности сигналов после формирования топологии платы.   * Моделирование целостности сигналов после формирования топологии платы.
   * Сравнение топологической и принципиальной схем.   * Сравнение топологической и принципиальной схем.
   * Использование одной и той же схемы для всего проекта целиком.   * Использование одной и той же схемы для всего проекта целиком.
- 
  
 ==== Явно не поддерживаются ==== ==== Явно не поддерживаются ====
Line 95: Line 85:
   * Поведенческое моделирование   * Поведенческое моделирование
  
 +===== Общее представление =====
  
-===== Общее представление ===== 
 Все форматы состоят из списков объектов с подключениями и атрибутами. Все форматы состоят из списков объектов с подключениями и атрибутами.
  
 Традиционно для обмена данными использовались списки соединений,​ но Традиционно для обмена данными использовались списки соединений,​ но
-традиционный подход подразумевает одностороннее преобразование,​ поскольку при +традиционный подход подразумевает одностороннее преобразование,​ поскольку 
-этом теряется информация.+при этом теряется информация.
  
-Формат должен передавать сущность содержимого не обязательно таким же образом,​ +Формат должен передавать сущность содержимого не обязательно таким же 
-как родной формат программы или её внутреннее представление.+образом,​ как родной формат программы или её внутреннее представление.
  
 Не обязательно транслировать те части, что обычно уже имеются в библиотеках Не обязательно транслировать те части, что обычно уже имеются в библиотеках
-или специфичны для данной программы,​ такие как модели,​ символы или посадочные +или специфичны для данной программы,​ такие как модели,​ символы или 
-места.+посадочные места.
  
 Каждый из претендентов на роль возможного формата должен поддерживать Каждый из претендентов на роль возможного формата должен поддерживать
 преобразование в любой другой и обратно без потерь. преобразование в любой другой и обратно без потерь.
  
 +==== Возможные форматы ====
  
-==== Возможные форматы ==== 
 === SPICE === === SPICE ===
-Популярный формат списка соединений. Использовался для обмена данными,​ но пока 
-не применялся для описания физического расположения. Проблемы:​ неправильный 
-синтаксис,​ недостаточно выразителен. Эти проблемы годами не давали покоя 
-разработчикам. Формат нравится почти всем, за исключением тех, кто хорошо его 
-знает. 
  
 +Популярный формат списка соединений. Использовался для обмена данными,​ но
 +пока не применялся для описания физического расположения. Проблемы:​
 +неправильный синтаксис,​ недостаточно выразителен. Эти проблемы годами не
 +давали покоя разработчикам. Формат нравится почти всем, за исключением тех,
 +кто хорошо его знает.
  
 === Verilog === === Verilog ===
-Структурное подмножество представляет собой хороший формат списка соединений. 
-Он правилен,​ достаточно выразителен и для него опубликован стандарт. 
-Использовался для обмена данными,​ но пока не применялся для описания 
-физического расположения. 
  
 +Структурное подмножество представляет собой хороший формат списка
 +соединений. ​ Он правилен,​ достаточно выразителен и для него опубликован
 +стандарт. ​ Использовался для обмена данными,​ но пока не применялся для
 +описания физического расположения.
  
 === VHDL === === VHDL ===
-Структурное подмножество представляет собой хороший формат списка соединений. 
-Он правилен,​ достаточно выразителен и для него опубликован стандарт. 
-Использовался для обмена данными,​ но пока не применялся для описания 
-физического расположения. 
  
 +Структурное подмножество представляет собой хороший формат списка
 +соединений. ​ Он правилен,​ достаточно выразителен и для него опубликован
 +стандарт. ​ Использовался для обмена данными,​ но пока не применялся для
 +описания физического расположения.
  
 === Spectre === === Spectre ===
-Структурное подмножество представляет собой хороший формат списка соединений. 
-Он правилен,​ достаточно выразителен,​ но принадлежит одной компании (Cadence), 
-поэтому его исключаем. Использовался только для моделирования. 
  
 +Структурное подмножество представляет собой хороший формат списка
 +соединений. ​ Он правилен,​ достаточно выразителен,​ но принадлежит одной
 +компании (Cadence), поэтому его исключаем. Использовался только для
 +моделирования.
  
 === XML === === XML ===
-XML --- это на самом деле не формат,​ а синтаксис. На основе XML можно сделать 
-хороший формат,​ но примеров такого в подобном контексте пока не наблюдалось. 
-Синтаксис хорошо документирован,​ но никакой сторонней документации по 
-его применению для похожих целей нет. 
  
 +XML --- это на самом деле не формат,​ а синтаксис. На основе XML можно
 +сделать хороший формат,​ но примеров такого в подобном контексте пока не
 +наблюдалось. ​ Синтаксис хорошо документирован,​ но никакой сторонней
 +документации по его применению для похожих целей нет.
  
 ==== Представление физического расположения ==== ==== Представление физического расположения ====
-Это единственный вид применения,​ для которого ни Verilog, ни VHDL серьёзно не + 
-использовались.+Это единственный вид применения,​ для которого ни Verilog, ни VHDL серьёзно 
 +не использовались.
  
 Идеи: Идеи:
Line 159: Line 151:
   * Положение в схеме может рассматриваться как объект с подключениями и атрибутами (''​place''​).   * Положение в схеме может рассматриваться как объект с подключениями и атрибутами (''​place''​).
   * Контактные площадки,​ соединители,​ термоплощадки,​ переходы,​ ... --- всё это тоже объекты с подключениями и атрибутами.   * Контактные площадки,​ соединители,​ термоплощадки,​ переходы,​ ... --- всё это тоже объекты с подключениями и атрибутами.
-  * Чтобы отделить разделы,​ имеющие значение только в определённом контексте,​ можно использовать директиву ''​%%'​define%%''​ (для формата Verilog)+  * Чтобы отделить разделы,​ имеющие значение только в определённом контексте,​ можно использовать директиву ''​%%'​define%%''​ (для формата Verilog).
   * Формат должен быть описанием высокого уровня. Такое представление должно быть повсюду. То есть речь не должна идти о линиях,​ прямоугольниках и окружностях.   * Формат должен быть описанием высокого уровня. Такое представление должно быть повсюду. То есть речь не должна идти о линиях,​ прямоугольниках и окружностях.
   * Если нужно, линии, прямоугольники и окружности тоже могут быть объектами,​ но не транслируемыми,​ так как они не имеют значения в других ситуациях.   * Если нужно, линии, прямоугольники и окружности тоже могут быть объектами,​ но не транслируемыми,​ так как они не имеют значения в других ситуациях.
   * Атрибуты,​ не имеющие значения,​ молча игнорируются. Имеющие значение в одном контексте,​ но не имеющие в другом,​ игнорируются там, где не имеют смысла.   * Атрибуты,​ не имеющие значения,​ молча игнорируются. Имеющие значение в одном контексте,​ но не имеющие в другом,​ игнорируются там, где не имеют смысла.
- 
  
 ===== Приложения ===== ===== Приложения =====
 +
 Как один из возможных вариантов рассмотрим формат Verilog. Как один из возможных вариантов рассмотрим формат Verilog.
  
Line 183: Line 175:
   resistor #(.r(1k)) r234 (.p(b), .n(c));   resistor #(.r(1k)) r234 (.p(b), .n(c));
  
-"​r" ​представляет собой имя атрибута. ​"​1k" ​--- это значение (строка).+«r» представляет собой имя атрибута. ​«1k» ​--- это значение (строка).
  
-В первом примере соединения определяются по порядку. Во втором их соответствие +В первом примере соединения определяются по порядку. Во втором их 
-выводам определяется посредством имён. Узел ​"​b" ​подключен к выводу ​"​p"​, а +соответствие выводам определяется посредством имён. Узел ​«b» подключен к 
-узел ​"​c" ​--- к выводу ​"​n"​.+выводу ​«p», а узел ​«c» --- к выводу ​«n».
  
-Соединение ("​net"​) тоже является объектом.+Соединение («net») тоже является объектом.
  
 В вышеприведённом примере оба резистора непосредственно подключены к узлу В вышеприведённом примере оба резистора непосредственно подключены к узлу
-"​b"​. Подключение в принципиальной схеме непосредственно не задаётся,​ +«b». Подключение в принципиальной схеме непосредственно не задаётся,​ для 
-для этого используется соединение ("​net"​):+этого используется соединение («net»):
  
   resistor #(.r(1k)) r123 (.p(a1), .n(b1));   resistor #(.r(1k)) r123 (.p(a1), .n(b1));
Line 199: Line 191:
   net b (.1(b1), .2(b2));   net b (.1(b1), .2(b2));
  
-Имя соединения --- "​b"​. Атрибутов соединение не имеет.+Имя соединения --- «b». Атрибутов соединение не имеет.
  
 Теперь для схемы нужно добавить узлы: Теперь для схемы нужно добавить узлы:
geda/format_translation.ru.1329768896.txt.gz · Last modified: 2014/04/25 06:12 (external edit)