Supporto per il reverse engineering dei PCB

A colpo d'occhio

Il reverse engineering di un PCB a partire da file CAM in Altium Designer richiede più della semplice importazione dei dati. Questo articolo illustra le operazioni preliminari necessarie per trasferire un progetto nell’editor PCB, tra cui l’assegnazione dei layer, la definizione dello stackup della scheda, la configurazione dei set di foratura, l’estrazione della netlist e la gestione del contorno della scheda e dei poligoni. Continua a leggere per scoprire i passaggi che ti aiutano a preparare i dati CAM per l’esportazione in formato PCB.

- Scopri come importare dati ODB++, Gerber e NC Drill e verificare i tipi di layer, il loro ordine fisico e i set di foratura.
- Scopri come estrarre la connettività e utilizzare una netlist IPC-D-356 per ripristinare i nomi delle net e confrontare le netlist.
- Scopri i requisiti per i contorni chiusi della scheda e i piani suddivisi, insieme alle opzioni per l’esportazione dei poligoni.
Approfondisci con l'IA:

Dopo aver importato i dati CAM in un documento CAM, noterai che l'opzione Export to PCB è disattivata, indipendentemente dalla modalità corrente del CAM Editor (CAM o NC). Questo comando consente di ricostruire un layout PCB direttamente dai file CAM mediante reverse engineering. Non segue un normale processo di esportazione/importazione, ma carica i dati direttamente nel PCB Editor.

Le sezioni seguenti descrivono in dettaglio i passaggi necessari per ricostruire un progetto PCB dai dati CAM mediante reverse engineering, dall'importazione iniziale in un documento CAM alla preparazione necessaria prima dell'esportazione, fino all'esportazione dei dati di progetto nel PCB Editor.

Importazione dei dati

La finestra di dialogo Preferences La finestra di dialogo Preferences

Il punto di partenza dell'intero processo è il caricamento dei file ODB++, oppure dei file Gerber e NC Drill, in un nuovo documento CAM. Se disponi di una netlist IPC, dovresti importare anche questa insieme ai dati Gerber e NC Drill. Quando importi dati ODB++, importa un file IPC solo se la netlist non è presente nella directory ODB++. La netlist IPC consente di aggiornare le net estratte con i loro nomi originali e di distinguere le via passanti dalle piazzole libere non associate a componenti.

Tutti i comandi del sottomenu File » Import cercano file con determinate estensioni all'interno di una cartella specificata. Quando importi file di foratura, ad esempio, nella directory specificata vengono esclusi tutti i file tranne quelli con estensione .DR*, .ROU, .RTE, *.NC* e *.TX* . Se ricevi file di foratura con estensioni diverse da queste, puoi ampliare l'elenco nella pagina CAM Editor - Miscellaneous della finestra di dialogo Preferences. Da qui puoi anche modificare gli elenchi delle estensioni predefinite associati ai file Gerber, Aperture, HPGL e Netlist.

La finestra di dialogo Preferences La finestra di dialogo Preferences

La pagina CAM Editor - Import/Export della finestra di dialogo Preferences consente di modificare le impostazioni predefinite di importazione ed esportazione dei file Gerber. Ad esempio, se ricevi regolarmente dati CAM generati con P-CAD, potresti valutare la possibilità di modificare il formato di precisione delle coordinate da 2:3 (impostazione predefinita di Altium Designer) a 4:4 (impostazione predefinita di P-CAD). In caso contrario, avrai comunque la possibilità di modificare queste impostazioni rispetto ai valori predefiniti ogni volta che importi un lavoro.

Assegnazione dei tipi di layer

La finestra di dialogo  Layer Table Detection TemplateLa finestra di dialogo Layer Table Detection Template

I singoli file Gerber e Drill vengono assegnati ciascuno a un layer distinto. Inoltre, durante l'importazione, il CAM Editor ne analizza i nomi e tenta di assegnare a ciascuno un tipo di layer. Questa operazione si basa sulle informazioni contenute nella finestra di dialogo Layer Types Detection Template, accessibile selezionando Tables » Layer Type Detection dal menu principale. Si tratta di una finestra di dialogo completamente personalizzabile che contiene parti dei nomi dei file (estensioni, parole chiave o entrambe) che consentono di identificare i singoli file come tipi di layer, ad esempio segnale, piano negativo, contorno, foratura e layer temporanei (meccanici).

