Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Представление компонентов электронной схемы
термин электроники
Representation of electronic circuit components
the electronics term
В электронном проектировании, сетевой список (нетлист) – это описание связей в электронной схеме. В простейшем виде нетлист состоит из перечня электронных компонентов в схеме и перечня узлов, к которым они подключены. Сеть (net) – это совокупность двух или более соединенных компонентов. Структура, сложность и представление нетлистов могут существенно различаться, но основная цель каждого нетлиста – передача информации о соединениях. Нетлисты обычно содержат лишь экземпляры компонентов, узлы и, возможно, некоторые атрибуты этих компонентов. Если они описывают нечто большее, то обычно рассматриваются как язык описания аппаратуры, такой как Verilog или VHDL, или один из языков, специально разработанных для ввода в симуляторы или аппаратные компиляторы (например, нетлисты для аналогового моделирования SPICE).
In electronic design, a netlist is a description of the connectivity of an electronic circuit. In its simplest form, a netlist consists of a list of the electronic components in a circuit and a list of the nodes they are connected to. A network (net) is a collection of two or more interconnected components. The structure, complexity and representation of netlists can vary considerably, but the fundamental purpose of every netlist is to convey connectivity information. Netlists usually provide nothing more than instances, nodes, and perhaps some attributes of the components involved. If they express much more than this, they are usually considered to be a hardware description language such as Verilog or VHDL, or one of several languages specifically designed for input to simulators or hardware compilers (such as SPICE analog simulation netlists).
Содержание и структура сетевого списка
Большинство сетевых списков содержат или ссылаются на описания используемых компонентов или устройств. Каждый раз, когда компонент используется в сетевом списке, это называется "экземпляром". Эти описания обычно перечисляют соединения, которые осуществляются для данного типа устройства, и некоторые базовые свойства этого устройства. Эти точки соединения называются "выводами" или "пинами", среди других названий. "Экземпляр" может быть чем угодно: от MOSFET-транзистора или биполярного транзистора до резистора, конденсатора или интегральной схемы. Экземпляры имеют "выводы". В случае пылесоса эти выводы будут тремя металлическими контактами в вилке. Каждый вывод имеет имя, и, продолжая пример с пылесосом, они могут быть "нейтраль", "фаза" и "земля". Обычно каждый экземпляр имеет уникальное имя, так что если у вас есть два экземпляра пылесосов, один может быть "vac1", а другой "vac2". Помимо имен, они могут быть идентичными. Сети (nets) – это "проводники", соединяющие элементы в схеме. В проекте могут быть или не быть специальные атрибуты, связанные с сетями, в зависимости от конкретного языка, на котором написан сетевой список, и его возможностей. Сетевые списки, основанные на экземплярах, обычно содержат список экземпляров, используемых в проекте. Вместе с каждым экземпляром предоставляется либо упорядоченный список имен сетей, либо список пар: имя порта экземпляра и имя сети, к которой этот порт подключен. В этом описании список сетей можно получить из списков соединений, и нет возможности связать определенные атрибуты с самими сетями. SPICE является примером сетевого списка, основанного на экземплярах. Сетевые списки, основанные на сетях, обычно описывают все экземпляры и их атрибуты, затем описывают каждую сеть и указывают, к какому порту какого экземпляра она подключена. Это позволяет связывать атрибуты с сетями. EDIF, вероятно, самый известный из сетевых списков, основанных на сетях.
Most netlists either contain or refer to descriptions of the parts or devices used. Each time a part is used in a netlist, this is called an "instance". These descriptions will usually list the connections that are made to that kind of device, and some basic properties of that device. These connection points are called "terminals" or "pins", among several other names. An "instance" could be anything from a MOSFET transistor or a bipolar junction transistor, to a resistor, a capacitor, or an integrated circuit chip. Instances have "terminals". In the case of a vacuum cleaner, these terminals would be the three metal prongs in the plug. Each terminal has a name, and in continuing the vacuum cleaner example, they might be "Neutral", "Live" and "Ground". Usually, each instance will have a unique name, so that if you have two instances of vacuum cleaners, one might be "vac1" and the other "vac2". Besides their names, they might otherwise be identical. Networks (nets) are the "wires" that connect things together in the circuit. There may or may not be any special attributes associated with the nets in a design, depending on the particular language the netlist is written in, and that language's features. Instance based netlists usually provide a list of the instances used in a design. Along with each instance, either an ordered list of net names is provided, or a list of pairs provided, of an instance port name, along with the net name to which that port is connected. In this kind of description, the list of nets can be gathered from the connection lists, and there is no place to associate particular attributes with the nets themselves. SPICE is an example of instance based netlists. Net based netlists usually describe all the instances and their attributes, then describe each net, and say which port they are connected on each instance. This allows for attributes to be associated with nets. EDIF is probably the most famous of the net based netlists.
Иерархия
В больших проектах обычной практикой является разделение проекта на части, каждая из которых становится "определением", которое может использоваться в качестве экземпляров в проекте. Если проводить аналогию с пылесосом, можно определить пылесос с его портами, но теперь это определение также будет включать в себя полное описание внутренних компонентов машины и способы их соединения (двигатели, переключатели и т.д.), подобно электрической схеме. Определение, не содержащее экземпляров, называется "примитивом" (или "листом", или другим названием); в то время как определение, содержащее экземпляры, называется "иерархическим". "Свернутая" иерархия позволяет одному определению быть представленным несколько раз посредством экземпляров. "Развернутая" иерархия не позволяет использовать определение более одного раза в иерархии. Свернутые иерархии могут быть чрезвычайно компактными. Небольшой сетевой список, состоящий всего из нескольких экземпляров, может описывать проекты с очень большим количеством экземпляров. Например, предположим, что определение A – это простой примитив, такой как ячейка памяти. Пусть определение B содержит 32 экземпляра A; C содержит 32 экземпляра B; D содержит 32 экземпляра C; и E содержит 32 экземпляра D. В проекте теперь 5 определений (от A до E) и 128 экземпляров. Однако E описывает схему, содержащую более миллиона ячеек памяти.
In large designs, it is a common practice to split the design into pieces, each piece becoming a "definition" which can be used as instances in the design. In the vacuum cleaner analogy, one might have a vacuum cleaner definition with its ports, but now this definition would also include a full description of the machine's internal components and how they connect (motors, switches, etc. ), like a wiring diagram does. A definition which includes no instances is called a "primitive" (or a "leaf", or other names); whereas a definition which includes instances is "hierarchical". A "folded" hierarchy allows a single definition to be represented several times by instances. An "unfolded" hierarchy does not allow a definition to be used more than once in the hierarchy. Folded hierarchies can be extremely compact. A small netlist of just a few instances can describe designs with a very large number of instances. For example, suppose definition A is a simple primitive, like a memory cell. Then suppose definition B contains 32 instances of A; C contains 32 instances of B; D contains 32 instances of C; and E contains 32 instances of D. The design now contains 5 definitions (A through E) and 128 instances. Yet, E describes a circuit that contains over a million memory cells.
Развертывание
В "плоском" дизайне инстанцируются только примитивы. Иерархические дизайны могут быть рекурсивно "развёрнуты" ("сделаны плоскими") путём создания новой копии (с новым именем) каждого определения при каждом его использовании. Если дизайн сильно иерархичен, такое развёртывание приведёт к значительно большей базе данных сетевого списка, но при этом сохранит зависимости иерархии. Для иерархического сетевого списка, список имён экземпляров в пути от корневого определения до экземпляра примитива определяет единственный уникальный путь к этому примитиву. Совокупность путей ко всем примитивам образует большой, но плоский сетевой список, который точно эквивалентен компактной иерархической версии.
In a "flat" design, only primitives are instanced. Hierarchical designs can be recursively "exploded" ("flattened") by creating a new copy (with a new name) of each definition each time it is used. If the design is highly folded, expanding it like this will result in a much larger netlist database, but preserves the hierarchy dependencies. Given a hierarchical netlist, the list of instance names in a path from the root definition to a primitive instance specifies the single unique path to that primitive. The paths to every primitive, taken together, comprise a large but flat netlist that is exactly equivalent to the compact hierarchical version.
Заднепримечание
Баканотация – это данные, которые можно добавить к иерархическому списку соединений. Обычно они хранятся отдельно от списка соединений, поскольку к одному списку соединений можно применить несколько альтернативных наборов данных. Эти данные могут быть получены из физического проекта и могут предоставлять дополнительную информацию для более точного моделирования. Как правило, данные состоят из иерархического пути и фрагмента данных для данного элемента или значений задержки RC, вызванных межсоединениями.
Backannotation is data that could be added to a hierarchical netlist. Usually they are kept separate from the netlist, because several such alternate sets of data could be applied to a single netlist. These data may have been extracted from a physical design, and might provide extra information for more accurate simulations. Usually the data are composed of a hierarchical path and a piece of data for that primitive or finding the values of RC delay due to interconnection.
Наследие
Еще одна концепция, часто используемая в схемах-списках, – это наследование. Предположим, определение конденсатора имеет связанный атрибут с именем "Емкость", соответствующий физическому свойству с тем же названием и имеющий значение по умолчанию "100 пФ" (100 пикофарад). Каждый экземпляр этого конденсатора также может иметь этот атрибут, но с другим значением емкости. А другие экземпляры могут вообще не иметь атрибута емкости. Если для экземпляра не указана емкость, он "наследует" значение 100 пФ из своего определения. Указанное значение "переопределяет" значение в определении. Если большое количество атрибутов совпадает со значениями в определении, можно "наследовать" большой объем информации, избегая ее избыточного указания в схеме-списке, что экономит место и облегчает чтение схемы как для машин, так и для людей.
Another concept often used in netlists is that of inheritance. Suppose a definition of a capacitor has an associated attribute called "Capacitance", corresponding to the physical property of the same name, with a default value of "100 pF" (100 picofarads). Each instance of this capacitor might also have such an attribute, only with a different value of capacitance. And other instances might not associate any capacitance at all. In the case where no capacitance is specified for an instance, the instance will "inherit" the 100 pF value from its definition. A value specified will "override" the value on the definition. If a great number of attributes end up being the same as on the definition, a great amount of information can be "inherited", and not have to be redundantly specified in the netlist, saving space, and making the design easier to read by both machines and people.