Последняя версия оригинала настоящего документа находится по адресу
http://www.geda-project.org/wiki/geda:gschem_symbol_creation.
Настоящий документ выпущен под лицензией
GNU Free Documentation License (GFDL).
В настоящем документе описывается создание символов компонентов, в том числе соглашения по стилю, советы/подсказки и то, чего стоит остерегаться при вычерчивании символов для системы gEDA/gaf.
Символы компонентов (называемые далее просто “символами”) вычерчиваются в gschem. Можно начать с пустой страницы или с заведомо хорошего символа, похожего на создаваемый вами.
Прежде, чем открыть gschem и начать чертить символ, задайте себе несколько вопросов, ответы на которые повлияют на то, как это делать:
Когда вы сами для себя ответите на эти вопросы, дальнейшая часть руководства станет для вас гораздо полезней.
Итак, приступим к созданию символа:
С помощью инструментов Линия
, Прямоугольник
, Окружность
,
Дуга
(которые можно выбрать в меню Добавить [Add])
создайте условное графическое обозначение своего устройства. Убедитесь,
что единственный цвет, который вы использовали, это 'Graphic' (зелёный).
Не помещайте никаких выводов устройства до следующего шага.
Для проверки того, какой цвет используется для черчения, откройте меню Правка → Цвет… [Edit → Color…] (или нажмите E O).
Если вы решили, что ваш символ будет графическим (т. е. не будет ни к чему подключаться, а будет просто картинкой), то этот шаг можно пропустить.
Добавьте свой первый вывод.
В диалоговом окне редактирования своего нового вывода вы должны увидеть
четыре атрибута (четыре пары имя=значение
), уже прикреплённых к нему.
Эти атрибуты можно отредактировать, щёлкая сначала по атрибуту в списке
вверху окна редактирования, затем по полю, которое вы хотите изменить.
Учтите, что когда что-то выделено, это не отражается в разделе
диалогового окна Добавить атрибут, так как этот раздел предназначен
только для добавления, а не для редактирования уже имеющихся атрибутов.
Давайте взглянем на каждый из атрибутов, уже прикреплённых к вашему выводу, и изменим некоторые значения. Я предлагаю увеличить размер окна редактирования так, чтобы было видно все атрибуты.
pinseq
. Это число, определяющее порядок работы программы gnetlist с атрибутами. Для нашего первого вывода начнём эту последовательность с '1' и будем последовательно увеличивать этот номер по мере добавления выводов.pinnumber
. Это номер вывода на корпусе компонента, для которого создаётся этот символ. Номер вывода может быть буквенным или цифровым (то есть можно использовать, например, E
или C
).pinlabel
. Данный атрибут является названием или меткой вывода (а не номером вывода).pintype
. Данный атрибут определяет тип вывода.pinseq
и pinnumber
нескольких выводов сразу можно пронумеровать автоматически с помощью Атрибуты → Автонумерация… [Attributes → Autonumber Text…].
Допустимыми значениями pintype
являются: in
, out
, io
, oc
, oe
, pas
, tp
, tri
, clk
, pwr
. Более подробную информацию о нём см. в Перечне основных атрибутов.
Чтобы использовать символ с пользой в gschem и других программах, он
должен содержать несколько атрибутов (в виде пар имя=значение
).
Сначала мы добавим все нужные нам атрибуты, а затем отключим видимость тех из них, которые должны быть невидимыми.
device=НАЗВАНИЕ_УСТРОЙСТВА
. Название устройства не должно содержать ничего, кроме прописных букв, дефисов, чисел и символов подчёркивания. Если символ определяет чисто графический объект, то значение атрибута device=
должно быть none
(device=none
).decon
) следует добавить атрибут graphical=1
. Этот атрибут показывает, что содержащий его символ не имеет электрического или схемотехнического назначения. Не забывайте согласно предыдущему требованию устанавливать вместе с данным атрибутом device=none
.description=ТЕКСТ
. ТЕКСТ
должен представлять собой однострочное описание символа.footprint=ИМЯ_КОРПУСА
, он может использоваться генератором списка соединений для pcb. ИМЯ_КОРПУСА
представляет собой посадочное место для pcb или тип корпуса, такой как DIP14 или DIP40. Подробности см. в Соглашениях по именованию посадочных мест. Если вы используете gEDA в связке с pcb, то более подробную информацию по данному атрибуту и о том, как его использовать, вы найдёте в документации по pcb и в gnetlist/docs/README.pcb
.refdes=
должен помещаться во все символы, не являющиеся чисто графическими. Значение данного атрибута по умолчанию для микросхем должно быть U?
, а для транзисторов T?
. Видимым следует сделать только его значение и, когда символ будет помещён в схему, данный атрибут будет вынесен (прикреплён вне символа для обеспечения возможности его редактирования).numslots=
нужно добавлять во все символы, чтобы предотвратить предупреждения, выдаваемые программой gsymcheck при их проверке. Вполне достаточно добавить numslots=1
.
Теперь, когда все эти атрибуты добавлены, сделайте numslots
,
footprint
, description
, graphical
и device
невидимыми.
Оставьте видимым только значение атрибута refdes
и расположите его
где-нибудь над символом.
0
в поле ввода и нажмите OK.component-library
в файле system-gafrc
. Как только это сделано, символ должен немедленно стать видимым и может быть выбран и помещён в схему из меню Добавить → Компонент… [Add → Select Component…]. В Debian помещение файлов в /usr/share/gEDA/sym/local/
работать будет, но потребует настройки привилегий.Смещение символа в начало координат — шаг необходимый. Для смещения символа в другое место введите величину смещения (в милах), кратную 100. Убедитесь, что все выводы привязаны к точкам сетки.
symbolname-#.sym
.sym
.#
. Обычно оно равно 1, но если для устройства имеется несколько символов, данное число просто увеличивается.В данном разделе описываются различные требования, которые необходимо соблюдать для создания правильного символа в плане отображения его на экране и создания для него списков соединений в системе gEDA/gaf.
pinseq
. Это число, определяющее порядок работы программы gnetlist с атрибутами. Это просто порядковый номер, последовательно увеличивающийся, начиная с 1.pinnumber
. Это номер вывода на корпусе компонента, для которого создаётся этот символ. Номер вывода может быть буквенным или цифровым (то есть можно использовать, например, E
или C
).pinlabel
. Данный атрибут является названием или меткой вывода (а не номером вывода). Данный атрибут применяется также при использовании символа в иерархической схеме.pintype
. Данный атрибут определяет тип вывода. Допустимыми значениями являются: in
, out
, io
, oc
, oe
, pas
, tp
, tri
, clk
, pwr
. Более подробную информацию о нём см. в Перечне основных атрибутов.Более подробную информацию о представленных здесь атрибутах можно найти в Перечне основных атрибутов.
device=НАЗВАНИЕ_УСТРОЙСТВА
. Обычно название устройства задаётся в верхнем регистре (прописными буквами). Данный атрибут не должен использоваться в качестве обозначения. Для этого следует использовать отдельный текстовый объект. Если символ определяет чисто графический объект, то device=
должен иметь значение none
(device=none
).decon
) в нём должен быть атрибут graphical=1
. Символы с данным атрибутом не имеют электрического или схемотехнического назначения. Не забывайте согласно предыдущему требованию устанавливать вместе с данным атрибутом device=none
.description=ТЕКСТ
. ТЕКСТ
должен представлять собой однострочное описание символа.footprint=ИМЯ_КОРПУСА
, он может использоваться генератором списка соединений для pcb. ИМЯ_КОРПУСА
представляет собой посадочное место для pcb или тип корпуса, такой как DIP14 или DIP40. Подробности см. в Соглашениях по именованию посадочных мест. Если вы используете gEDA в связке с pcb, то более подробную информацию по данному атрибуту и о том, как его использовать, вы найдёте в документации по pcb и в gnetlist/docs/README.pcb
.refdes=U?
должен помещаться во все символы, не являющиеся чисто графическими. Видимым следует сделать только его значение и, когда символ будет помещён в схему, данный атрибут будет вынесен (прикреплён вне символа для обеспечения возможности его редактирования).label=
и name=
не должны использоваться в символах, так как это устаревшие атрибуты.netname=
не должен использоваться в символах. Он используется только в схемах.numslots=#
. Число #
задаёт количество элементов в физическом устройстве. В этом случае в символе должен быть атрибут numslots=
и его следует сделать невидимым. Другие обязательные атрибуты, относящиеся к многосекционным компонентам, описываются ниже.slotdef=#:#,#,#…
Первое число #
соответствует номеру секции. Если устройство содержит 4 элемента, то в символе должны быть атрибуты slotdef=1:…
, slotdef=2:…
, slotdef=3:…
и slotdef=4:…
, их следует сделать невидимыми. Последующие числа #
один к одному соответствуют атрибутам pinseq=#
и определяют номер вывода pinnumber=#
, который должен устанавливаться при назначении данной секции. В качестве примера того, как всё это должно работать, см. приведённый ниже символ 7400-1.sym.slot=1
.Соответствие всем указанным требованиям проверяется запуском gsymcheck. gsymcheck выдаст фатальные ошибки, довольно серьёзные и требующие исправления. gsymcheck также выдаст предупреждения о требующих исправления, но не фатальных ошибках.
В данном разделе описывается стиль, используемый в стандартной библиотеке символов gEDA/gaf.
pinlabel=\_Reset\_
).pinnumber
(не pinseq
), и их размер должен составлять 8 пунктов.pinlabel=
, цветовой индекс которых должен быть равен 9 (text | зелёный). Если каждый текстовый элемент внутри символа будет жёлтым, символ выглядит чересчур жёлтым.device=
или net=
) считались атрибутами, их требовалось к чему-либо прикреплять, но сейчас достаточно, чтобы они находились в файле символа в виде имя_атрибута=значение
.имя_атрибута=значение
. Атрибуты внутри символа не обязательно прикреплять к чему-либо. Чтобы увидеть скрытые атрибуты в gschem, выберите Правка → Показать/Скрыть невидимый текст [Edit → Show/Hide Inv Text].symversion=
. Подробности использования этой схемы работы с версиями см. в Перечне основных атрибутов.74/74181-1.sym
(сверху вниз от A0 до A3 и от B0 до B3). Нарушение данного правила сильно затруднит подключение к шинам.В данном разделе приводится несколько советов и подсказок, чтобы облегчить вам труд по созданию символов.
pinnumber
, может быть вместе с pinlabel
, если таковой имеется.В данном разделе приведён простой пример, в котором мы стараемся следовать всем вышеуказанным правилам. Это символ 7400 (И-НЕ).
v 20031231 1 L 300 200 300 800 3 0 0 0 -1 -1 T 300 0 9 8 1 0 0 0 1 7400 L 300 800 700 800 3 0 0 0 -1 -1 T 500 900 5 10 0 0 0 0 1 device=7400 T 500 1100 5 10 0 0 0 0 1 slot=1 T 500 1300 5 10 0 0 0 0 1 numslots=4 T 500 1500 5 10 0 0 0 0 1 slotdef=1:1,2,3 T 500 1700 5 10 0 0 0 0 1 slotdef=2:4,5,6 T 500 1900 5 10 0 0 0 0 1 slotdef=3:9,10,8 T 500 2100 5 10 0 0 0 0 1 slotdef=4:12,13,11 L 300 200 700 200 3 0 0 0 -1 -1 A 700 500 300 270 180 3 0 0 0 -1 -1 V 1050 500 50 6 0 0 0 -1 -1 0 -1 -1 -1 -1 -1 P 1100 500 1300 500 1 0 1 { T 1100 550 5 8 1 1 0 0 1 pinnumber=3 T 1100 450 5 8 0 1 0 2 1 pinseq=3 T 950 500 9 8 0 1 0 6 1 pinlabel=Y T 950 500 5 8 0 1 0 8 1 pintype=out } P 300 300 0 300 1 0 1 { T 200 350 5 8 1 1 0 6 1 pinnumber=2 T 200 250 5 8 0 1 0 8 1 pinseq=2 T 350 300 9 8 0 1 0 0 1 pinlabel=B T 350 300 5 8 0 1 0 2 1 pintype=in } P 300 700 0 700 1 0 1 { T 200 750 5 8 1 1 0 6 1 pinnumber=1 T 200 650 5 8 0 1 0 8 1 pinseq=1 T 350 700 9 8 0 1 0 0 1 pinlabel=A T 350 700 5 8 0 1 0 2 1 pintype=in } T 300 900 8 10 1 1 0 0 1 refdes=U? T 500 2250 5 10 0 0 0 0 1 footprint=DIP14 T 500 2450 5 10 0 0 0 0 1 description=4 NAND gates with 2 inputs T 500 2850 5 10 0 0 0 0 1 net=Vcc:14 T 500 3050 5 10 0 0 0 0 1 net=GND:7 T 500 2650 5 10 0 0 0 0 1 documentation=http://www-s.ti.com/sc/ds/sn74hc00.pdf
Результат, полученный в данном примере, выглядит в gschem следующим образом:
Вот тот же самый символ, весь скрытый текст которого видим (меню Правка → Показать/Скрыть невидимый текст [Edit → Show/Hide Inv Text]):