In che modo il design ASIC è diverso dalla sintesi FPGA HDL?


42

Ho avuto qualche esperienza con le suite di strumenti FPGA / HDL come Xilinx ISE, Lattice Diamond, ecc. Il flusso di lavoro generale sta scrivendo Verilog / VHDL, simulazione, test e quindi programmazione di FPGA.

Ho sentito un paio di persone dire che il design ASIC è molto diverso. Quali sono i set di strumenti utilizzati per i due principali tipi di ASIC, ASIC a livello di gate e ASIC a livello di transistor? Ho cercato strumenti di sintesi di alto livello come Catapult C e Cadence C su Silicon, ma non ci ho ancora provato. Puoi spiegare i diversi tipi di strumenti disponibili nel campo ASIC / FPGA che possono cambiare / accelerare il tipico flusso di lavoro HDL?

Risposte:


39

Tipicamente il design ASIC è uno sforzo di squadra a causa della complessità e della quantità di lavoro. Fornirò un ordine approssimativo di passaggi, sebbene alcuni passaggi possano essere completati in parallelo o fuori servizio. Elencherò gli strumenti che ho usato per ogni compito, ma non sarà enciclopedico.

  1. Costruisci una libreria di celle. (In alternativa, la maggior parte dei processi ha librerie di gate disponibili in commercio. Lo consiglierei a meno che tu non sappia che hai bisogno di qualcosa che non è disponibile.) Ciò comporta la progettazione di più gate di resistenza dell'unità per tutte le funzioni logiche necessarie, la progettazione di driver / ricevitori di pad, e qualsiasi macro come un moltiplicatore di array o memoria. Una volta progettato e verificato lo schema per ogni cella, è necessario progettare il layout fisico. Ho usato Cadence Virtuoso per questo processo, insieme a simulatori di circuiti analogici come Spectre e HSPICE .

  2. Caratterizza la libreria di celle. (Se si dispone di una libreria di gate di terze parti, ciò viene generalmente eseguito per l'utente.) Ogni cella della libreria deve essere simulata per generare tabelle di temporizzazione per Static Timing Analysis (STA). Ciò implica prendere la cella finita, estrarre i parassiti del layout usando Assura , Diva o Calibre e simulare il circuito in condizioni di ingresso e carichi di uscita variabili. Ciò crea un modello di temporizzazione per ogni gate compatibile con il pacchetto STA. I modelli di temporizzazione sono generalmente nel formato di file Liberty . Ho usato Silicon Smart e Liberty-NCXper simulare tutte le condizioni necessarie. Tieni presente che probabilmente avrai bisogno di modelli di temporizzazione nel "caso peggiore", "nominale" e "nel caso migliore" affinché la maggior parte dei software funzioni correttamente.

  3. Sintetizza il tuo design. Non ho esperienza con compilatori di alto livello, ma alla fine della giornata il compilatore o la catena di compilatori devono prendere il tuo progetto di alto livello e generare una netlist di livello gate. Il risultato della sintesi è la prima sbirciatina che si ottiene dalle prestazioni teoriche del sistema e in cui vengono affrontati per la prima volta i problemi di resistenza dell'unità. Ho usato Design Compiler per il codice RTL.

  4. Posiziona e indirizza il tuo design. Questo prende la netlist a livello di gate dal sintetizzatore e la trasforma in un design fisico. Idealmente, questo genera un layout pad-to-pad pronto per la fabbricazione. È davvero facile impostare il tuo software P&R in modo che commetta automaticamente migliaia di errori DRC, quindi non tutti i giochi e i giochi in questo passaggio. La maggior parte dei software gestirà i problemi di resistenza dell'unità e genererà alberi di clock come indicato. Alcuni pacchetti software includono Astro, compilatore IC, Silicon Encounter e Silicon Ensemble. Il risultato finale da luogo e percorso è la netlist finale, il layout finale e i parassiti del layout estratto.

  5. Analisi temporizzata post-layout. L'obiettivo qui è verificare che il tuo progetto soddisfi le tue specifiche di temporizzazione e che non ci siano problemi di configurazione, sospensione o gating. Se i requisiti di progettazione sono rigidi, potresti finire per passare molto tempo qui a correggere errori e ad aggiornare le correzioni nel tuo strumento di P&R. Lo strumento STA finale che abbiamo usato è stato PrimeTime .

  6. Verifica fisica del layout. Una volta che un layout è stato generato dallo strumento P&R, è necessario verificare che il progetto soddisfi le regole di progettazione del processo (Design Rule Check / DRC) e che il layout corrisponda allo schema (Layout versus Schematic / LVS). Questi passaggi devono essere seguiti per garantire che il layout sia cablato correttamente e producibile. Ancora una volta, alcuni strumenti di verifica fisica sono Assura , Diva o Calibre .

  7. Simulazione del progetto finale. A seconda della complessità, potresti essere in grado di eseguire una simulazione a livello di transistor utilizzando Spectre o HSPICE , una simulazione "spice veloce" tramite HSIM o una simulazione completamente digitale utilizzando ModelSim o VCS . Dovresti essere in grado di generare una simulazione con ritardi realistici con l'aiuto del tuo strumento STA o P&R.

Iniziare con una libreria di gate esistente consente un notevole risparmio di tempo, oltre all'utilizzo di macro a vantaggio del progetto, come memoria, un microcontrollore o blocchi di elaborazione alternativi. Anche la gestione della complessità del design è una parte importante: un singolo clock sarà più facile da verificare rispetto al circuito con domini di clock multipli.


2
Da quando hai citato Virtuoso, Cadence fornisce una toolchain completa per il design (penso che si chiami Opus), dove è possibile iniziare dagli schemi, posare la singola cella, valutare gli effetti parassiti, caratterizzarlo e poi costruirlo al livello superiore .
clabacchio

1
Penso che ogni grande fornitore offra una toolchain completa. Alla fine abbiamo utilizzato più fornitori nella nostra toolchain e in questo modo abbiamo potuto utilizzare gli strumenti che conoscevamo di più o che avevano la migliore reputazione del settore.
W5VO

1
La scelta di strumenti per il supporto di librerie o kit di progettazione è praticamente un requisito. Se non si utilizza la versione supportata di un particolare software, alcune incompatibilità potrebbero compromettere la progettazione o fornire letture errate. Detto questo, la stragrande maggioranza degli strumenti EDA che ho visto funzionare su sistemi Unix / Linux. La maggior parte ha curve di apprendimento ripide.
W5VO

1
@MartinThompson Assolutamente. Più spingi i confini della tua tecnologia (ASIC / FPGA) più critici sono questi passaggi. Detto questo, le versioni ASIC di questi strumenti ti danno molta più corda per metterti nei guai.
W5VO

1
Si noti che 1 e 2 non sono una parte generale del design. Questi passaggi fanno parte della cosiddetta "qualificazione del processo" e i risultati (librerie completamente caratterizzate) sono forniti dal fornitore FAB. Ma alcune aziende stanno realizzando "design completamente personalizzato" e devono completare 1 e 2 da soli.
Ale..chenski,

7

La risposta di W5VO tende a concentrarsi sul back-end, e questa è una grande differenza tra i flussi ASIC e FPGA; ma manca la parte di verifica del design digitale.

Quando ottenere un design sul silicio può costare un milione di dollari e più, e puoi imballare molte più porte utilizzabili su un ASIC rispetto a un FPGA, quindi trascorri molto più tempo lontano dal laboratorio e dai PCB davanti alle workstation che eseguono simulator farm emulatori e test di scrittura per verificare in modo più completo un progetto ASIC prima di rilasciarlo per la produzione. I progettisti FPGA tendono a svolgere gran parte dei loro test utilizzando l'FPGA nel sistema di cui diventeranno parte.


Aggiungerei che il flusso di lavoro di base per un designer digitale non è molto diverso tra ASIC e FPGA, ma ASIC ha molta più flessibilità in termini di macro / micro elementi disponibili, posizionamento e routing, mentre FPGA è limitato ai loro blocchi logici prefabbricati e limitato nella topologia di interconnessione. Pertanto FPGA non è in grado di raggiungere livelli prestazionali di ASIC e può imporre soluzioni di progettazione leggermente diverse.
Ale..chenski,

Ciao Ali Chen. Se il design digitale e la verifica digitale sono considerati separati, il flusso per la progettazione puramente digitale è più vicino per FPGA vs ASIC, ma c'è una grande separazione nella verifica, come ho già detto. :-)
Paddy3118
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.