Список соединений

Из Википедии, бесплатной энциклопедии

Выражение список соединений (или список цепей) — калька с термина англ. netlist имеет несколько значений.

Список электрических соединений (при разработке электронных устройств) — текстовое представление информации (формат файла) о электрических соединениях, связывающих компоненты электронного устройства.

Список соединений (при проектировании интегральных схем) — текстовое представление информации (формат файла) о соединениях модулей (логических элементов, блоков памяти и др.) интегральной схемы.

В списках соединений обычно приводится информация о внутрисхемных соединениях и, как правило, не содержится ничего другого, кроме перечня приборов (модулей, узлов, компонентов, «экземпляров»), «соединений» между ними и нескольких атрибутов (параметров). Если требуется описать нечто более сложное, используют специализированные языки описания аппаратуры (Verilog, VHDL и др.).

Классификация списков соединений:

  • физические или логические;
  • по способу построения:
    • построенные на основе экземпляров приборов (англ. instance-based);
    • построенные на основе соединений (англ. net-based);
  • по наличию/отсутствую вложенных компонентов:
    • «плоские» (англ. flat) или «развёрнутые» (англ. unfolded);
    • «иерархические» (англ. hierarchical) или «свёрнутые» (англ. folded).

Состав и структура списка[править | править код]

Электронное устройство состоит из компонентов (узлов, модулей), соединённых проводниками.

В списке соединений компоненты электронного устройства называются «экземплярами», а проводники — «соединениями».

«Экземпляры» бывают двух видов:

  • «определения» — «экземпляры», в состав которых входят другие «экземпляры»;
  • «оригиналы» — «экземпляры», не содержащие в своём составе вложенных «экземпляров».

В состав «определения» входят:

  • перечень вложенных «экземпляров» (компонентов);
  • перечень «соединений», связывающих «экземпляры» (компоненты) между собой.

«Экземпляром» может быть всё что угодно: от полевых или биполярных транзисторов, резисторов и конденсаторов до интегральных микросхем.

«Экземпляры» имеют «порты» (англ. ports) (или «выводы» (англ. pins)). Например, «портами» пылесоса можно назвать три металлических вывода вилки шнура питания.

Каждый «порт» имеет «имя». Например, «порты» пылесоса могут называться «ноль», «фаза» и «земля».

«Экземпляры» могут иметь «имена». Например, два одинаковых пылесоса могут называться «vac1» и «vac2». С помощью (уникальных) имён одинаковые «экземпляры» можно отличить друг от друга.

«Соединения» описывают проводники, связывающие компоненты схемы между собой.

«Экземпляры» и «соединения» могут иметь, а могут и не иметь особые атрибуты; это зависит от возможностей выбранного языка.

Существует два подхода к построению списков соединений:

  • на основе экземпляров (англ. instance-based) (например, SPICE);
  • на основе соединений (англ. net-based) (например, EDIF (англ.)).

В состав списка, построенного на основе экземпляров (англ. instance-based), входит перечень «экземпляров». Для каждого «экземпляра» приводится:

  • либо упорядоченный список имён «соединений»;
  • либо список пар, включающий:
    • имя «порта» «экземпляра»;
    • имя «соединения», подключаемого к «порту».

Перечень «соединений» строится автоматически после анализа получаемых взаимосвязей. Невозможно указать атрибуты для «соединений».

Наиболее известным знаменитым списком соединений, простроенным на основе экземпляров (англ. instance-based), является, возможно, SPICE.

В состав списка, построенного на основе соединений (англ. net-based), входят:

  • перечень всех «экземпляров» и их атрибутов;
  • описание всех «соединений» (указание имён соединяемых «портов» «экземпляров»).

В таком списке возможно указание атрибутов для «соединений».

Наиболее известным списком соединений, построенным на основе соединений (англ. net-based), является, возможно, EDIF (англ.).

Иерархия[править | править код]

