agentee

Проектирование

Расстановка, разводка и полигоны

Автоматическая расстановка, полигоны земли и питания, соединения с плоскостями, авторазводчик, надписи шелкографии, тестовые площадки и проверки правил проектирования, которые контролируют пакет файлов для производства.

Топология платы размещает посадочные места схемы на плате и соединяет их медью. Каждая команда здесь записывает обычные записи в *.pcb.toml, поэтому, что бы ни сделал размещатель или маршрутизатор, вы или агент можете отредактировать это позже.

agentee new layout NAME

Добавьте board и schematic в стартовый набор. Тогда проверка сообщит о каждом компоненте, который еще не размещен.

Разместить

agentee place NAME
agentee render pcb:NAME -o placed.png

agentee place, быстрый старт для всей платы. По убыванию приоритета он:

  • размещает коннекторы на краях, стороной сопряжения наружу, и никогда не ставит RF-коннектор и USB-коннектор на один край, если подходит другое разделение, потому что шум USB 3 попадает в диапазон 2,4 ГГц;
  • прокладывает RF-трассу по прямой от коннектора к коннектору, с шунтирующими элементами рядом с линией в их узле;
  • перемещает крупные чипы к центру, подальше от краёв и отверстий, где при разделке плата изгибается;
  • собирает конденсаторы развязки каждого ИС в кластер у питающих выводов, которые они обслуживают, а кварцевый резонатор, у тактовых выводов;
  • держит импульсные регуляторы на расстоянии 8 мм от кварцевых резонаторов и RF-элементов, а горячие элементы, друг от друга;
  • не размещает керамические конденсаторы 0805 и крупнее в зоне гибки у краёв и отверстий, а мелкие поворачивает вдоль края;
  • поворачивает каждый элемент по направлению к его цепям.

В справочнике по размещению указаны источники для каждого правила. Результат зависит только от файлов и --seed.

Дальше действуйте как человек: посмотрите, переместите важные элементы и зафиксируйте их.

agentee edit pcb NAME place J1 2.54,12 --rotation 180 --locked
agentee place NAME --keep-placed
agentee place NAME --seed 7
agentee place NAME --parts 'C*,R*'
agentee place NAME --side both

locked = true никогда не перемещается. --keep-placed оставляет на месте каждый элемент, у которого уже есть позиция, --parts размещает только совпадающие, а --side both позволяет ставить конденсаторы развязки под BGA на обратной стороне. [place] edges в топологии фиксирует коннектор на краю, а keepouts, это полигоны, в которые courtyard не должен заходить:

[place]
edges = { J1 = "left", J2 = "right" }
keepouts = [[[0, 0], [8, 0], [8, 6], [0, 6]]]

Полигоны и плоскости

agentee edit pcb NAME zone GND --layers F.Cu,In1.Cu,In2.Cu,B.Cu
agentee edit pcb NAME zone 3V3 --layers In2.Cu --priority 1

Зона заполняет свой контур (по умолчанию, вся плата) за вычетом меди всех остальных цепей, расширенной на величину зазора, в виде точных полигонов со скруглёнными углами. Перешейки уже min_width зоны удаляются, как завод их травит, а острова, не достигающие ничего, отбрасываются. На одном слое зоны заполняются по priority, поэтому полигон питания внутри платы-земли заливается вокруг, а не замыкается на неё. --pad-connection relief соединяет контактные площадки четырьмя спицами вместо сплошной меди.

Заполнения вычисляются при загрузке и кэшируются. agentee fill NAME сохраняет их в конце файла топологии, поэтому свежая копия репозитория загружается без пересчёта заполнения.

Соединяйте контактные площадки с плоскостями

agentee tie NAME

Цепь с зоной, это цепь плоскости. tie даёт каждой SMD-площадке цепи плоскости короткий отвод и переходное отверстие рядом, на стороне, противоположной элементу, вдали от всех площадок и других цепей. Так контактные площадки земли и питания должны достигать плоскости, а не через проводники между ними. Площадка, у которой уже есть переходное отверстие её цепи поблизости, не трогается, а площадка без подходящего места перечисляется в failed.

Трассировка

agentee route NAME --nets 'USB_*,SPI_*' --layers F.Cu,B.Cu
agentee route NAME --nets '*'

