Постановка задачи
Использование концепции единого источника, минимизация человеческого фактора при одновременной правке табличной информации об изменении/перемещении/исправлении_ошибок в списке внешних ножек СБИС и его графической репрезентации. Притом хорошо бы на выходе получать векторную картинку.
Решение
Исходными данными является (нативная для сборщика документации) таблица в формате 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
— аналоговые выводы
- Возможность задания произвольного прямоугольного корпуса — с произвольным соотношением пинов по ортогональным сторонам
- Возможность опционального задания имени СБИС
- Возможность задания типа и начертания шрифта для имени СБИС, номера пина, имени пина
(далее…)
Читать далее