Создание символа. Первый вариант.

Предыдущая статья
В предыдущей статье было описано, как настроить библиотеку, а в этой статье я опишу как создал первый символ.
Это будет усилитель для наушников класса AB TDA1308T производства NXP. Ссылка на Datasheet: www.nxp.com/documents/data_sheet/TDA1308.pdf
Забегая вперед, скажу, что это всего лишь один из способов создания символа, и конечный вариант будет другим, а этот мы удалим. Хотя, и с этим тоже можно работать.
Библиотека electronics-lab.lmc должна быть открыта в Library Manager и оттуда нужно запустить Dx Symbol Editor. Это можно сделать, выбрав Tools->Symbol Editor, либо же выбрав соответствующий значок на панели инструментов.
Откроется программа Symbol Editor. Её интерфейс я описывать не буду — там всё довольно понятно. Но, чтобы было понятно о чем я пишу, советую всё-таки найти области Symbol, Pins, Properties и Console; также будет полезно научиться их включать и выключать (View->Windows-><выбранное окно>)


Настройка человеческой системы измерения и сетки
Теперь нам надо настроить единицы измерения, сетку и прочие плюшки. Признаться, я запорол несколько символов, прежде чем разобрался что здесь к чему, создавая сначала символ, потом меняя параметры, и потом уже неправильно сохраняя символ. Поэтому, сейчас я сразу кошерненько всё опишу.
Если же вы собираетесь работать с дюймами, то эту настроечку можно пропустить.
  1. Выбираем File->Preferences
  2. В левой части окна Preferences выбираем General (должно быть выбрано по умолчанию)
  3. Меняем в области View:Units на mm, теперь человеческие единицы настроены
  4. Устанавливаем в области Grid: Grid Step значение 5 мм
  5. Устанавливаем в области Pins: Default Length значение 5 мм
  6. Нажимаем OK

Этими шагами мы упростили себе жизнь, теперь, выводы наших элементов (если дальше не накосячить, а я косячил и знаю теперь, что делать не надо) будут попадать в сетку 2,5 мм при создании разработ. Будем делать элементы как для схем с большой плотностью (где резистор размером 10Х4 слишком велик, поэтому, будет 5Х2), так и стандартные. большие элементы будут попадать выводами в сетку 5 мм, малые в сетку 2,5 мм.

Теперь (хотя, правильнее было сделать это и ранее) создадим раздел Headphone_amps в библиотеке символов (можно сразу и в библиотеке компонентов)


Настройка свойств символа по умолчанию
Далее, ещё сильнее упростим себе жизнь. В символ стоит добавлять определенные свойства, если мы хотим поместить их в определенные места.
В моём случае это свойства Ref Designator, Manufacturer и Part Number, а также системные — PARTS, Level.
Ref Designator — это позиционное обозначение микросхемы.
Part Number — это номенклатурный номер. Я предпочитаю оставлять номенклатурный номер производителя, поэтому такой пользовательский параметр, как Manufacturer я тоже включаю в символ, и он означает производителя микросхемы.
PARTS — показывает из скольких одинаковых частей состоит микросхема. Например, наша — из двух, а простой транзистор — из одной, и т.п.
Level — используется нетлистером, показывает уровень иехархии компонента, например, если в схеме есть Verilog или VHDL символы, то для того, чтобы нетлистер не копался ниже в их иерархии и не искал там что-то своё, необходимо указать уровень Verilog или VHDL. С этим свойством я знаком лишь поверхностно, но для микросхем его надо устанавливать, как STD.
  1. Выбираем File->Preferences
  2. В левой части окна Preferences выбираем Symbol Default Properties
  3. Нажимаем на кнопку Add New Property
  4. Выбираем Ref Designator (возможно, вначале придется вбить хотя бы одну букву), устанавливаем Name как невидимое, а Value — видимое, прописываем в столбце Value DA?, Position устанвливаем Above Symbol
  5. Повторяем пункты 3 и 4, пока не установим следующие значения свойств:
    Part Number = оставляем пустым
    Manufacturer = оставляем пустым
    Parts = 1
    Level = STD
  6. Видимыми должны быть только значения Value свойств Ref Designator и Part Number, положение для Part Number — Below Symbol, а для Ref Designator — Above Symbol.
  7. Нажимаем OK



