Doka avatar

Журнал Эмбеддед-Инженера

О микроэлектронике, радиотехнике и хобби

Dmitry Murzinov

2 минут чтения

Постановка задачи

Использование концепции единого источника, минимизация человеческого фактора при одновременной правке табличной информации об изменении/перемещении/исправлении_ошибок в списке внешних ножек СБИС и его графической репрезентации. Притом хорошо бы на выходе получать векторную картинку.

Решение

Исходными данными является (нативная для сборщика документации) таблица в формате asciidoc, которая sed‘ом и grep‘ом переводится в классический CSV (comma separated value), после чего средствами PHP переводим его в JSON, и уже JSON скармливаем скрипту рисования SVG (а если надо - и PNG).

PS: Перевод в JSON - опциональный, просто потому что формат удобный, быть может в будущем в каком-нибудь скрипте прийдётся работать со списком пинов, например, автосоздание либы с символьным обозначением для Altium/PCAD/KiKAD/Eagle.

Возможности

  • Поддержка следующего типа полей из оригинального asciidoc-описания:
    • Номер пина
    • Имя пина
    • Тип пина
    • Стандарт ввода-вывода
    • Описание пина
  • Возможность для любого из полей назначить свой цвет пина (DecidePinColour.php), на данный момент поддерживаются:
    • GND - земля
    • VDD - питание
    • VDDA - питание аналоговых цепей
    • CMOS - цифровые ножки общего назначения
    • LVDS - дифференциальные пары
    • JTAG - отладочные цепи
    • XTAL - тактирующие цепи
    • ANALOG - аналоговые выводы
  • Возможность задания произвольного прямоугольного корпуса - с произвольным соотношением пинов по ортогональным сторонам
  • Возможность опционального задания имени СБИС
  • Возможность задания типа и начертания шрифта для имени СБИС, номера пина, имени пина

Хотелки

  • Хранение конфига в JSON- или ini-файле (предпочтительно)
  • Научиться добавлять в SVG ссылку на имя вывода СБИС для простой навигации внутри конечного PDF
  • Поддержать корпуссы с матрицей выводов (BGA):
    • номинальная функциональность
    • поддержка списка отсутствующие пинов
    • поддержка в дополнении к цветовой еще и графической схемы кодирования функционала ножек (например, как это делает Xilinx для своих FPGA)
  • Очевидная идея для скрипта РНР: сделать веб-морду к тулу (а-ля SaaS)

Github

https://github.com/iDoka/asic-pinout-drawer

Последние записи

Разделы