Files

Üretim, doğrulama ve routing akışı

Gereksinimler

  • KiCad 10.x ve kicad-cli.
  • KiCad ile aynı sürümden /usr/bin/python3 ve pcbnew modülü.
  • Python paketleri: pip install -r requirements.txt.
  • Yoğun sinyal routing aşaması için isteğe bağlı Freerouting 2.3.x.

pcbnew kullanan scriptler sistem Python'u ile çalıştırılmalıdır. Normal Python ortamına yalnızca pip install pcbnew yapmak KiCad ABI uyumluluğunu garanti etmez.

Dosya üretim sırası

Repository kökünden:

python3 scripts/generate_footprints.py
python3 scripts/generate_kicad.py
python3 scripts/generate_design_tables.py
/usr/bin/python3 scripts/generate_pcb.py

Bu sıralama:

  1. Özel footprintleri üretir.
  2. design_data.py üzerinden şema hiyerarşisini ve BOM'u üretir.
  3. Efinity C529 paket verisine karşı pin tablolarını doğrular ve üretir.
  4. 8 katmanlı stackup, kurallar, zone'lar ve placement ile PCB'yi üretir.

design_data.py çalıştırıldığında dahili bağlantı assertion'ları da yürütülür:

python3 scripts/design_data.py

Şema ve placement doğrulaması

kicad-cli sch erc --severity-all \
  -o outputs/erc_final_reset.rpt hardware/board.kicad_sch

kicad-cli pcb drc --severity-all \
  -o outputs/drc_final_placement.rpt hardware/board.kicad_pcb

Unrouted placement aşamasında unconnected-pad ve isolated-zone kayıtları beklenir. Clearance, short, courtyard, solder-mask, edge ve footprint hataları beklenmez.

Routing sırası

1. BGA escape

/usr/bin/python3 scripts/preroute_bga.py \
  hardware/board.kicad_pcb hardware/board_prerouted.kicad_pcb

Ti375'in bağlı ball'larına kilitli 0.8 mm pitch dogbone/via escape ekler.

2. Yerel plane bağlantıları

/usr/bin/python3 scripts/stitch_plane_pads.py \
  hardware/board_prerouted.kicad_pcb \
  hardware/board_plane_stitched.kicad_pcb

Yalnızca altında gerçekten aynı nete ait dolu plane bulunan SMD güç/GND padlerini kısa dogbone ile bağlar. Bu işlem yüksek akım buck loop routinginin yerini tutmaz.

3. Güç katı

KiCad içinde önce aşağıdaki hatlar elle route edilmelidir:

  • TPS6287B15 giriş kapasitörü, SW, indüktör, çıkış kapasitörü ve remote-sense.
  • TPS62867 1.8 V ve 3.3 V converter loopları.
  • SYS5 dağıtımı ve ana güç geçişleri.
  • LDO giriş/çıkış bypass bağlantıları.

SW node bakırı küçük tutulmalı; feedback/sense hatları SW ve indüktörden uzak, Kelvin bağlantılı götürülmelidir. Autorouter bu kararları vermez.

4. Freerouting için sınıf bazlı DSN

/usr/bin/python3 scripts/export_routing_stage.py \
  hardware/board_plane_stitched.kicad_pcb outputs/signal_stage.dsn \
  --classes "Default;BGA_ESCAPE;CLOCK" \
  --preview outputs/signal_stage_preview.kicad_pcb

python3 scripts/prepare_freerouting_dsn.py \
  outputs/signal_stage.dsn outputs/signal_stage_freerouting.dsn

İkinci script Freerouting 2.3.0/KiCad 10 DSN clearance ölçek farkını düzeltir; koordinatlara, track genişliklerine, via veya keepoutlara dokunmaz. Freerouting arayüzünde düzeltilmiş DSN açılır, en fazla 8 thread kullanılır ve sonuç .ses olarak kaydedilir.

RF, USB, güç converter loopları ve hassas clock kararları otomatik sonuca bırakılmamalıdır. to route sayısının uzun süre düşmemesi halinde aynı işlemi saatlerce sürdürmek yerine placement/escape/keepout çatışması incelenmelidir.

5. Kritik hatları kur ve session'ı sonlandır

/usr/bin/python3 scripts/finalize_routing.py \
  outputs/signal_stage.ses \
  --output hardware/board_routed.kicad_pcb

Bu işlem Freerouter'ın RF ve USB üzerindeki copperını kaldırır, denetlenmiş RF/USB geometrisini ekler, RF GND via fence'i kurar ve zone'ları doldurur.

6. Final kontroller

kicad-cli pcb drc --severity-all --schematic-parity --refill-zones \
  --save-board -o outputs/drc_final_routed.rpt \
  hardware/board_routed.kicad_pcb

Final kartta unconnected item, short, clearance, isolated copper veya schematic-parity hatası kabul edilmez. RF uzunlukları, USB eşleşmesi, güç loopları, return path ve test-point erişimi görsel olarak da incelenmelidir.

Script özeti

Script Görev
design_data.py Tek kaynak komponent/net verisi ve bağlantı assertion'ları
generate_footprints.py Üretici land-patternlerinden özel footprint üretimi
generate_kicad.py Şema, sembol ve BOM üretimi
generate_design_tables.py Ti375 pinout/constraint ve MAX2771 tablo üretimi
generate_pcb.py Stackup, rule, zone ve deterministic placement üretimi
preroute_bga.py Kilitli Ti375 dogbone escape
stitch_plane_pads.py Yerel pad-to-plane bağlantıları
export_routing_stage.py Seçili net-class için DSN üretimi
prepare_freerouting_dsn.py Freerouting 2.3 clearance düzeltmesi
finalize_routing.py SES importu ve denetlenmiş RF/USB geometrisi