Создание символа
Можно было бы создать символ через мастер создания символов, но он в Mentor Graphics (вроде как лидер в области разработки САПР печатных плат) ущербен чуть более, чем полностью. Именно поэтому создадим символ вручную

Ничего нового File->New либо кнопочка, либо Ctrl+N, и создается новый символ с именем unnamed.1, вот это имя мы сразу и переименуем в TDA1308_half.1 в области Properties.
Я добавил half, поскольку сама микросхема TDA1308 состоит из двух одинаковых каналов, и я хочу отображать их в схеме раздельно. Именно поэтому, свойство Parts необходимо установить в 2.
Свойство Symbol Type необходимо оставить как Module — это обозначает, что наш символ, который представляет компоненты для установки на печатную плату или HDL и SPICE модели. Символы типа MODULE не имеют внутреннего схемотехнического представления.
Forward PCB = True (По умолчанию для Symbol type = module) — разрешает упаковку символа, прямую аннотацию и размещение посадочного места для компонента на печатной плате.
Precision = High. Включает нормальную работу с миллиметрами. Backward Compartible — включает работу с дюймами, миллиметровые символы в этом режиме превращаются в нечто непечатаемое (жаль, что администрация проитв мата, порой он весьма кстати). Поэтому, оставляем High.


Создание выводов компонента
Вообще, мне известно три способа создания выводов. Самый простой — Symbol->Add Pin и сразу размещаем выводы в окне Symbol. Но для данной конкретной детали Предпочтительнее будет создать выводы в окне Pins.
У каждой половинки микросхемы будет по три вывода — два аналоговых входа IN+ и IN- и один аналоговый выход — OUt. Кроме того, создадим два скрытых вывода, один подключенный в AGND, Второй — к VCC (AGND и VCC — Внутренние глобальные символы центральной библиотеки)
  1. В окне Pins нажимаем на надписи Click here to add new row
  2. В колонке Name вводим IN+, в колонке dir выбираем ANALOG, в колонке Side выбираем Left, В колонке Pin Number ввдодим 3,5
  3. Создаем также выводы IN-: ANALOG; Left; 2,6 и OUT: ANALOG; Right; 1,7

Выводы, которые будут перенесены на УГО уже созданы, но в самом левом ряду в каждой колонке стоит звездочка, указывающая, что выводы пока не перенесены в схему.
Немного объясню, что мы сейчас сделали:
Name — это название вывода, его назначение. Можно сделать видимым или невидимым.
Dir — это назначение вывода, потратил три дня, чтобы получить объяснение что когда применять, в Россиянии все умно морщили лоб, строили из себя шибко умных, но так ничего и не сказали, залез на вражий форум (communities.mentor.com) и получил ответ через 25 минут. Привожу перевод:
  • IN (Input): Цифровые входы
  • OUT (Output): Цифровые выходы, которые не являются TRI (выход с тремя состояниями), OEM (открытый эмиттер), OCL (открытый коллектор)
  • BI (Bidirectional or Bidir): Цифровые выводы, которые являются как входными, так и выходными (обрабатывают и входящие и исходящие сигналы)
  • ANALOG: Этот тип вывода используется в аналоговых устройствах а также для аналоговых выводов цифровых устройств (например, выход ЦАП или вход АЦП)
  • OCL (Open collector): Выход с открытым коллектором
  • OEM (Open emitter): выход с открытым эмиттером
  • TRI (Tristate): Цифровой выход с третьим состоянием
  • POWER: Вывод питания, обычно исплоьзуется для обозначения выводов питания (как положительного, так и отрицательного)
  • GROUND: Вывод соединения с общим проводом
  • TERMINAL: терминальный вывод дял VHDL-AMS (Analog Mixed Signal)
