Support for Reverse Engineering of PCBs
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 tramite reverse engineering un layout PCB direttamente dai file CAM. Non segue un normale processo di esportazione/importazione, ma carica invece i dati direttamente nel PCB Editor.
Le sezioni seguenti descrivono in dettaglio i passaggi necessari per ricostruire tramite reverse engineering un progetto PCB a partire dai dati CAM, dall’importazione iniziale in un documento CAM, passando per la preparazione richiesta prima dell’esportazione, fino all’esportazione finale dei dati di progetto nel PCB Editor.
Importazione dei dati
La finestra di dialogo Preferences
Il punto di partenza dell’intero processo è il caricamento di file ODB++ oppure 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 ODB++, importa un file IPC solo se la netlist non è presente nella directory ODB++. La netlist IPC ti consentirà di aggiornare le reti estratte con i loro nomi originali e di distinguere tra vias passanti e pad liberi non appartenenti a componenti.
I comandi del sottomenu File » Import cercano tutti file con determinate estensioni all’interno di una cartella specificata. Quando si importano file di foratura, ad esempio, la directory specificata filtrerà tutti i file tranne quelli con estensioni .DR*, .ROU, .RTE, *.NC*, e *.TX* . Se ricevi file di foratura con estensioni diverse da queste, puoi ampliare questo elenco nella pagina CAM Editor - Miscellaneous della finestra di dialogo Preferences. Da qui puoi anche modificare qualsiasi elenco predefinito di estensioni associato a file Gerber, Aperture, HPGL e Netlist.
La finestra di dialogo Preferences
La pagina CAM Editor - Import/Export della finestra di dialogo Preferences ti consente di modificare le impostazioni predefinite di importazione ed esportazione per i file Gerber. Ad esempio, se ricevi regolarmente dati CAM generati con P-CAD, potresti considerare di cambiare 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 importerai un job.
Assegnazioni del tipo di layer
La finestra di dialogo Layer Table Detection Template
I singoli file Gerber e Drill vengono tutti assegnati a layer individuali. Inoltre, il CAM Editor esamina i loro nomi durante l’importazione e cerca di assegnare a ciascuno un tipo di layer. Lo fa in base alle informazioni presenti nella finestra di dialogo Layer Types Detection Template, a cui si accede selezionando Tables » Layer Type Detection dal menu principale. Si tratta di una finestra di dialogo completamente personalizzabile che contiene frammenti di nomi file (estensioni, parole chiave o entrambi) che identificano i singoli file come tipi di layer, ad esempio signal, negative plane, border, drill e temporary layers (mechanical).
Il PCB Editor di Altium Designer, ad esempio, distingue i layer Gerber in base alle loro estensioni, come .gtl per il layer superiore e .gbl per il layer inferiore. Altri strumenti di progettazione potrebbero esportare un file .top per il layer superiore e un file .sol per il layer inferiore (solder). Alcuni di questi strumenti, come P-CAD, consentono agli utenti di specificare direttamente i nomi di output Gerber.
Dopo aver importato qualsiasi gruppo di file CAM, puoi aprire la finestra di dialogo Layers Table e verificare le assegnazioni di tipo effettuate automaticamente. Puoi aprire l’elenco a discesa del tipo e modificare qualsiasi assegnazione. Ad esempio, noterai che tutti i file di foratura vengono automaticamente impostati sul tipo Drill Top. A questo punto potresti voler distinguere tra insiemi di foratura top, bottom e interni. Tuttavia, questo non è obbligatorio.
La finestra di dialogo Layer Table
Se ricevi abitualmente file Gerber o di foratura che non vengono assegnati automaticamente al tipo di layer corretto, dovresti esaminare il nome file per individuare eventuali caratteristiche distintive tramite cui CAM Editor possa identificarli, e aggiungerle alla finestra di dialogo Layer Types Detection Template. ODB++ non ha bisogno di utilizzare la finestra di dialogo Layer Types Detection Template perché tutte le informazioni necessarie per identificare ciascun layer sono memorizzate nel file matrix. Tuttavia, è buona pratica controllare le assegnazioni del tipo di layer al termine del processo di caricamento.
Stackup della scheda e insiemi di foratura
La finestra di dialogo Create/Update Layers Order
I layer assegnati come tipi signal (top, bottom o internal) oppure plane appariranno ora nella finestra di dialogo Create/Update Layers Order, a cui si accede 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 verrà fornito solo l’ordine logico (l’ordine in cui i layer sono stati importati). È consigliabile assicurarsi 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, la colonna dell’ordine fisico avrà la precedenza sull’elenco logico quando questa finestra di dialogo verrà riaperta e vedrai i layer elencati secondo lo stackup proposto.
Questo stesso ordine fisico sarà riportato anche nella finestra di dialogo Create/Update Layers Sets, accessibile selezionando Tables » Layers Sets dal menu principale, dove associ i file di foratura agli insiemi di layer. Considera una scheda a 6 layer (quattro signal, due plane) con vias sia ciechi sia interrati. Il progetto potrebbe contenere quattro file di foratura separati:
- 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.
Estrazione della netlist
Questo passaggio, accessibile selezionando Tools » Netlist » Extract dal menu principale, dipende dall’accuratezza dei passaggi precedenti. Non puoi eseguirlo affatto a meno che ogni layer della tua scheda non abbia un’assegnazione di tipo layer (i layer meccanici dovrebbero essere impostati come Temporary). Dopo aver avviato il comando, verranno estratte le informazioni della netlist e un elenco di reti apparirà nella scheda Nets del pannello CAMtastic . Ogni rete è elencata in termini di lunghezza totale. Facendo clic su una qualsiasi voce di rete nel pannello, la rete verrà selezionata e ingrandita nell’area di progettazione.
Il CAM Editor traccerà la connettività da un layer all’altro, consultando i file NC drill per creare le connessioni tra 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 reti selezionando Tools » Netlist » Rename Nets dal menu principale. Dopo aver avviato il comando, le reti verranno confrontate e quelle estratte dal documento corrente verranno rinominate utilizzando i nomi delle reti presenti 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, sono comunque desiderabili. La loro presenza aiuterà il CAMtastic Editor a separare i pad dai vias e quindi porterà alla corretta creazione di vias invece che di pad per eventuali vias ciechi o interrati nel progetto. Ma, cosa ancora più importante, una netlist IPC ti fornisce un riferimento con cui confrontare la netlist estratta selezionando Tools » Netlist » Compare dal menu principale. Dopo aver avviato il comando, verrà eseguito il confronto e sarà generato un report, Netlist-Compare.rpt, che verrà aperto come documento attivo nella finestra principale di progettazione. Il report elenca ciascuna delle reti trovate nella netlist importata ma mancanti nella netlist estratta.
Se la netlist IPC è stata importata correttamente, vedrai due layer aggiunti all’elenco dei layer nel pannello CAMtastic : <fabrication_testpoint_report_for_DesignName>.ipc_t e <fabrication_testpoint_report_for_DesignName>.ipc_b, che riflettono 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 tuo progetto PCB contiene layer di segnale interni. A meno che tu non abbia vias ciechi e/o interrati che coinvolgono questi layer, questo terzo layer sarà vuoto e potrà essere lasciato oppure eliminato dall’elenco dei layer).
Per le netlist IPC generate dal PCB Editor, noterai che la funzione di confronto del CAM Editor troverà di solito una serie di "reti mancanti" senza nome. Questo perché il formato IPC del PCB Editor include reti a pin singolo. Il CAM Editor, invece, ignora i pad senza connessioni in rame per quanto riguarda la netlist. In effetti, il suo DRC dispone di un’opzione per rimuovere i pad non funzionali.
Bordi e piani
Quando il CAM Editor esporta un file PCB nel PCB Editor, viene generato automaticamente un contorno della scheda. Per farlo in modo corretto, è necessario che su un layer di tipo Border sia presente una polilinea chiusa. Se su questo layer non viene trovata alcuna polilinea chiusa, oppure se nella finestra di dialogo Layers Table sono stati designati come bordi più layer, probabilmente non otterrai la forma della scheda desiderata.
Eventuali split sui piani interni devono anch’essi essere definiti da polilinee chiuse. Per determinare se una polilinea è chiusa, interrogarla (scorciatoia Q). Puoi verificare se l’intera polilinea viene evidenziata e se viene riportata come polilinea chiusa nella scheda Info del pannello CAM. In caso contrario, puoi convertire ciò che hai in una polilinea chiusa con il comando Join nel sottomenu Edit » Objects.
Le sezioni di split plane possono richiedere un lavoro aggiuntivo, perché ogni split necessita del proprio contorno “a bolla”. Sebbene i piani island possano essere uniti come descritto sopra, gli split plane che condividono i loro contorni con altri split o con la polilinea di bordo devono essere ridisegnati. Per disegnare una tua polilinea chiusa, fai clic con il pulsante destro dopo aver selezionato il vertice finale, quindi scegli Close.
I piani annidati (island all’interno di split plane) non sono attualmente supportati.
Esportazione dei poligoni
La pagina CAM Editor - Import/Export della finestra di dialogo Preferences fornisce opzioni aggiuntive per gestire il modo in cui i poligoni nel documento CAM vengono esportati nel documento PCB. Se i poligoni hanno forma rettangolare, possono essere creati come riempimenti nel documento PCB. Per i poligoni non rettangolari, puoi creare nel PCB Editor dei polygon pour tratteggiati o pieni. Sono inoltre disponibili le finestre di dialogo delle opzioni per questi due tipi di polygon pour, offrendo un maggiore controllo su come i poligoni esportati verranno gestiti sul lato PCB.
Quando si abilita l’opzione Create Hatched Polygons, il CAM Editor utilizzerà un’unica dimensione di griglia e un’unica larghezza traccia per riempire tutti i poligoni del file. Se i dati CAM includono poligoni molto piccoli, assicurati che le opzioni di esportazione siano calibrate fino a quel livello.
La finestra di dialogo Polygon Options, accessibile facendo clic sul relativo pulsante Hatched Polygon Options, consente di modificare la dimensione della griglia, la larghezza traccia e la lunghezza minima delle primitive per i poligoni. Se vuoi che i poligoni siano completamente riempiti con elevata precisione, questi valori dovrebbero essere mantenuti tutti entro un intervallo ristretto attorno ai requisiti minimi della scheda. In caso contrario, potresti rischiare spazi vuoti all’interno dei poligoni, pattern tratteggiati invece di riempimenti completi, o persino l’esclusione di interi poligoni durante l’esportazione.
La finestra di dialogo Polygon Options
D’altra parte, questi valori si applicheranno a tutti i poligoni esportati, quindi valori molto piccoli aumenteranno la dimensione complessiva e i relativi problemi di gestione (come la velocità di ridisegno) del file esportato. Per questo motivo, è consigliabile usare i valori più grandi possibili che consentano comunque di ottenere la precisione richiesta per tutti i poligoni della scheda.
Quando si abilita l’opzione Create Solid Polygons, ogni poligono verrà riempito con una o più regioni di rame piene. Il numero di regioni di rame utilizzate dipende dal numero di aree individuali create all’interno del poligono da oggetti net esistenti, come tracce e pad.
La finestra di dialogo Solid Polygon Options
La finestra di dialogo Solid Polygon Options, accessibile facendo clic sul relativo pulsante Solid Polygon Options, consente di determinare come vengono gestite le isole di rame e le net di rame strette, nonché il comportamento del pour quando viene colato sopra oggetti net appartenenti alla stessa net del copper pour:
-
Pour Over All Same Net Objects - scegli questa opzione se vuoi che un polygon pour si connetta automaticamente a tutti gli oggetti sulla stessa net del pour
-
Pour Over Same Net Polygons Only - scegli questa opzione (predefinita) se vuoi che il polygon pour si connetta automaticamente solo agli oggetti polygon pour all’interno del suo contorno, associati alla stessa net
-
Don't Pour Over Same Net Objects - scegli questa opzione se specificamente non desideri che il polygon pour si connetta ad altri oggetti net. Se viene scelta una delle prime due opzioni e il polygon pour è assegnato a No Net, esso verrà colato attorno a tutti gli oggetti indipendentemente dalle loro assegnazioni di net.
Esporta in PCB
Dopo che una netlist è stata estratta dai dati CAM, il comando File » Export » Export to PCB diventa disponibile. L’esecuzione di questo comando, dopo aver completato tutti i passaggi necessari, creerà un documento PCB contenente un progetto di scheda molto simile all’originale.
Dopo l’avvio del comando, verrà generato un nuovo documento PCB (<CAMDocumentName>.PcbDoc) e aperto come documento attivo nello spazio di progettazione. La sequenza effettiva degli eventi nel trasferimento delle informazioni tra il documento CAM e il documento PCB è la seguente:
-
Il documento PCB viene creato con un contorno della scheda basato sulla dimensione corrente della scheda nel documento CAM.
-
Gli oggetti net vengono creati nel documento PCB, utilizzando le informazioni di net estratte dal documento CAM.
-
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).
-
Le net vengono assegnate agli eventuali piani interni.
-
Le net vengono assegnate agli eventuali split plane esistenti. Questi possono essere
-
Vengono create le regole di progettazione Clearance, Width e Power Plane Connect Style. Vengono create connessioni relief per ogni net di piano.
-
I padstack vengono costruiti dai dati CAM (utilizzando i pad sui layer signal/plane nell’ordine fisico, seguiti da drill, mask, paste, ecc.). I padstack vengono caricati nel PCB e viene definito lo stile richiesto (padstack semplice o completo).
-
Vengono create le tracce PCB.
-
Viene eseguito un controllo DRC sull’intera scheda.
).