Nella mia azienda, abbiamo precedentemente progettato alcune schede FPGA personalizzate e recentemente abbiamo iniziato a utilizzare schede FPGA commerciali "COTS" con schede madri FMC personalizzate.
Fase del prototipo
Se sei ancora nella fase iniziale della definizione del progetto, pianifica di acquistare almeno una scheda FPGA COTS per la prototipazione. Puoi collegare uno dei tuoi sensori alle intestazioni I / O ed eseguire una prova di concetto rapida. Questo ti dà un'idea di come il progetto potrebbe funzionare se ridimensionato su molti sensori e stimare quanti ne puoi supportare con un determinato FPGA.
Se l'FPGA è troppo piccolo o troppo lento o gli strumenti sono inadeguati per il lavoro, in questa fase è facile scambiare un FPGA COTS diverso. (Beh, non è facile ma almeno gestibile ...)
Se il firmware non funziona in questa fase, è chiaramente a causa di un problema del firmware, non di un errore di progettazione PCB personalizzato. Con firmware personalizzato e PCB personalizzato, a volte è difficile dire da che parte è colpa di un problema.
Scheda FPGA personalizzata rispetto alla scheda FPGA off-the-shelf commerciale
Progettare una scheda FPGA personalizzata ha senso se il progetto avrà un ciclo di vita breve, un volume elevato o richiede un fattore di forma inferiore a quello che è possibile ottenere con la scheda FPGA COTS e le schede aggiuntive PMOD o FMC.
Se il ciclo di vita del progetto supera la durata del prodotto di un chip di memoria DDR (un paio di anni), la progettazione di una scheda figlia FMC personalizzata potrebbe essere un'alternativa migliore.
Il costo è un fattore in questa decisione. La maggior parte delle schede FPGA COTS sono piuttosto generiche, progettate per la massima flessibilità. Se stai realizzando un prodotto ad alto volume e sensibile ai costi, probabilmente vale la pena realizzare un design personalizzato; ma per i volumi bassi probabilmente stai meglio concentrandoti sulla creazione di una scheda figlia.
Indipendentemente dall'approccio scelto, esistono alcune interfacce che richiedono una documentazione chiara e generale: all'interfaccia tra i pin I / O di livello superiore FPGA e il resto della scheda e all'interfaccia del connettore tra le schede. Questi sono luoghi in cui le posizioni dei pin, i nomi delle reti interne e i nomi delle reti esterne a volte vengono non corrispondenti e scambiati. Una tabella è una documentazione sufficiente; assicurarsi di mantenere questa tabella di interfaccia con versione e sotto controllo del codice sorgente. Prima di inviare i file PCB alla fabbricazione, stampare una copia di questa tabella di interfaccia, una copia dello schema e una copia del rapporto pin / pad FPGA. Trascina un evidenziatore sui fogli per verificare che ogni segnale si connetta dove dovrebbe.
Per i connettori, ho imparato a fondo come fornire un "disegno di sistema" meccanico che mostri sia le schede che i connettori di accoppiamento su un unico disegno quotato. In primo luogo sono stato bruciato da un sistema di connettori VME in cui il pin "A1" su un connettore non si associava al pin "A1" sull'altro connettore. Ho anche visto i progettisti dimenticare che una coppia di connettori ad angolo retto produce una connessione di immagine speculare (90 gradi + 90 gradi = 180 gradi). Questo era un problema quando ero responsabile della scheda madre e molti altri project manager erano responsabili di varie schede madri.
Suggerimenti per la scheda FPGA personalizzati
Inizia con il "progetto di riferimento" del fornitore FPGA, quindi ometti qualsiasi parte non richiesta per la tua applicazione. Non rimuovere alcun condensatore di bypass dall'FPGA e non tentare di cavarsela con l'utilizzo di un minor numero di strati PCB. Prestare attenzione alla pila di livelli (spesso presente accanto al disegno di perforazione); I componenti a passo fine utilizzano in genere 0,5 once di rame anziché lo spessore standard della lamina di rame da 1 once.
Il pacchetto BGA è un problema con cui lavorare. La resa non è mai buona come con i pacchetti TQFP o TQFN e rielaborare un BGA è quasi impossibile. Anche l'ispezione per problemi di assemblaggio richiede un riproduttore di raggi X. Assicurati di utilizzare un fornitore di servizi di produzione a contratto di cui ti fidi.
Gli alimentatori sono sempre difficili quando si lavora con schede FPGA. I requisiti di alimentazione effettivi dell'FPGA dipendono fortemente dal flusso di configurazione. Xilinx fornisce uno strumento di "stima della potenza", ma la stima è valida solo se il firmware è completo. C'è un rischio quando si effettua una modifica del firmware dell'ultimo minuto, che i requisiti di alimentazione sono maggiori del previsto. Prevedi di lasciare un po 'di margine di corrente. Se la stima della potenza iniziale dice che hai bisogno di 560mA, vai avanti e usa un regolatore da 1000mA. La corrente di uscita extra disponibile non danneggia, ma avere una corrente di uscita insufficiente comporterà un comportamento aberrante del sistema.
Se sono presenti pin FPGA senza commit, portane il maggior numero possibile a un'intestazione. Quando si verifica un problema, questi pin non impegnati diventano una preziosa risorsa diagnostica per sondare i segnali all'interno dell'FPGA.