Il PCB Editor di Altium Designer, ad esempio, distingue i layer Gerber in base alle estensioni, come .gtl per il layer superiore e .gbl per quello inferiore. Altri strumenti di progettazione potrebbero esportare un file .top per il layer superiore e un file .sol per il layer inferiore (lato saldatura). Alcuni di questi strumenti, come P-CAD, consentono agli utenti di specificare direttamente i nomi dei file Gerber di output.

Dopo aver importato un gruppo di file CAM, puoi aprire la finestra di dialogo Layers Table e verificare le assegnazioni dei tipi effettuate automaticamente. Puoi aprire l'elenco a discesa del tipo e modificare qualsiasi assegnazione. Ad esempio, noterai che tutti i file di foratura vengono impostati automaticamente sul tipo Drill Top. A questo punto potresti voler distinguere tra i gruppi di foratura superiori, inferiori e interni. Tuttavia, non è obbligatorio.

La finestra di dialogo  Layer Table La finestra di dialogo Layer Table

Se ricevi abitualmente file Gerber o di foratura a cui non viene assegnato automaticamente il tipo di layer corretto, dovresti esaminare il nome del file per individuare eventuali caratteristiche distintive che consentano a CAM Editor di identificarli e aggiungerle alla finestra di dialogo Layer Types Detection Template. Per ODB++ non è necessario utilizzare la finestra di dialogo Layer Types Detection Template, poiché tutte le informazioni necessarie a identificare ciascun layer sono memorizzate nel file matrice. Tuttavia, è buona prassi verificare le assegnazioni dei tipi di layer al termine del caricamento.

Stackup della scheda e gruppi di foratura

La finestra di dialogo Create/Update Layers Order La finestra di dialogo Create/Update Layers Order

I layer a cui è stato assegnato un tipo segnale (superiore, inferiore o interno) o piano compariranno ora nella finestra di dialogo Create/Update Layers Order, accessibile selezionando Tables » Layers Order dal menu principale. Nella maggior parte dei casi, CAM Editor sarà in grado di determinare lo stackup dai dati CAM forniti, ma in alcuni casi sarà disponibile soltanto l'ordine logico (l'ordine in cui i layer sono stati importati). È consigliabile verificare che le informazioni nella colonna Layer Physical Order siano corrette, con il numero uno corrispondente al layer superiore. Fai attenzione a non assegnare lo stesso numero d'ordine a layer diversi. Una volta specificato uno stackup valido, alla riapertura di questa finestra di dialogo la colonna dell'ordine fisico avrà la precedenza sull'elenco logico e i layer verranno elencati secondo lo stackup proposto.

Lo stesso ordine fisico sarà riportato nella finestra di dialogo Create/Update Layers Sets, accessibile selezionando Tables » Layers Sets dal menu principale, dove puoi associare i file di foratura ai gruppi di layer. Considera una scheda a 6 layer (quattro di segnale e due piani) con via sia cieche sia interrate. Il progetto potrebbe contenere quattro file di foratura distinti:

  • uno per la coppia Top-Bottom (fori passanti)
  • uno per la coppia Top-InternalPlane1
  • uno per la coppia MidLayer1-MidLayer2
  • uno per la coppia Bottom-InternalPlane2.
Ricorda che stai definendo un gruppo di foratura, non soltanto le coppie di layer più esterni. Per i layer di foratura cieca/interrata, tutti i layer che vengono forati devono essere inclusi nel gruppo di layer. Per i layer di foratura passante, dovrebbero essere sufficienti il layer iniziale e quello finale.

Estrazione della netlist

Questo passaggio, accessibile selezionando Tools » Netlist » Extract dal menu principale, dipende dall'accuratezza dei passaggi precedenti. Non puoi eseguirlo se non hai assegnato un tipo di layer a ogni layer della scheda (i layer meccanici devono essere impostati su Temporary). Dopo aver avviato il comando, verranno estratte le informazioni della netlist e un elenco delle net comparirà nella scheda Nets del pannello CAMtastic . Per ogni net viene indicata la lunghezza totale. Facendo clic su una voce dell'elenco nel pannello, la net corrispondente verrà selezionata e ingrandita nell'area di progettazione.