Трассировщик работает на сетке 0,05 мм и соблюдает ширину, зазор, слои и переходные отверстия каждого класса по отношению ко всему уже существующему. Он шагает в направлениях под 45 градусов, учитывает стоимость переходных отверстий и изгибов, затем подтягивает трассы, а проводник сужает в площадку, если она уже ширины класса. Соединение без свободного пути перестраивает то, что стоит на пути, и эти цепи возвращаются в очередь.

  • Глоб в --nets никогда не совпадает с цепью плоскости, поэтому --nets '*' трассирует все сигналы и оставляет землю плоскостям.
  • Существующая медь никогда не перемещается, если только --reroute сначала не удалит проводники и переходные отверстия указанных цепей.
  • Если несколько соединений не прошли, трассируйте их снова вместе с соседними цепями и --reroute, либо переходите на --grid 0.025.
  • --pairs трассирует дифференциальные пары как связанные пары, где это возможно.
  • --via-in-pad позволяет переходному отверстию находиться внутри SMD-площадки его цепи, с заполнением и колпачком.
  • --dry-run выводит отчёт без записи.

Сначала вручную трассируйте важные цепи: RF-линию, горячий контур импульсного регулятора, кварцевый резонатор. Затем позвольте трассировщику заполнить остальное, по одному классу за раз.

Вручную проводники и переходные отверстия задаются командами:

agentee edit pcb NAME track RF_OUT F.Cu 19.28,12 30.92,12
agentee edit pcb NAME via GND 7.2,8.9

Проводник должен входить в площадку. Тот, чья центральная линия лишь касается края площадки, помечается, даже если медь соприкасается.

Сквозные соединения и выходы

[[stitching]]
net = "GND"
pitch = "2.5mm"

[[stitching]]
net = "GND"
fence = ["RF_*"]

[[fanouts]]
ref = "U3"
skip_rings = 2

[[stitching]] размещает переходные отверстия земли на сетке везде, где они не пересекаются с другими цепями, или строит из них забор вдоль проводников указанных цепей. [[fanouts]] ставит переходное отверстие в каждую соединённую площадку BGA, оставляя внешние кольца для выхода на верхнем слое. Оба, это правила: переходные отверстия размещаются заново каждый раз, когда медь вокруг них меняется. agentee edit pcb NAME stitch GND --pitch 2.5mm и fanout U3 --skip-rings 2 записывают их.

Шелкография

Проверка помечает каждый референс, который перекрывает другой текст, расположен на контактной площадке или переходном отверстии или выходит за пределы платы, и указывает место, где он проходит. Команда agentee silk перемещает их все туда:

agentee silk NAME
agentee silk NAME --hide

--hide скрывает метки, у которых нет места, обычно мелкие пассивные элементы под BGA.

Каждая плата также несёт в шелкографии agentee vX.Y.Z-HASH, по умолчанию на нижней стороне. Для этого нужна свободная полоса примерно 23 на 1,2 мм; на маленькой или загруженной плате освободите место или задайте [watermark] at сами. Пакет для производства отклоняется без этого.

Тестовые площадки

agentee testpoints NAME
agentee testpoints NAME --nets '3V3,*RST*' --side B --pitch 2.54

Каждой плате нужен доступ для зонда при отладке и фиксатура с пинго-пинами для производственного теста. По умолчанию это шины питания, земля, сбросы, включения, power good, тактовые сигналы и шины низкой скорости; узлы переключения и обратная связь регуляторов намеренно исключены. testpoints добавляет элемент TP в схему, площадку 1 мм на стороне зонда рядом с медью цепи и трассированный проводник к ней, для каждой цепи, у которой пока нет доступа. Цепи с импедансом и пары пропускаются, так как отвод им вредит.

Проверки правил проектирования

agentee check --item pcb:NAME
agentee drc NAME
agentee drc NAME --list

check запускает все правила; drc выводит только диагностические сообщения топологии по правилам, каждое начинается со своего идентификатора в скобках, а --list выводит все правила с указанием, применяются ли они к этой плате. Ошибки блокируют пакет для производства. Предупреждения и уведомления, это практика, а не ограничения завода: следуйте им, если в проекте нет причины, и записывайте причину в DESIGN.md.

Трассировка завершена, когда unrouted равно 0 для каждой цепи в agentee show pcb:NAME.

Распутывание выводов чипа

agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --write

pinswap переназначает заменяемые входы-выходы FPGA или MCU (в том же банке, пары остаются парами, тактовые выводы остаются на тактовых выводах), чтобы распутать линии связей, а --write переписывает ссылки на выводы в схеме.

Движок топологии

agentee layout NAME запускает настроенные этапы движка топологии по порядку (ограничения, размещение, доступ, глобальная трассировка, детальная трассировка, завершение) и выводит оценку по каждому терму с худшими нарушителями. --from, --to и --only выбирают этапы. Он новее place и route; этапы и их настройки находятся в таблице [engine] топологии, а просмотрщик может запускать их на текущей топологии в окне.

Улучшить это руководство · Markdown для агентов