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 NAMEAdicione 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.pngagentee 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 bothlocked = 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 1Uma 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 NAMEUma 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
--netsnunca 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
--rerouteapague 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. --pairsroteia pares diferenciais como pares acoplados onde couberem.--via-in-padpermite que uma via fique dentro de um pad SMD da respetiva rede, preenchida e com tampa.--dry-rundá 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.9Uma 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.54Toda 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 --listcheck 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 --writepinswap 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.