www-lia.deis.unibo.it/materiale/retilogiche
Componente di libreria Editor Grafico File bsf (Block Symbol File) Editor Grafico File bdf File -> Create/Update ->Create Symbol Files Analisi ed Elaborazione 1) Processing -> Start -> Start Analysis & Elaboration 2) Processing -> Generate Functional Simulation Netlist Generazione Netlist Forme d’onda Simulazione 3) Processing -> Start Simulation
Impostazioni di simulazione Quartus prevede due tipi di simulazioni: Timing e Functional. TIMING FUNCTIONAL Fronti Ideali Ritardi Reali Nulli I fronti sono sempre ideali, cioè perfettamente verticali. I ritardi sono considerati nulli per la ‘Functional’ e non nulli per la Timing. Il ritardo non è uguale per tutti i gate e varia a seconda del ‘Device’ selezionato. Il tipo di simulazione si seleziona da Assignements -> Settings… -> Simulator Settings
Vi ricordo che: I file BDF e VWF coinvolti nei processi di analisi, sintesi, simulazione ecc… devono essere aggiunti al progetto (Project -> Add/Remove Files…) Quindi vanno aggiunti anche i file BDF relativi ai componenti di libreria! Non è necessario aggiungere i file BSF.
Editor Grafico Analysis & Synthesis 1) Processing -> Start Compilation Fitting Assembling Timing Analysis Forme d’onda Simulazione 2) Processing -> Start Simulation
Timing simulation Per effettuare una Timing Simulation in Quartus II sono necessarie alcune operazioni in più rispetto alla Functional Simulation. Per quest’ultima basta creare una rete logica e Quartus provvederà a creare un Netlist da simulare, mentre per la Timing, Quartus crea anche dei file per la sintesi su FPGA. Analysis & Synthesis analizza il file bdf e lo ‘compila’ creando un file simile alla Netlist della Funcional. Fitting adatta il circuito da noi creato al ‘Device’ che abbiamo selezionato, in base a come è costruito l’FPGA. Un circuito molto complesso potrebbe non essere sintetizzato su un FPGA di basso di livello e quindi bisognerebbe usare un FPGA di livello superiore (NON È IL NOSTRO CASO). Assembling genera i file che andranno caricati sull’FPGA. Timing Analysis calcola i ritardi tra ogni nodo del circuito basandosi sui ritardi del ‘Device’ selezionato (la libreria dei Device contiene tutte le informazioni necessarie: ritardi, memoria, velocità…) La Timing Simulation simula il nostro circuito usando i ritardi calcolati nella Timing Analysis
Consigli per la timing simulation Gli FPGA presenti in libreria sono circuiti che operano a frequenze anche molto alte (fino a 500 MHz o anche più) dunque i ritardi dei gate logici sono dell’ordine dei nanosecondi. Impostate un END TIME tenendo conto del tempo necessario affinché l’uscita si stabilizzi, quindi non impostarlo ad un valore troppo basso e nemmeno ad uno troppo alto altrimenti un end time troppo alto e un circuito molto complesso possono richiedere molti secondi per l’analisi. Utilizzate lo strumento Time Bar (linea verticale blu che si sposta sull’asse dei tempi nel waveform file) spostandovi con le frecce della tastiera per analizzare i segnali.
Alee statiche La Timing Simulation è indispensabile se si vogliono analizzare le alee di una rete logica. L’alea statica è un fenomeno indesiderato che si manifesta nei circuiti logici a causa del ritardo di propagazione dei segnali attraverso i gate. Questo ritardo fa si che in ingresso ad un gate ci sia, per un istante di tempo ,un segnale non corretto che genera un segnale d’uscita non corretto. Il segnale d’uscita subisce la seguente variazione: segnale corretto – non corretto – corretto. Per eliminare le alee statiche in una mappa di Karnaugh bisogna raggruppare gli ‘1’ adiacenti di raggruppamenti diversi per le espressioni SP (per le PS si raggruppano gli ‘0’). L’alea statica è presente solo nei circuiti a due livelli.