Doka avatar

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

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

Заметки по технической документации для инженеров

Для тех, кто занят в сфере микроэлектроники и радиоэлектроники

Dmitry Murzinov

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

Интро

О тех.документации замолвите слово

Один из примеров превосходной документации, что мне попадались - это документация компании Atmel (линейка микроконтроллеров AVR, различные AppNotes и даже современные линейки МК серии AT SAM).

Например, даже в 2022г различные Application Notes серии AVRxxx созданные около 20лет назад остаются образчиком лаконичности и умения максимально понятно доносить информацию (возможно в английском для этого существует термин из одного слова).

А юзабилити (UI/UX?) документации на МК (Technical Reference Manual) обычно сочетается с простой и изяществом архитектурных решений (уверен что не я один подглядывал и черпал вдохновения у Атмела при проектировании SoC или её периферии 🙈).

Из более современных примеров документации хочу отметить “первый кремний” от Raspberry Pi Trading Ltd: микроконтроллер RP2040. Что хочу отметить: помимо интересных технических решений (архитектора и микроархитектура) полезных для как начинающих так и опытных чипмейкеров также хочется обратить внимание на типографику: например, способы представления тех же регистровых карт (100% автоматически генерируемых из мета-описания).

Ну и как вишенка на торте: даташит на RP2040 свёрстан на моём любимом Asciidoc 😍

❓А какие удачные примеры тех.документации попадались вам? И чем конкретно они отличны?

!!! todo: [ссылка на RP2040 datasheet (Raspberry Pi Trading Ltd)]

Вейвформы

Наследие

Этим тулом похоже рисовались временные диаграммы в доWAVEDROMовские времена (а точнее - привет из 80хх).

Хотя Dinotrace скорее симбиоз Wavedrom и GTKwave ибо на входе может принимать как VCD так и специально оформленные ASCII-форматы. Что интересно в репо до сих пор, хоть и нечасто, коммитятся фиксы и апдейты.

вейвформа в виде asciiart графики

Emacs в режиме редактирования метаописания вейвформы

AsciiArt

Лучшая документация - самодокументируемый исходник.

Wavedrom конечно божественнен, когда надо в полиграфического качества PDF надо вставить вейвформу в SVG, но в HDL-исходник такое засунуть сложно, да и зачем? 🤔

Толи дело AsciiArt, которым еще деды пользовались, самое то для SaaD (sources as a docs) 🤘

А поможет с этой задачей вот этот тул (https://github.com/yne/vcd).

asciiart вейвформа, которую можно вставлять прямо в исходник в виде коммента

Wavedrom: десять оттенков серого

А вы знали, что Wavedrom поддерживает скины? Конечно туда можно добавлять свои экстравагантные цветовые решения (что наверное никто никогда не сделает), но что более интересно: там есть скин для людей с ограниченными возможностями цветовосприятия и/или для компаний, которые архивируют документацию в печатном виде на монохномных принтерах (да и для адаптации пдф к публикации в виде книги такой скин тоже полезен).

Кстати, оказывается есть WaveDromPy - переписанный на питон функциональный аналог оригинального WaveDromJS. Поддержка скинов там тоже реализована, но в самих используемых исходниках скинов видимо где-то ошибка - неправильно отрисовывает (возможно проблема решается просто перетаскиванием обновленных файлов скинов из оригинального проекта).

два скина для WaveDrom: цветной и черно-белый

Схемы

verilog -> svg

💾 https://github.com/nturley/netlistsvg

При оформлении технической документации часто приходится вставлять скетчи/куски схемы и хочется использовать не скрин из EDA/CAD, а что-то красивое, векторное, версионируемое. Как GraphViz, но только не для диаграмм, а для схем.

И похоже есть прекрасное начинание для такого инструмента, принимающего на вход специально оформленный JSON (который можно выписать из Yosys), а на выходе отдающий SVG:

yosys -p "prep -top my_top -flatten; write_json output.json" input.v

netlistsvg  output.json [-o output.svg] [--skin skin_file]

PS: Проекту хочется пожелать процветания и повторения триумфа Wavedrom‘овской рисовалки эпюр.

Аналоговая и цифровая схемы, полученные из верилога

Приблуда для вязки жгутов

💾 https://github.com/formatc1702/WireViz

  • Версионирование мета-описания в человеко-понятном YAML-формате
  • Возможность цветового кодирования проводов по DIN/IEC
  • Возможность указывать сечение и генерить BOM (Bill of Materials)
  • Питонячий опенсорс с возможностью кастомайзинга и допилинга

WireViz диграмма вязки жгутов с цветными проводам

Symbolator

💾 https://github.com/kevinpt/symbolator

Еще одна полезная утилита, которая в какой-то степени поможет автоматизировать создание документации для IP-cores. Есть инструкция.

  • На вход принимает VHDL и Verilog
  • На выходе генерит PNG, SVG, PDF, PS или EPS
  • Возможность внутри исходника через прагмы задавать шины, стили выводов и определять группировки по функциональному назначению
  • Питоняшность 🙃

Интерфейс VHDL-модуля разбитый по секциям

Картинки

Ссылки на инструменты и стандарты по рисованию диаграм и векторных картинок для технической документации:


Bytefield

Генерилка картинок из описания битовых полей регистров: bytefield-svg умеет в asciidoc, но изначально автор вдохновлялся версией для LaTeX.

Еще есть похожая штука - для удобного описания формата пакетов: PacketDiag

цветная картинка с битовыми полями

Переводческое

Краудсорсинговый проект помощи с переводом на другой язык специфической терминологии (есть много веток: от астрологии до кулинарии).

Быстрые ссылки на ветку по электронике:

PS: не сказать прям, что проект живой (судя по активности в ветках) - может кто-то натыкался на аналогичные более обитаемые порталы ❓

пример запросов на перевод с русского на английский

LateX

Datasheet

ГОСТ

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

Разделы