Устройство может состоять из множества одинаковых и разных компонентов (узлов, модулей). Компоненты могут содержать повторяющиеся и отличающиеся вложенные компоненты.

Для удобства большие списки соединений делят на части, одинаковые компоненты описывают с помощью «определений». Например, разработчик может создать «определение» пылесоса с портами, но теперь это определение будет включать полное описание внутренних компонентов пылесоса и соединений между ними (моторов, переключателей и т. д.).

«Примитив» — «определение», не включающее в себя никаких «экземпляров» (не содержащее вложений). Также может называться «листом» или как-то иначе.

«Иерархическое» (англ. hierarchical) «определение» — «определение», включающее в себя «экземпляры» (вложения).

Список называется «свёрнутым» (англ. folded), если внутри него одно и то же «определение» используется несколько раз.

Список называется «развёрнутым» (англ. unfolded), если внутри него нет «определений», используемых более одного раза.

Свёрнутый список может быть чрезвычайно компактным (маленьким). Маленький список соединений из небольшого числа «экземпляров» может описывать устройства с огромным количеством вложенных «экземпляров».

Например, дадим пять «определений»:

  • A является ячейкой памяти;
  • B содержит 32 «экземпляра» A;
  • C содержит 32 «экземпляра» B;
  • D содержит 32 «экземпляра» C;
  • E содержит 32 «экземпляра» D.

Устройство, состоящее всего из одного «экземпляра» E, будет включать ячеек памяти («экземпляров» A).

Развёртывание иерархии[править | править код]

Любой свёрнутый список может быть развёрнут — преобразован в плоский список.

«Плоский» (англ. flat) список соединений — список соединений, в котором в качестве «экземпляров» используются только примитивы (нет «экземпляров», содержащих вложенные «экземпляры»).

Свёрнутые (иерархические) списки преобразуются к плоским спискам (рекурсивно развёртываются) путём рекурсивной замены каждого не примитивного «определения» на содержащиеся в нём «экземпляры» (с новым именем).

При большом количестве вложений и/или при большой глубине вложений, развёртывание списка приводит к увеличению его размера, но при этом иерархические зависимости сохранятся.

Обратное аннотирование[править | править код]

Обратное аннотирование (англ. back annotation) — добавление в список соединений каких‑либо «данных» (дополнительной информации).

Обычно, «данные» хранятся отдельно от списка и поэтому могут использоваться в нескольких списках одновременно. «Данные» могут определяться по результатам исследований физического устройства, могут использоваться для более точного моделирования.

В состав «данных» входят:

  • путь к примитиву (в иерархии);
  • сами данные, например, время задержки для RC-цепей, обусловленное наличием паразитных ёмкостей между соединениями внутри устройства.

Наследование[править | править код]

Понятие «наследование» опишем на примере.

Пусть:

  • дано «определение» конденсатора;
  • в «определении» указан атрибут под названием «Ёмкость», соответствующий одноимённому физическому свойству;
  • для атрибута указано значение по умолчанию — «100 pF» (100 пикофарад).

Тогда можно создать «экземпляры»:

  • не содержащие атрибут «Ёмкость». Такие «экземпляры» «унаследуют» значение по умолчанию («100 pF») из своего «определения»;
  • содержащие атрибут «Ёмкость» с произвольным значением. Указанное значение «переопределит» значение, заданное в «определении».

Обычно в качестве значения по умолчанию используют значение, характерное для большинства компонентов, и для этих компонентов значение атрибута не указывается (используется наследование). Это позволяет уменьшить количество повторяющейся информации, а в итоге — уменьшить размер списка.

Литература[править | править код]

  • Chris Schroeder. Inside OrCAD (неопр.). — Newnes, 1996. — С. 187—. — ISBN 978-0-7506-9700-2.
  • Patrick Lee. Introduction to Physical Integration and Tapeout in VLSIs (англ.). — Lulu.com, 2010. — P. 59—. — ISBN 978-0-557-40108-6.