Указание типа вывода очень важно для корректной работы DRC (Design Rule Check — проверка правил разработки), которая запускается утилитой Verify в DxDesigner'е. Достаточно большое количество этих проверок основано на типе выводов, особенно проверки POwER и GROUND, но также для выявления ошибок соединений (замыкание накоротко двух выходов, оставленные неподключенными входные выводы и т.д.).
Наиболее используемые типы выводов — это IN, OUT, BI, ANALOG, POWER and GROUND. Кто-то добавляет к ним TRI, OEM and OCL. Вывод TERMINAL используется редко в контексте разработок печатных плат, только если вы не запускаете функциональное симулирование устройства в VHDL-AMS.

Side — это сторона УГО, на которой будет расположен вывод.
Pin Number — это порядковый номер вывода. Тут особо стоит отметить, что напротив одного вывода надо писть такое количество номеров, которое указано в свойстве Parts.

Перетащим выводы из окна Pins в окно Symbol Расположим их в узлах 5мм сетки, так, чтобы аналоговые выводы IN+ и IN- были выровнены по вертикали, и находились на расстоянии 10 см один над другим, а аналоговый вывод OUT расположим между ними по-вертикали и на 10 мм правее по-горизонтали.
Если не перетащить выводы из окна Pins в окно Symbol перед закрытием Symbol Editor'а, то они пропадут.


Добавление скрытых выводов компонентк
Для добавления скрытых выводов применяется свойство символа Signal. Это свойство позволяет присоединять цепи к выводам компонента, но для его применения, символ не должен содержать в явной форме выводов, к которым подводится сигнал. Цепи, подключенные подобным образом, обрабатываются системой, как глобальные.
Формат свойства следующий: Signal = name;pin_number, pin_number,…
Это необязательно задавать в символе, это можно задать и в дальнейшем создании компонента, но можно сделать и следующим образом:
  1. Создадим в области Properties свойство Signal, назначим значение vcc;8
  2. Попробуем создать ещё одно свойство Signal со значением gnd;4
Содать ещё одно свойство Signal не получится. Чтобы это вышло, необходимо в Properties Definition Editor'е разрешить несколько вхождений свойства Signal.

Но так сразу добавить свойство в Symbol Editor'е не получится, его для этого надо перезапустить, поэтому, сохраняем символ в разделе headphone_amps, закрываем Symbol Editor.

Запускаем его снова из Library Manager'а, например, двойным щелчком на символе TDA1308_half.1 в разделе headphone_amps, библиотеки символов в центральной библиотеке electroincs-lab.ru.
Кстати, память у программы, как у девушки. Она уже забыла, что я — приверженец миллиметров, поэтому, мне снова надо настраивать вкладку general в File->Properties
Добавляем свойство Signal = gnd;4


Создание графики символа
Прежде всего, удалим прямоугольник, который был создан автоматически, при создании символа.
Установим сетку в 1 мм. Нарисуем треугольник усилителя (вертикальная сторона — 12 мм, правая вершина — в начале вывода OUT).
Изменим сетку в 2,5 мм, сдвинем входные выводы ближе к друг другу.
Также я изменил положение и размер названий выводов.
Получилось вот так (выбраны только названия выводов):



Доведение символа до ума
Наш символ почти готов, но его REFDES и Part Number находятся непонятно где, и его точка привазяки (Origin) тоже очень сильно не там, где нужно.
Кликнем и перетащим Origin в удобное нам место. В моём случае, это отрицательный входной вывод усилителя.
Далее, переместим свойства Ref Designator и Part Number в положенные им места.
В завершение выберем Symbol->Update Symbol Outline
Вот, что получается в итоге:

Такой символ не стыдно и маме показать. Сохраняем, выходим из Symbol Editor'а.

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

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.