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

Sistemi di bus su chip, sviluppo di SoC con FPGA

Esercitazione 10 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2016-17

Indice

  1. Sistemi di bus su chip, sviluppo di SoC con FPGA
  2. argomenti dell'esercitazione
  3. standard di bus su chip
  4. componenti di bus
  5. realizzazione fisica di bus su chip
  6. convenzioni sui nomi nei bus
  7. diagrammi di temporizzazione nei bus
  8. definizione di un bus generico
  9. corrispondenza di bus standard al bus generico
  10. esperienza di laboratorio
  11. riferimenti

argomenti dell'esercitazione

in questa esercitazione si trattano:

standard di bus su chip

quattro famiglie di standard di bus su chip, fra le più in uso:

due classi principali di configurazioni: condivisi e punto-punto

si considerano appresso un bus generico condiviso e uno punto-punto, astraendo caratteristiche comuni a tutti questi


 
Bus
High-performance
shared bus
Periferal
shared bus
Point-to-point
bus

AMBA v3 AHB APB  
AMBA v4 AXI4 AXI4-lite AXI4-stream
CoreConnect PLB OPB  
Wishbone Crossbar topology Shared topology Point to point topology
Avalon Avalon-MM Avalon-MM Avalon-ST

AHB AMBA highspeed bus, APB AMBA peripheral bus, AXI advanced extensible interface,
PLB processor local bus, OPB onchip peripheral bus, MM memory-mapped, ST streaming

Schaumont, Table 10.1 - Bus configurations for existing bus standards

componenti di bus

un bus condiviso su chip consiste tipicamente di più segmenti, connessi da ponti; ogni transazione è iniziata da un master, a cui risponde uno slave; se questi stanno su segmenti diversi, il ponte agisce da slave su uno dei segmenti e da master sull'altro, effettuando la traduzione degli indirizzi

quattro classi di segnali di bus:

  • dati : linee dati separate per lettura e scrittura
  • indirizzi : la decodifica può essere centralizzata o locale negli slave
  • comandi : per distinguere lettura da scrittura, spesso qualificate da più segnali
  • sincronizzazione : clock, distinti per segmenti diversi, e altri, quali: segnali di handshake, time-out ecc.

Schaumont, Figura 10.1 - (a) esempio di sistmea di bus multi-master 
          segmentato. (b) spazio di indirizzamento per lo stesso bus

Schaumont, Figure 10.1 - (a) Example of a multi-master segmented bus system.
(b) Address space for the same bus

Schaumont, Figura 10.2 - bus punto-punto

Schaumont, Figure 10.2 - Point-to-point bus

un bus punto-punto è una connessione fisica dedicata fra un master e uno slave, per trasferimenti di dati in flussi (stream) illimitati

  • non ha linee di indirizzo, ma può averne per canale logico nel caso di multiplazione del bus fisico per più flussi di dati
  • sincronizzazione molto simile al protocollo di handshake descritto prima

realizzazione fisica di bus su chip

la figura 10.3 mostra la disposizione fisica di un tipico segmento di bus su chip, con due master e due slave, dove le porte AND e OR al centro del diagramma fungono da multiplatori, sia delle linee indirizzo che delle linee dati

Schaumont, Figura 10.3 - it: didascalia / en: caption text

Schaumont, Figure 10.3 - Physical interconnection of a bus. The *_addr, *_wdata, *_sdata signals are signal vectors. The *_enable, *_grant, *_request signals are single-bit signals

convenzione sui nomi dei segnali di lettura/scrittura di dati:

l'arbitraggio del bus assicura che solo un componente per volta piloti qualsiasi linea del bus

convenzioni sui nomi nei bus

una convenzione sui nomi aiuta a dedurre funzionalità e connettività di linee di bus dai loro nomi

il nome di un pin di un componente rifletterà la funzionalità del pin; segnali di bus, creati da interconnessioni di pin di componenti, seguiranno anch'essi una convenzione, per evitare confusione fra segnali simili

in alcuni sistemi di bus si includono nel nome del segnale di bus entrambi i nomi delle istanze di master e slave

l'adozione delle convenzioni del particolare bus in uso evita errori di codifica ed errori di connessione, rende il codice riusabile e semplifica il debugging e la verifica

diagrammi di temporizzazione nei bus

per la natura inerentemente parallela di un sistema di bus, i diagrammi di temporizzazione sono in ampio uso per descrivere le relazioni temporali fra segnali di bus

Schaumont, Figura 10.4 - notazione dei diagrammi di temporizzazione 
          nei bus

Schaumont, Figure 10.4 - Bus timing diagram notation

il diagramma in figura 10.4 mostra la notazione per descrivere le attività in un bus generico per cinque cicli di clock

  • i segnali fanno riferimento al fronte di salita del clock, mostrato in alto
  • i segnali di input in un ciclo di clock hanno il valore acquisito prima del suo fronte di inizio
  • i segnali di output hanno il valore prodotto in un ciclo di clock dopo il suo fronte di fine

questi diagrammi sono molto utili per descrivere le attività su un bus in funzione del tempo

definizione di un bus generico

la tabella 10.2 elenca i segnali di un sistema di bus generico, astraendo da specifici sistemi di bus


Signal name Meaning

clk Clock signal. All other bus signals are references to the upgoing clock edge
m_addr Master address bus
m_data Data bus from master to slave (write operation)
s_data Data bus from slave to master (read operation)
m_rnw Read-not-Write. Control line to distinguish read from write operations
m_sel Master select signal, indicates that this master takes control of the bus
s_ack Slave acknowledge signal, indicates transfer completion
m_addr_valid Used in place of m_sel in split-transfers
s_addr_ack Used for the address in place of s_ack in split-transfers
s_wr_ack Used for the write-data in place of s_ack in split-transfers
s_rd_ack Used for the read-data in place of s_ack in split-transfers
m_burst Indicates the burst type of the current transfer
m_lock Indicates that the bus is locked for the current transfer
m_req Requests bus access to the bus arbiter
m_grant Indicates bus access is granted

Schaumont, Table 10.2 - Signals on the generic bus

corrispondenza di bus standard al bus generico

la tabella 10.3 mostra la corrispondenza di alcuni segnali del bus generico a segnali equivalenti dei bus CoreConnect/OPB, AMBA/APB, Avalon-MM e Wishbone


generic CoreConnect/OPB AMBA/APB Avalon-MM Wishbone

clk OPB_CLK PCLK clk CLK_I (master/slave)
m_addr Mn_ABUS PADDR Mn_address ADDR_O (master)
        ADDR_I (slave)
m_rnw Mn_RNW PWRITE Mn_write_n WE_O (master)
m_sel Mn_Select PSEL   STB_O (master)
m_data OPB_DBUS PWDATA Mn_writedata DAT_O (master)
        DAT_I (slave)
s_data OPB_DBUS PRDATA Mb_readdata DAT_I (master)
        DAT_O (slave)
s_ack Sl_XferAck PREADY Sl_waitrequest ACK_O (slave)

Schaumont, Table 10.3 - Bus signals for simple read/write on Coreconnect/OPB, ARM/APB, Avalon-MM and Wishbone busses

esperienza di laboratorio

i due tutorial sullo strumento Qsys, accessibile da Quartus, indicati nei riferimenti, rispettivamente mostrano come:

si propone di replicare l'esecuzione di questi due esperimenti e di esporre, in una relazione sull'esperienza, le difficoltà incontrate e le soluzioni adottate per superarle

riferimenti

letture raccomandate:

letture per ulteriori approfondimenti:

materiali utili per l'esperienza di laboratorio proposta: