Если доводилось юзать кикад, то должна быть знакома ситуация, когда символа нет. Оный можно быстро сгенерить вот этим веб-тулом Но что делать если у чипа овер 100 ног?
Раньше я использовал грязный хак на баше и xdotool’e, но вот пришла пора сделать что-то получше. пасибки летят автору xil2kc, которая генерит символы из Xilinx’овских .pkg файлов, которые выдавливает из себя ISE.К сожалению, они выбрали пистон, Один из моих наименее любимых языков. Так или иначе, переписывать с нуля мне было в лом, потому пришлось вспомнить питон.
Итак, как сварганить за пару секунд символ для еесхемы?
1. Открываем даташит своим любимым вьювером (Я юзаю okular)
2. Копируем имена пинов в текстовик, для каждой группы раставляем диапазон номеров.
3. Определяем правила сортировки и кол-во сабпартов.
4. запускаем мой костыль, например ./list2kc.py --pkg-file=./at91rm9200.pins --output-file=./at91rm9200.lib
5. Забираем библиотеку, дорабатываем напильником, используем по назначению.
Для примера возьмем что-нибудь простое, например uln2003a
После двух актов копипасты, мы получили две группы пинов. с 1 по 8 и с 16 по 9, так как я копипастил это с top view.
В квадратных скобках диапазоны.
~subparts 1 :\dB:left:0 :\dC:right:0 :E:bot:0 :COM:top:0 [1:8] 1B 2B 3B 4B 5B 6B 7B E [16:9] 1C 2C 3C 4C 5C 6C 7C COM
Остается непонятным заголовок, который я разъясню сейчас:
первая строка всегда количество сабпартов.
Например ~subparts 1 говорит нам, что у символа будет только один сабпарт. Далее идут правила сортировки.
Каждая строка, которая начинается с ‘:’ описывает правило.
Тула проходит по списку правил для каждой пины сверху вниз, и если находит совпадение — то мы знаем где будет расположена нога.
И хотя для ULN2003A оно бесполезно, для AT91RM9200, RTL8196C и прочих многоногих чипов экономит время.
Синтакс правила приведен ниже:
:регулярное_выражение:на_какой_стороне_разместить:в_какой_сабпарт.
пример:
:\dC:right:0
Все что начинается с числа, после которого идет буква ‘C’ размещаем с права, на сабпарте 0
(Да, как в С, нумерация с 0, мне так проще).
Документацию по регэкспам питона воскуриваем тут
Вот и все. Сырцы на шитхабе.
Beware, I’m not a fan of python, and rarely write anything in it. So the code might look strange.