Man mano che la complessità e la densità dei circuiti stampati continuano ad aumentare, il compito di testare e eseguire il debug di punti di prova limitati utilizzando oscilloscopi e analizzatori logici è diventato sempre più oneroso e l'efficienza è diventata sempre più bassa. I simulatori EDA emergenti e i browser di forma d'onda utilizzano migliaia di domini temporali per monitorare i segnali e possono notevolmente aumentare la portata del debug. Questo articolo introdurrà in dettaglio le potenti funzioni della tecnologia di simulazione a livello di scheda e il suo ruolo nell'abbreviare il ciclo di progettazione e produzione del circuito stampato.
Non importa quanto siano avanzati gli strumenti di sviluppo, grandi o piccoli difetti appariranno inevitabilmente durante l'intero processo di sviluppo e possono essere in agguato in varie fasi di progettazione, implementazione e CAD. Non è terribile avere difetti. È importante trovare ed eliminare questi difetti il prima possibile, in modo da risparmiare efficacemente denaro e tempo. Il ruolo degli strumenti di simulazione a livello di scheda è quello di aiutare i progettisti PCB a eseguire il lavoro di debug più velocemente prima e dopo la produzione del circuito stampato.
Tecnologia di simulazione a livello di bordo
I passaggi principali della simulazione a livello di bordo sono i seguenti:
a. Elaborare un piano di prova
Il primo passo della simulazione consiste nello sviluppare un piano di prova completo, che dovrebbe rispecchiare pienamente i requisiti specifici del prodotto in termini di simulazione a livello di bordo. Il piano di prova può essere diviso in due fasi da implementare, la fase 1 è un test di interfaccia unico; La fase 2 è la prova generale di funzione del circuito stampato.
Fase 1 deve definire chiaramente il tipo e l'ambito dell'interfaccia e isolarli completamente, come l'isolamento tra il processore e l'interfaccia di memoria. Quindi effettuare un test case per verificare le prestazioni della connessione e le caratteristiche di temporizzazione dell'interfaccia.
Fase 2richiede che il circuito sia diviso in più blocchi funzionali (un blocco funzionale può essere dotato di una o più interfacce). Dopo che ogni interfaccia è confermato di funzionare correttamente nella prima fase, l'obiettivo può essere bloccato sulla funzione di un singolo modulo, cioè l'intero circuito stampato è considerato come una scatola nera. In questo momento, è possibile utilizzare le funzioni dettagliate del modulo di test vettoriale appropriato per affrontare i problemi di temporizzazione sintetizzati e i dati specifici del blocco di funzioni.
b. Creazione di un ambiente di simulazione
Prima della simulazione, è necessario creare un ambiente di simulazione completo per supportare, elaborare e feedback vari segnali di ingresso e misurare i segnali di uscita.
L'ambiente di simulazione dovrebbe includere quanto segue: 1. Controllo e monitoraggio; 2. Netlist; 3. Modello; 4. Struttura directory;
1. Controllori e monitor
Dopo la preparazione del piano di prova, errori o difetti vengono registrati automaticamente. Quando il segnale di eccitazione in ingresso viene aggiunto al circuito stampato, tutte le persone sperano di ottenere il risultato di uscita ideale, ma il risultato della simulazione può essere buono o cattivo. In questo momento, ci vuole molto tempo per analizzare il risultato di output. Se scrivi uno script per il confronto, puoi evitare questo lavoro di analisi che richiede molto tempo. Inoltre, l'uso di bandiere per indicare le condizioni di guasto durante la simulazione può ottenere lo stesso effetto.
Quando si simulano problemi di temporizzazione e integrità dei dati, si chiama monitor l'attività utilizzata per indicare i difetti e lo script utilizzato per simulare le caratteristiche funzionali e confrontare i risultati finali è chiamato checker. Questo metodo può richiedere un po 'di tempo all'inizio, ma può ridurre notevolmente il tempo per la ricerca delle forme d'onda e l'analisi dei risultati nella fase di prova effettiva.
2. Netlist
Gli strumenti di input schematici comunemente usati hanno tutti la funzione di generare netlist Verilog/VHDL. Queste netlist contengono tutti i componenti e le connessioni di rete tra i componenti. Inoltre, i componenti e i nomi delle porte nella netlist sono rappresentati da simboli.
3. Modello
La simulazione richiede il modello HDL di ogni componente. La libreria di modelli Verilog/VHDL del chip standard può essere ottenuta da Synopsys o da altri fornitori. Le funzioni di questi modelli sono completamente simili ai componenti effettivi e la tempistica può essere modificata in modo flessibile per soddisfare le più recenti esigenze dei componenti. Come accennato in precedenza, i nomi dei componenti e delle porte nella netlist sono gli stessi dei nomi dichiarati quando viene inserito lo schema, ma i nomi dei componenti e delle porte utilizzati nel modello effettivo possono essere diversi da quelli utilizzati nella netlist. Per collegare correttamente le porte della netlist al modello, è necessario creare un file di pacchetto. Il file fornisce solo la relazione di mappatura delle porte tra la netlist e il modello effettivo ed è specificamente progettato per quei componenti con nomi di porte diversi nel modello e nella netlist. Costruita. Ad esempio, il nome simbolo di un pin componente è OE_, ma la porta nel modello è denominata oe_n. In questo momento, tale file di pacchetto è necessario per stabilire la relazione di connessione tra il pin simbolo nella netlist e la porta modello.
4. Struttura directory
Di solito i progettisti PCB devono stabilire la struttura di directory corretta per tenere traccia dei segnali di ingresso / uscita del processo di simulazione. Queste directory possono essere utilizzate per distinguere diversi tipi di file ambientali. Questi tipi di file includono: cs, modelli di sviluppo locale, monitor / ispettori, script, netlist a livello di scheda, file di log, file di dump, e così via. Una buona struttura di directory può facilitare la gestione e il monitoraggio di tutti i file di ambiente / codice.
Utilizzare il framer/deframer come oggetto di blocco funzionale simulato (supponendo che il controller bus PCI, il controller di sistema e l'arbitro possano funzionare normalmente, il test da fare è solo per il framer/deframer del sistema ), inserire il segnale di eccitazione dal lato PCI, controllare il risultato in uscita sul lato della linea digitale T1/E1 e quindi farlo il contrario.
Le seguenti sono diverse situazioni di prova tipiche: 1. Frame con contenuto di dati diverso; 2. Ritardo del frame; 3. Super frame o super frame esteso con diverse impostazioni dei parametri; 4. Frame con errore CRC Attendere.
È possibile simulare altri blocchi di funzione nello stesso modo e controllare i risultati della simulazione. Durante questa fase di prova possono verificarsi i seguenti difetti: 1. Due interfacce diverse in blocchi di funzioni diversi hanno lo stesso nome di rete, e questo di solito causa un cortocircuito. 2. problemi di integrazione del sistema, come il routing del segnale saltato da un'interfaccia all'altra. 3. Il formato dati di un'interfaccia non può essere supportato da altre interfacce. Questa fase è anche chiamata simulazione del canale dati del circuito stampato.
Abilità di simulazione
Di seguito sono riportati alcuni suggerimenti per la simulazione a livello di scheda: 1. Per i componenti PCB programmabili, provare a fare uso di file di back-labeling. Questi file contengono informazioni prevedibili sulla tempistica del segnale di ingresso e di uscita; 2. Controllare tutte le descrizioni della rete di alimentazione nella netlist e compilare immediatamente se ci sono omissioni; 3. La netlist finale non sarà incollata al circuito stampato. I componenti di cui sopra devono essere notati.
Sebbene la simulazione funzionale abbia alcuni dei vantaggi eccezionali di cui sopra, ha anche alcune limitazioni, rendendo i risultati della simulazione non completamente analoghi al circuito stampato reale. Questa limitazione è indicata in: 1. La mancanza di diverse identificazioni della rete di alimentazione, perché in HDL, anche se la rete di alimentazione può essere dichiarata ma il valore specifico non può essere indicato, ad esempio 5V o 3.3V. La versione corrente di HDL non supporta ancora questa funzione. 2. HDL non può simulare un'interfaccia analogica. 3. Questo tipo di simulazione non può trovare problemi relativi alla capacità di azionamento. 4. L'esecuzione di un test di memoria richiede un enorme file dump e un lungo tempo di esecuzione.