Progetto di Sistemi Elettronici - Cdl Elettronica

Docente: Prof. Roberto Guerrieri (Tutore: Fabio Campi)

BREVE GUIDA ALL' UTILIZZO DI MAX PLUS II PER LO SVILUPPO DI PROGETTI VHDL



Passi di sviluppo del progetto VHDL



1.TEXT EDITING
Altera offre un proprio text editor MaxPlusII->TextEditor, che può essere conveniente utilizzare perchè è integrato con il "Message Editor" e permette di visualizzare un errore sul TE cliccando sulla sua segnalazione.
E' possibile comunque utilizzare qualunque tipo di editor, purchè i files vengano salvati in formato *.vhd.
Si tenga presente che MaxPlus è un tool di place and route più che uno strumento di sintesi.
E' in grado di eseguire sintesi logica su progetti di complessità medio bassa ma impone alcune regole particolari estranee ai tools di sintesi evoluti. In particolare, è obbligatorio sviluppare l'intero design su un unico file , ed il file deve avere il nome della entità pricipale. Max Plus impone anche alcune regole di sintassi diverse dal VHDL standard, che verranno introdotte nel corso delle esercitazioni.

2.SINTESI LOGICA (NETLIST EXTRACTION)
Una volta editato il file e' necessario indicare che i passi seguenti dovranno essere eseguiti su di esso, specificando File->Set project to current file.
La finestra di compilazione viene attivata dal menu MaxPlusII->Compiler. Esistono due livelli di compilazione: la compilazione funzionale, selezionata da Processing->Functional SNF extractor esegue un controllo sintattico del VHDL e una sintesi logica (o netlist extraction). Tale processo è molto più rapido della compilazione completa, che comprende and il Place and Route (o device Fitting) e la determinazione dei ritardi (Timing Extraction), ed è quindi consigliata durante la scrittura del codice, quando il passo di compilazione dovrà essere ripetuto iterativamente.

3.SIMULAZIONE FUNZIONALE
Per eseguire la simulazione funzionale (simulazione che non tenga conto dei ritardi fisici introdotti dalla propagazione dei segnali attraverso le logic cells e attraverso le connessioni introdotte dal place and route) è necessario "costruire" le forme d'onda di simulazione attraverso il Waveform editor (MaxPlusII->Waveform Editor).
Tutte le porte ed i segnali interni al progetto possono essere aggiunti alla finestra dell'editor (Node -> Enter nodes from SNF).
Dovranno essere specificati tutti gli ingressi della entità, oltre ai segnali interni e alle uscite che interessa visualizzare. I segnali vettoriali possono essere simulati/assegnati sia singolarmente sia a livello di bus.
Per forzare un valore su un segnale di ingresso evidenziare l'intervallo di tempo desiderato e utilizzare tasto destro->(Insert/Overwrite value). I tasti sulla sinistra della finestra rappresentano shorcuts alle funzioni appena introdotte.
L'intervallo di simulazione è fissato dal menu' File->End Time, ma per avere un numero superiore di commutazioni è possibile rendere più fitta la griglia di simulazione (Options-> Grid Size).

Nota: In alternativa è possibile editare via keyboard le forme d'onda come files ASCII. Non è possibile però utilizzare TESTBENCHES per produrre tali files di stimolo, come è invece uso comune per tutti gli strumenti di simulazione VHDL.
Il simulatore è attivato da MaxPlusII->Simulator. La sua esecuzione (START) completerà la finestra del waveform editor con le forme d'onda dei segnali specificati.

4.PLACE AND ROUTE (DEVICE FITTING EXTRACTION)
Selezionando Processing->Timing SNF extractor la compilazione comprende anche i passi di place and route e timing extraction.
Il progettista può scegliere il dispositivo FPGA target attraverso il menù Assign->Device.
Mentre e' obbligatorio scegliere la famiglia di dispositivi, il codice del dispositivo da utilizzare dipende dalle dimensioni del design e quindi può essere lasciato al tool. Tra gli altri, la compilazione completa produce il file POF che rappresenta lo stream binario di dati che viene usato per programmare la FPGA, ed il file REPORT descritto al punto 6.

5.POST ROUTE SIMULATION
A differenza di quanto si aveva al punto 3., il file SNF prodotto al punto 4. mantiene informazione sui ritardi fisici associati al design compilato. Ripetendo il passo 3. sara' quindi possibile ottenere una nuova simulazione, in cui le uscite vengono aggiornate tenendo conto dei ritardi fisici. Ovviamente, se la frequenza di commutazione degli ingressi specificata fosse troppo elevata, il passo 3. avrebbe comunque successo mentre il passo 5. potrebbe fallire.

6.TIMING ANALYSIS and FINAL REPORT
Al termine del progetto, si esegue un analisi delle prestazioni del circuito relizzato per valutarne la efficienza.
Il principale criterio di valutazione del circuito realizzato e' la velocita' di elaborazione. La "Timing Analysis" del circuito (MaxPlus->Timing analyzer) offre tre diversi strumenti:
  • La delay matrix (Analysis->Delay Matrix descrive i tempi di risposta di ogni uscita a commutazioni sugli ingressi. E' evidente che se il circuito fosse del tutto un automa di Moore, si avrebbe dipendenza delle uscite solo dall'ingresso CLK, mentre circuiti puramente combinatori avranno dipendenza da tutti gli ingressi.
  • I valori descritti dalla delay matrix non sono comunque sufficienti a determinare la frequenza massima di funzionamento del dispositivo, in quanto potrebbe esistere al suo interno un percorso nascosto tra due registri piu' lungo del piu' lungo percorso tra ingresso ed uscita (occorrenza molto comune in caso di FSMs). Una valutazione complessiva della max frequenza di elaborazione del circuito realizzato si puo' ottenere dal menu Analysis->Registered Performance.
  • Infine la Setup/Hold Matrix (menu Analysis->Setup/Hold Matrix) determina le caratteristiche di Setup ed Hold Time che devono essere mantenute sui pin di ingresso del dispositivo perche' ne sia tutelato il funzionamento corretto.

    Le prestazioni del dispositivo in termini di area occupata possono essere valutate leggendo il file .rpt (Report prodotto dalla simulazione. In particolare, e' di interesse determinare il numero di I/O pins e di L.C. (logic cells) occupate, ed a quale sottoparte del dispositivo utilizzato appartengono tali lc. Per valutare quanta parte della FPGA e' dedicata a blocchi sequenziali va' inotre valutato il numero di F/F istanziati. Tra le altre informazioni descritte, il file RPT permette di determinare la funzione logica di ogni pin e di ogni LC del dispositivo, oltre che al codice del dispositivo selezionato.

    6.FLOORPLAN EDITOR
    I design che si useranno per le esercitazioni non richiedono un grado di complessita' tale da richiedere interventi manuali sul floorplan della FPGA usata. E' possibile in ogni modo visualizzare graficamente i risultati del Place and Route direttamente sulla mappa del dispositivo attivando il Floorplan Editor (MaxPlus->Floorplan Editor).


    ACRONIMI DEI FILES TEMPORANEI PRODOTTI DA ALTERA

    POF : Programmer Oobject File -> Stream di bit che deve essere usato per la programmazione fisica della FPGA
    RPT : Report File -> Prodotto dal passo di Place & Route (fitting) descrive la occupazione di risorse del design sul file selezionato
    SNF : Simulation Netlist File -> File prodotto dalla simulazione, e come essa puo' essere solo funzionale o fisica.
    SCF : Simulation Constraint File -> File che racchiude le informazioni per la simulazione: Editing degli ingressi e uscite prodotte.