agentee

Design

Posicionamento, roteamento e áreas de cobre

Posicionamento automático, áreas de cobre de massa e alimentação, ligações de plano, o roteador automático, etiquetas de serigrafia, pads de teste e as verificações de regras de design que controlam o pacote de fabrico.

Um layout posiciona os footprints do esquema na placa e liga-os com cobre. Cada comando aqui escreve entradas ordinárias no *.pcb.toml, por isso, quer o posicionador ou o roteador tenha feito o que for, si ou o agente podem editar depois.

agentee new layout NAME

Adicione board e schematic ao inicializador. A verificação então reporta cada peça que ainda não está posicionada.

Posicionar

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

agentee place é uma forma rápida de começar uma placa inteira. Por ordem de prioridade, ele:

  • coloca conetores nas bordas com o lado de acoplamento para fora e nunca coloca um conetor RF e um conetor USB na mesma borda se outra divisão couber, porque o ruído do USB 3 cai na banda dos 2,4 GHz;
  • traca um caminho RF em linha reta do conetor ao conetor, com componentes em shunt ao lado da linha, no respetivo nó;
  • puxa os circuitos integrados grandes para o centro, longe das bordas e dos furos onde a separação da placa a dobra;
  • agrupa os condensadores de desacoplamento de cada CI nos pinos de alimentação que servem, e o cristal nos pinos de relógio;
  • mantém reguladores com chaveamento a 8 mm dos cristais e dos componentes RF, e os componentes quentes afastados uns dos outros;
  • mantém condensadores cerâmicos 0805 ou maiores fora da zona de flexão perto das bordas e dos furos, e gira os pequenos para ficarem ao longo da borda;
  • gira todos os componentes na direção das respetivas redes.

A referência de colocação dá a origem de cada regra. O resultado depende apenas dos ficheiros e de --seed.

Depois, faça o que uma pessoa faria: veja, mova os componentes importantes e fixe-os.

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 nunca é movido. --keep-placed mantém todos os componentes que já têm um lugar, --parts coloca apenas os que correspondem, e --side both permite que condensadores de desacoplamento fiquem sob um BGA, no verso. [place] edges no layout fixa um conetor a uma borda, e keepouts são polígonos que nenhum courtyard pode entrar:

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

Áreas de cobre e planos

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

Uma zona preenche o respetivo contorno (a placa por omissão) menos o cobre de todas as outras redes, dilatado pelo respetivo afastamento, como polígonos exatos com cantos arredondados. Pescoços mais estreitos que o min_width da zona são removidos, como um fabricante os gravaria, e ilhas que não tocam em nada são descartadas. Num único plano, as zonas preenchem-se por priority, por isso uma área de cobre de alimentação dentro de uma área de massa que cobre toda a placa é vertida à volta, em vez de ficar em curto com ela. --pad-connection relief liga os pads por quatro raios em vez de cobre sólido.

Os preenchimentos são calculados na carga e guardados em cache. agentee fill NAME guarda-os no fim do ficheiro de layout, por isso uma cópia nova carrega sem preencher.

Ligue os pads aos respetivos planos

agentee tie NAME

Uma rede com uma zona é uma rede de plano. tie dá a cada pad SMD de uma rede de plano um pino curto e uma via ao lado, no lado oposto ao componente, afastado de todos os pads e das outras redes. É assim que os pads de massa e de alimentação devem chegar a um plano, em vez de pistas entre eles. Um pad que já tem uma via da respetiva rede por perto é deixado como está, e um pad sem lugar legal é listado sob failed.

Roteamento

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

O roteador trabalha numa grelha de 0,05 mm e mantém a largura, o afastamento, os planos e as vias de cada classe contra tudo o que já existe. Avança em direções de 45 graus, cobra vias e curvas, aperta os percursos depois e estreita uma pista até a um pad que é mais estreito que a largura da classe. Uma ligação sem caminho livre remove o que está no caminho e essas redes voltam para a fila.

  • Um glob em --nets nunca corresponde a uma rede de plano, por isso --nets '*' roteia todos os sinais e deixa a massa para os planos.
  • O cobre existente nunca é movido, a menos que --reroute apague primeiro as pistas e as vias das redes indicadas.
  • Quando algumas ligações falham, roteie-as novamente em conjunto com as redes à volta e --reroute, ou passe para --grid 0.025.
  • --pairs roteia pares diferenciais como pares acoplados onde couberem.
  • --via-in-pad permite que uma via fique dentro de um pad SMD da respetiva rede, preenchida e com tampa.
  • --dry-run dá o relatório sem escrever.

Roteie primeiro à mão as redes que importam: uma linha RF, o laço quente de um regulador com chaveamento, um cristal. Depois deixe o roteador preencher o resto, uma classe de cada vez.

À mão, pistas e vias são também comandos:

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

Uma pista tem de correr até a um pad. Uma cuja linha central apenas roça a borda do pad é assinalada, mesmo que o cobre toque.

Costura e ventilação

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

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

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

[[stitching]] coloca vias de massa numa grelha onde estiverem afastadas de todas as outras redes, ou uma cerca delas ao longo das pistas das redes indicadas. [[fanouts]] coloca uma via em cada pad ligado de um BGA, deixando os anéis exteriores para escape no plano superior. Ambos são regras: as vias são colocadas novamente sempre que o cobre à volta mudar. agentee edit pcb NAME stitch GND --pitch 2.5mm e fanout U3 --skip-rings 2 escrevem-nas.

Serigrafia

A verificação assinala cada rótulo de referência que abafa outro texto, está sobre um pad ou uma via, ou sai da placa, e indica um local que passa. agentee silk move-os todos para lá:

agentee silk NAME
agentee silk NAME --hide

--hide esconde as etiquetas que não têm para onde ir, tipicamente componentes passivos pequenos sob um BGA.

Toda a placa tem também agentee vX.Y.Z-HASH na serigrafia, no verso por omissão. Precisa de uma faixa livre de cerca de 23 por 1,2 mm; numa placa pequena ou apertada, faça espaço para ela ou defina [watermark] at por si. O pacote de fabrico é recusado sem ela.

Pads de teste

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

Toda a placa precisa de acesso para sonda na fase de arranque e de um fixture de pinos pogo para teste em produção. Por omissão, são os trilhos de alimentação, a massa, os resets, os enables, o power good, os relógios e os barramentos de baixa velocidade; os nós de chaveamento e a realimentação dos reguladores ficam de propósito de fora. testpoints acrescenta um componente TP no esquema, um pad de 1 mm no lado da sonda perto do cobre da rede, e uma pista roteada até ele, para cada rede que ainda não tem acesso. As redes de impedância e os pares são ignorados, porque um pino curto prejudica-os.

Verificações de regras de design

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

check executa todas as regras; drc imprime apenas os diagnósticos de regras do layout, cada um a começar com o respetivo id entre parênteses retos, e --list imprime todas as regras com indicação de se aplicam a esta placa. Os erros bloqueiam o pacote de fabrico. Os avisos e as notas são prática em vez de limites de fabrico: siga-os a menos que o projeto dê uma razão, e escreva a razão em DESIGN.md.

O roteamento está terminado quando unrouted é 0 em todas as redes de agentee show pcb:NAME.

Desembaraçar os pinos de um CI

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

pinswap reatribui a E/S intercambiável de um FPGA ou MCU (mesmo banco, pares como pares, pinos de relógio mantidos em pinos de relógio) para desembaraçar o ratsnest, e --write reescreve as referências de pinos do esquema.

O motor de layout

agentee layout NAME executa as etapas configuradas do motor de layout em ordem (restrições, colocação, acesso, roteamento global, roteamento detalhado, acabamento) e imprime uma pontuação por termo com os piores infratores de cada. --from, --to e --only escolhem as etapas. É mais recente que place e route; as etapas e as respetivas definições estão na tabela [engine] do layout, e o visualizador pode executá-las no layout tal como está na janela.

Melhorar este guia · Markdown para agentes