matite e gomma

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0

Validazione XHTML 1.0 Validazione CSS 3
Logo del Dipartimento di Matematica e Informatica, Insegnamento di Sistemi dedicati, link al Forum

Introduzione all'uso combinato di Gezel con un simulatore VHDL

Esercitazione 01 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2019-20

Indice

  1. Introduzione all'uso combinato di Gezel con un simulatore VHDL
  2. argomenti dell'esercitazione
  3. modelli di hardware in Gezel
  4. esempio: traiettorie di Collatz
  5. traduzione automatica in VHDL e simulazione
  6. note operative
  7. riferimenti

argomenti dell'esercitazione

in questa esercitazione si trattano:

modelli di hardware in Gezel

circuiti digitali sincroni a singolo clock, composti da interconnessione di:

dunque anche componenti di largo uso quali: registri, addizionatori, multiplatori ecc.

non si possono modellare: circuiti asincroni, con latch, con clock multifase ecc.

esempio:

Schema di un componente hardware

Modello Gezel del componente hardware

Comportamento del componente hardware

Schaumont, Fig. 1.1 - Modelli e comportamento di un componente hardware

esempio: traiettorie di Collatz

riconsideriamo l'esempio visto nella prima lezione:

Datapath hardware per la traiettoria di Collatz da <i>x</i><sub>0</sub>

dp collatz ( in start : ns(1) ; in x0 : ns(16) ;
                  out t : ns(32)) {
    reg r : ns(32) ;
    sig x : ns(32) ;
    always {
          t = r ;
          x = start ? x0 : r ;
          r = x[0] ? x + (x >> 1) + 1 : x >> 1 ;
    }
}

che uso possiamo farne?

gli strumenti di sviluppo industriali richiedono descrizioni in linguaggi standard, quali VHDL o Verilog...

traduzione automatica in VHDL e simulazione

il generatore di codice della piattaforma Gezel produce una traduzione in VHDL sintetizzabile

esperienza di laboratorio:

  1. installare il software di base Gezel e il suo generatore di codice VHDL
  2. reperire il file sorgente collatz.fdl contenente la descrizione Gezel dell'esempio
  3. eseguire la traduzione da linea di comando: fdlvhd collatz.fdl
  4. installare Quartus Prime Lite 16.1 prodotto da Intel Corp. e lanciarlo, quindi in tale sistema:
  5. creare un nuovo progetto di nome collatz
  6. copiare i file .vhd prodotti al passo 3 nella cartella del progetto
  7. assegnare i file suddetti al progetto e compilare
  8. controllare eventuali messaggi di errore o warning
  9. impostare il clock a una frequenza che assicuri un valore positivo per lo slack di caso peggiore
  10. creare forme d'onda di test per il circuito, con un input di clock corrispondente alla frequenza del passo precedente e il valore 27 per l'inizio della traiettoria
  11. lanciare l'esecuzione della simulazione funzionale
  12. ripetere la simulazione per differenti valori di inizio della traiettoria

note operative

alcune note per l'esecuzione dell'esperienza su Ubuntu 16.04:

  1. note per l'installazione del generatore Gezel di codice VHDL
  2. note per l'installazione e lancio di Quartus Prime Lite 16.1 su Ubuntu 16.04
  3. note sugli assegnamenti a un progetto Quartus
  4. note sulla regolazione del clock con Quartus TimeQuest Analysis
  5. note sull'uso di Quartus ModelSim

riferimenti

letture raccomandate:

per ulteriore consultazione:

altri materiali utili per l'esperienza di laboratorio proposta: