Проектирование
Расстановка, разводка и полигоны
Автоматическая расстановка, полигоны земли и питания, соединения с плоскостями, авторазводчик, надписи шелкографии, тестовые площадки и проверки правил проектирования, которые контролируют пакет файлов для производства.
Топология платы размещает посадочные места схемы на плате и соединяет их медью. Каждая команда здесь записывает обычные записи в *.pcb.toml, поэтому, что бы ни сделал размещатель или маршрутизатор, вы или агент можете отредактировать это позже.
agentee new layout NAMEДобавьте board и schematic в стартовый набор. Тогда проверка сообщит о каждом компоненте, который еще не размещен.
Разместить
agentee place NAME
agentee render pcb:NAME -o placed.pngagentee 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 bothlocked = 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 --listcheck запускает все правила; drc выводит только диагностические сообщения топологии по правилам, каждое начинается со своего идентификатора в скобках, а --list выводит все правила с указанием, применяются ли они к этой плате. Ошибки блокируют пакет для производства. Предупреждения и уведомления, это практика, а не ограничения завода: следуйте им, если в проекте нет причины, и записывайте причину в DESIGN.md.
Трассировка завершена, когда unrouted равно 0 для каждой цепи в agentee show pcb:NAME.
Распутывание выводов чипа
agentee pinswap NAME --part U3
agentee pinswap NAME --part U3 --writepinswap переназначает заменяемые входы-выходы FPGA или MCU (в том же банке, пары остаются парами, тактовые выводы остаются на тактовых выводах), чтобы распутать линии связей, а --write переписывает ссылки на выводы в схеме.
Движок топологии
agentee layout NAME запускает настроенные этапы движка топологии по порядку (ограничения, размещение, доступ, глобальная трассировка, детальная трассировка, завершение) и выводит оценку по каждому терму с худшими нарушителями. --from, --to и --only выбирают этапы. Он новее place и route; этапы и их настройки находятся в таблице [engine] топологии, а просмотрщик может запускать их на текущей топологии в окне.