Il CAM Editor ricostruirà la connettività da un layer all'altro, consultando i file di foratura NC per stabilire i collegamenti tra i layer. Per questo motivo, lo stackup dei layer definito nella finestra di dialogo Create/Update Layers Order e le coppie di foratura selezionate nella finestra di dialogo Create/Update Layers Sets sono prerequisiti fondamentali per estrarre una netlist accurata dai dati CAM.

Se hai incluso un file netlist IPC-D-356 insieme ai file Gerber e NC Drill importati, puoi ripristinare i nomi originali (e significativi) delle net selezionando Tools » Netlist » Rename Nets dal menu principale. Dopo l'avvio del comando, le net verranno confrontate e quelle estratte dal documento corrente verranno rinominate utilizzando i nomi delle net contenuti nel file netlist IPC. I nomi aggiornati appariranno nella scheda Nets del pannello CAMtastic .

Sebbene le informazioni della netlist IPC-D-356 non siano essenziali per l'esportazione, è consigliabile includerle. La loro presenza aiuterà l'editor CAMtastic a distinguere i pad dai via, consentendo quindi di creare correttamente via anziché pad per tutti i via ciechi o interrati presenti nel progetto. Ma, soprattutto, una netlist IPC fornisce un riferimento con cui confrontare la netlist estratta selezionando Tools » Netlist » Compare dal menu principale. Dopo l'avvio del comando, verrà eseguito il confronto e verrà generato un report, Netlist-Compare.rpt, che verrà aperto come documento attivo nella finestra di progettazione principale. Il report elenca tutte le net presenti nella netlist importata ma mancanti in quella estratta.

Le netlist in formato Protel non sono supportate. La netlist importata deve essere nel formato standard IPC-D-356.

Se la netlist IPC è stata importata correttamente, nell'elenco dei layer del pannello CAMtastic vedrai due layer aggiuntivi: <fabrication_testpoint_report_for_DesignName>.ipc_t e <fabrication_testpoint_report_for_DesignName>.ipc_b, che rappresentano le informazioni della netlist per i layer di segnale superiore e inferiore. (Un terzo layer, <fabrication_testpoint_report_for_DesignName>.ipc_in, apparirà se il progetto PCB include layer di segnale interni. A meno che non siano presenti via ciechi e/o interrati che coinvolgono questi layer, il terzo layer sarà vuoto e potrà essere mantenuto oppure eliminato dall'elenco dei layer).

Per le netlist IPC generate dall'editor PCB, noterai che la funzione di confronto dell'editor CAM solitamente rileva una serie di "net mancanti" prive di nome. Questo accade perché il formato IPC dell'editor PCB include net con un solo pin. L'editor CAM, invece, non considera nella netlist i pad privi di collegamenti in rame. Infatti, il suo DRC dispone di un'opzione per rimuovere i pad non funzionali.

Per cancellare tutte le net dal documento corrente, svuotando di fatto la netlist estratta in precedenza, scegli il comando Tools » Netlist » Clean All Nets dai menu principali. Dopo l'avvio del comando, tutte le informazioni sulle net verranno rimosse. Puoi verificare che tutte le net siano state cancellate dal documento CAM utilizzando il pannello CAMtastic . Vedrai che la scheda Nets sarà vuota.

Contorni e piani

Quando CAM Editor esporta un file PCB nell'editor PCB, viene generato automaticamente un contorno della scheda. Per farlo correttamente, è necessaria la presenza di una polilinea chiusa su un layer di tipo Border. Se su questo layer non viene trovata alcuna polilinea chiusa, oppure se nella finestra di dialogo Layers Table sono stati designati più layer come contorni, probabilmente non otterrai la forma della scheda desiderata.

Anche le eventuali suddivisioni dei piani interni devono essere definite da polilinee chiuse. Per determinare se una polilinea è chiusa, interrogala (scorciatoia Q). Puoi verificare se l'intera polilinea viene evidenziata e se viene indicata come polilinea chiusa nella scheda Info del pannello CAM. In caso contrario, puoi convertire gli elementi esistenti in una polilinea chiusa con il comando Join nel sottomenu Edit » Objects.

