Progetto di Sistemi Elettronici LA - Architettura dei Sistemi Integrati - Cdl Elettronica

Docente: Prof. Roberto Guerrieri (Tutore: Tommaso De Marco)

Esercitazioni



VHDL come strumento di progetto di circuiti Digitali su FPGA

Il laboratorio e' a disposizione a cura del personale del CCIB ogni giorno dalle 9 alle 19 a meno che non sia occupato per altre lezioni.

Gli strumenti software a disposizione degli studenti in laboratorio sono Quartus II v9sp2.  E' inoltre disponibile in laboratorio un Help in linea.

E' inoltre possibile scaricare dal sito ALTERA una versione ridotta (Web Edition per Quartus II) del tool. Per l'utilizzo di versioni precedenti alla 8.1 è però necessario richiedere una licenza gratuita, che è possibile ottenere da Altera compilando un apposito form elettronico, che consente di ricevere la licenze per email. Per l'utilizzo di versioni successive alla 8.1 e' invece sufficiente compilare l'apposito form elettronico.

Ricevimento

Per eventuali ricevimenti siete pregati di contattarmi via mail (T.De Marco).
Ad ogni modo il ricevimento si svolgera' presso la sede Arces di viale Pepoli 3/2.

Prossimi Appelli

Consultare le date su AlmaEsami.
Gli esami si terranno nel laboratorio del centro di calcolo della facolta' di ingegneria (CCIB), nel seminterrato dell'edificio del DEIS oppure nel LAB4.

Risultati

  • Prova di laboratorio del 12 novembre 2010  

  • Sono presenti solo i giudizi degli studenti ammessi a sostenere la prova orale.
    I voti sono cosi' organizzati:
    "I" : incerto (sufficiente per sostenere la prova orale)
    "S" : sufficiente
    "B" : buono
    Qualora fosse necessario vengono poi aggiunti dei suffissi per definire in modo piu' preciso la qualita' dell'elaborato (-,--,+,++)

    Per prendere visione del proprio compito contattare T.De Marco.

    Per qualunque informazione riguardo la prova orale e le regole in generale dell'esame (come ad esempio per quanto tempo viene tenuto valido il voto conseguito nella prova di VHDL) bisogna rivolgersi direttamente al professore.

    Slides utilizzate a lezione

    Titolo Anno Slide PDF
    Prima esercitazione 2009/10 vhdl-1.pdf(304KB)
    Seconda esercitazione 2009/10 vhdl-2.pdf(180KB)
    Terza esercitazione 2009/10 vhdl-3.pdf(189KB)

    Simulazione d'esame del 17/06/09: testo.pdf   soluzione.pdf
    Soluzione dettagliata del tema d'esame del 5/7/2004: ciclocomputer.pdf
    Breve guida all'utilizzo di Quartus: guida_quartus.pdf(300KB)

    Slides utili


    Domande e Risposte

    1. Come installare la licenza di Quartus II (per versioni antecedenti alla 8.1)
    2. Alcuni problemi di licenza
    3. Errori in simulazione
    4. Alcuni tipi di dato
    5. Dimensione di vettori di bit in operazioni aritmetiche
    6. Come salvare le forme d'onda

    Esercizi:


    Temi d'esame VHDL:



    Domande e Risposte


    1. Come installare la licenza di Quartus II

    Salvare il file ricevuto in email da Altera sul proprio disco fisso con estensione .dat (es. quartus.dat). In Quartus II, selezionare License Setup dal menu Tools e selezionare il file di licenza appena salvato.

    Torna all'indice

    2. Alcuni problemi di licenza

    E' stato riscontrato il seguente problema di licenza, che affligge la versione 2.2 qualora la scheda di rete non sia collegata fisicamente ad alcun apparato/host. Quartus II non rileva il MAC address della scheda di rete (NIC), come mostrato in figura. Pertanto, il check della licenza non può andare a buon fine. Questo bug non sembra coinvolgere la versione 4.1sp2. Il problema è stato risolto, utilizzando le indicazioni disponibili all'URL: http://support.microsoft.com/kb/articles/Q239/9/24.asp
    La documentazione di Quartus II riferisce inoltre che, in presenza di più schede di rete attive, lo stesso problema potrebbe ripresentarsi. La soluzione è lasciare attiva sullo stesso PC, soltanto la scheda di rete a cui si riferisce la licenza.

    Torna all'indice

    3. Errori in simulazione

    Qualora venissero ottenuti degli errori nel momento in cui si effettuano simulazioni funzionali in Quartus II v4.1, ci si ricordi di eseguire (prima) il comando Generate Functional Simulation Netlist dal menu Processing.

    Torna all'indice

    4. Alcuni tipi di dato

    Per utilizzare alcune operazioni e tipi di dato è necessario caricare (prima della definizione di ogni entity che ne faccia uso) alcuni specifici package della libreria IEEE;
    std_logic use IEEE.std_logic_1164.all;
    unsigned use IEEE.std_logic_unsigned.all;
    signed use IEEE.std_logic_signed.all;
    operazioni aritmetiche use IEEE.std_logic_arith.all;


    Torna all'indice

    5. Dimensione di vettori di bit in operazioni aritmetiche

    In generale occorre tenere in considerazione, in fase di progetto, le ben note regole dell'aritmetica computazionale: In fase di progetto dunque sarà opportuno calcolare le ampiezze dei segnali utilizzati per operazioni aritmetiche:

    [...]
    signal a, b : unsigned(3 downto 0); --n bit
    signal s : unsigned(4 downto 0); --n+1 bit
    signal m : unsigned(7 downto 0); --2n bit
    [...]

    Tuttavia, poichè Quartus interpreta il codice cercando di estrarre operazioni note (somme, contatori, moltiplicatori, etc.) che già possiede in alcune librerie interne, risulta necessario conformarsi alle notazioni di tali componenti. Per le moltiplicazioni vale la regola n bit->2n bit, mentre per le somme il componente che Quartus rileva ed istanzia internamente possiede ingressi ed uscite di pari ampiezza ed un carry out per il bit (n+1)-esimo. Non essendo possibile raggiungere i pin di questo componente "interno", risulta necessario conformarsi a questa notazione nel seguente modo:

    [...]
    --valgono le definizioni di segnali riportate sopra
    s <= conv_unsigned(a,5) + conv_unsigned(b,5); --estensione di 1 bit degli addendi
    m <= a*b;
    [...]

    In questo modo, per le somme, l'addendo viene esteso a n+1 bit all'ingresso del sommatore, mentre i segnali restano in tutti gli altri ambiti a n bit.
    Un'alternativa potrebbe essere quella di svolgere le operazioni di somma utilizzando dati di tipo integer, tramite per esempio tramite la funzione di conversione conv_integer(valore_signed_unsigned). Tuttavia occorre prestare attenzione alle ri-conversioni in signed/unsigned o std_logic_vector, assicurandosi di utilizzare il numero corretto di bit. Qualora si definissero dei segnali di tipo integer definire sempre il loro range di utilizzo:
    signal n : integer range 0 to 255;

    Torna all'indice

    6. Come salvare le forme d'onda

    Per includere nel file di forme d'onda .vwf (vector waveform file) anche le forme d'onda dei segnali di output e dei nodi interni ottenuti dopo la simulazione: In questo modo verranno aggiunti al file .vwf creato dall'utente i risultati della simulazione.

    Torna all'indice


    Microelectronics Group Home Page Staff
    Research Activities Teaching Activity
    Publications Local Stuff
    DEIS Home Page University of Bologna Home Page


    External link, Local link, For local sites only, Stiil empty.