Le sezioni dei piani suddivisi possono richiedere alcune operazioni aggiuntive, perché ogni suddivisione deve avere un proprio contorno chiuso. Mentre i piani a isola possono essere uniti come descritto sopra, i piani suddivisi che condividono i propri contorni con altre suddivisioni o con la polilinea del bordo devono essere ridisegnati. Per disegnare una polilinea chiusa, fai clic con il pulsante destro del mouse dopo aver selezionato l'ultimo vertice, quindi scegli Close.

I piani annidati (isole all'interno di piani suddivisi) non sono attualmente supportati.

Esportazione dei poligoni

La pagina CAM Editor - Import/Export della finestra di dialogo Preferences fornisce opzioni aggiuntive per gestire la modalità di esportazione dei poligoni dal documento CAM al documento PCB. Se i poligoni sono di forma rettangolare, possono essere creati come riempimenti nel documento PCB. Per i poligoni non rettangolari, puoi creare riempimenti poligonali tratteggiati o pieni nell'editor PCB. Sono disponibili finestre di dialogo con opzioni per questi due tipi di riempimento poligonale, che offrono un maggiore controllo sulla gestione dei poligoni esportati nel PCB.

Quando abiliti l'opzione Create Hatched Polygons, CAM Editor utilizzerà un'unica dimensione della griglia e un'unica larghezza di pista per riempire tutti i poligoni del file. Se i dati CAM includono poligoni molto piccoli, assicurati che le opzioni di esportazione siano calibrate per gestire anche tali dimensioni.

La finestra di dialogo Polygon Options, accessibile facendo clic sul pulsante Hatched Polygon Options associato, consente di modificare la dimensione della griglia, la larghezza delle piste e la lunghezza minima delle primitive per i poligoni. Se desideri che i poligoni vengano riempiti completamente con elevata precisione, tutti questi valori devono essere mantenuti entro un intervallo ristretto, prossimo alle dimensioni minime richieste dalla scheda. In caso contrario, rischi di ottenere spazi vuoti all'interno dei poligoni, motivi tratteggiati anziché riempimenti completi o persino l'omissione di interi poligoni durante l'esportazione.

La finestra di dialogo Polygon OptionsLa finestra di dialogo Polygon Options

D'altra parte, questi valori verranno applicati a tutti i poligoni esportati, quindi valori molto piccoli aumenteranno le dimensioni del file esportato e i relativi problemi di gestione, ad esempio la velocità di ridisegno. Per questo motivo, è preferibile utilizzare i valori più grandi possibili che garantiscano comunque la precisione richiesta per tutti i poligoni della scheda.

Quando abiliti l'opzione Create Solid Polygons, ogni poligono verrà riempito con una o più regioni di rame pieno. Il numero di regioni di rame utilizzate dipende dal numero di aree distinte create all'interno del poligono dagli oggetti delle net esistenti, come piste e pad.

La finestra di dialogo Solid Polygon OptionsLa finestra di dialogo Solid Polygon Options

La finestra di dialogo Solid Polygon Options, accessibile facendo clic sul pulsante Solid Polygon Options associato, consente di determinare come vengono gestite le isole di rame e le connessioni in rame strette, nonché il comportamento del riempimento quando viene applicato su oggetti appartenenti alla stessa net del riempimento in rame:

  • Pour Over All Same Net Objects - scegli questa opzione se desideri che un riempimento poligonale si colleghi automaticamente a tutti gli oggetti appartenenti alla sua stessa net

  • Pour Over Same Net Polygons Only - scegli questa opzione (predefinita) se desideri che il riempimento poligonale si colleghi automaticamente solo agli oggetti di riempimento poligonale presenti all'interno del suo contorno e associati alla stessa net

  • Don't Pour Over Same Net Objects - scegli questa opzione se desideri esplicitamente che il riempimento poligonale non si colleghi ad alcun altro oggetto delle net. Se viene scelta una delle prime due opzioni e il riempimento poligonale è assegnato a No Net, il riempimento aggirerà tutti gli oggetti, indipendentemente dalle net a cui sono assegnati.

  • Quando esegui il comando Export to PCB per creare la scheda, i poligoni vengono creati come contorni: sarà necessario riempirli nuovamente. 

  • Ogni singola area poligonale definita nei file CAM diventa un poligono distinto; utilizza il Gestore poligoni per capire come e dove sono definiti. Nota che puoi modificare il contorno di un poligono esistente: con questo approccio potrebbe essere più semplice chiudere un poligono esistente di grandi dimensioni in modo che possa sostituire numerosi poligoni più piccoli ().

Esportazione su PCB

Dopo aver estratto una netlist dai dati CAM, il comando File » Export » Export to PCB viene abilitato. Eseguendo questo comando dopo aver completato tutti i passaggi necessari, verrà creato un documento PCB contenente un progetto della scheda molto simile all'originale.

Dopo aver avviato il comando, verrà generato un nuovo documento PCB (<CAMDocumentName>.PcbDoc), che verrà aperto come documento attivo nell'area di progettazione. La sequenza effettiva delle operazioni durante il trasferimento delle informazioni tra il documento CAM e il documento PCB è la seguente:

  1. Il documento PCB viene creato con un contorno della scheda basato sulle dimensioni attuali della scheda nel documento CAM.

  2. Nel documento PCB vengono creati gli oggetti net, utilizzando le informazioni sulle net estratte dal documento CAM.

  3. Viene generato lo stack-up dei layer in base all'ordine dei layer fisici definito nel documento CAM (finestra di dialogo Create/Update Layers Order, accessibile tramite Tables »  Layers Order).

  4. Le net vengono assegnate agli eventuali piani interni.

  5. Le net vengono assegnate agli eventuali piani suddivisi presenti. Questi possono essere 

  6. Vengono create le regole di progettazione Clearance, Width e Power Plane Connect Style. Per ogni net dei piani vengono creati collegamenti con scarico termico.

  7. I padstack vengono costruiti a partire dai dati CAM (utilizzando i pad sui layer di segnale e dei piani nell'ordine fisico, seguiti da foratura, solder mask, pasta saldante, ecc.). I padstack vengono caricati nel PCB e viene definito lo stile richiesto (padstack semplice o completo).

  8. Vengono create le piste del PCB.

  9. Viene eseguito un controllo DRC sull'intera scheda.

  • Il comando Export to PCB trasferisce i dati dal documento CAM al documento PCB utilizzando l'API del PCB. In questo modo non vengono generati file di dati esportati (in formato Gerber o in altri formati), evitando quindi di dover utilizzare l'importatore Gerber dell'editor PCB.

  • Il documento PCB generato verrà aggiunto a Projects panel come documento libero, nella sottocartella PCBs. Il documento viene generato, ma inizialmente non viene salvato.

  • Per ricostruire effettivamente una scheda saranno comunque necessarie ulteriori operazioni, come la sostituzione delle primitive dei componenti con footprint (puoi farlo copiando e incollando gruppi di primitive in una libreria PCB, quindi sostituendo gli originali con i nuovi footprint). L'editor PCB non creerà automaticamente le coppie di foratura a partire dalle informazioni Layer Sets nel documento CAM; dovrai ridefinirle manualmente in Layer Stack Manager. 

AI-LocalizedLocalizzato tramite A
Se trovi un problema, seleziona il testo/l’immagine e premi Ctrl + Enter per inviarci il tuo feedback.
Nav
Contents
Disponibilità delle funzionalità

Le funzionalità a tua disposizione dipendono dalla soluzione Altium di cui disponi: Altium Develop, Altium Agile Teams, Altium Agile Enterprise oppure Altium Designer (con abbonamento attivo).

Se non vedi una funzionalità documentata nel software che stai effettivamente utilizzando, contatta il reparto vendite di Altium per saperne di più.

Documentazione legacy

La documentazione di Altium Designer non è più suddivisa per versione. Se è necessario accedere alla documentazione delle versioni precedenti di Altium Designer, visitare la sezione Documentazione legacy della pagina Altri programmi di installazione.

Contents