Post on 15-Feb-2019
transcript
FLUSSO DI PROGETTO PER SOPC
30 Aprile 2010
Corso di Laurea Specialistica in Ingegneria Informatica
Facoltà di Ingegneria
UNIVERSITA DEGLI STUDI DI
NAPOLI FEDERICO II’
Ing. Carmelo Lofiego – carmelo.lofiego@unina.it
CORSO DI CALCOLATORI ELETTRONICI II
Prof. A. Mazzeo – mazzeo@unina.it
Flusso di progetto per un sistema digitale
Specifiche del sistema
Funzionali (comportamento ingresso/uscita, interfaccia con l’esterno, … )
Non- funzionali (throughput, area, timing, potenza dissipata, … )
Descrizione HDL
Dalle specifiche all’architettura del sistema
Simulazione funzionale
Occorre verificare che il comportamento funzionale del sistema sia congruente con le specifiche
Sintesi
La descrizione di alto livello (RTL, strutturale, comportamentale) viene trasformata in una netlist di porte logiche mediante strumenti CAD
Simulazione post-sintesi
occorre verificare che il comportamento ingresso/uscita del sistema sintetizzato rispetti le specifiche funzionali
Flusso di progetto per un sistema digitale
Place&Route
Ottenuta la netlist bisogna mapparne e disporne gli elementi sul silicio
I parametri non funzionali del circuito ottenuto dipendono da quanto il processo di place&route è stato effettuato efficacemente
Simulazione post Place&Route
Poiché viene utilizzato uno strumento automatico, occorre verificare la correttezza funzionale della trasformazione
Stima dei parametri
E’ possibile estrarre i parametri non funzionali
Se i vincoli non funzionali non vengono soddisfatti bisogna effettuare un redisign
Field-Programmable Gate Array (FPGA)
Gate Array:
Struttura regolare di cellelogiche, connesse attraversouna rete di interconnessione
Field Programmable:
Programmabili on fielddopo la loro produzione
Elementi base (programmabili):
Blocchi logici (CLB)
Interconnessioni
Blocchi di I/O (IOB)
La configurazione viene
memorizzata in una SRAM
Blocchi logici programmabili (CLB)
LUT (Look Up table):
Permette di implementare logica
combinatoria; una LUT a N
ingressi permette di
implementare funzioni booleane
a N-ingressi
Può essere configurata come un
multiplexer binario o come una
memoria programmabile a 2N bit
Registri
Altre risorse:
Logica per la propagazione del
riporto, multiplexer
programmabili, …
L
U
T
Out
Select
D Q
A
B
C
Clock
A simple look up table
logic block
A more realistic logic
block
Flusso di sviluppo per FPGA
Il progetto hardware viene realizzatomodellando il sistema utilizzando un linguaggio di descrizione dell’hardware (HDL)
Mediante un tool di sintesi viene generata unanetlist di componenti di libreria
Questa viene mappata sulla particolaretecnologia
I componenti inferenziati vengono posizionati sulchip
La rete di interconnessione viene configurata in modo da realizzare le connessioni necessarie
In genere ci si riferisce alle fasi di map-place-route come implementazione
Programmazione dell’FPGA
L'output della sintesi è un file di configurazione detto
bitstream
Il bitstream può essere scaricato sull'fpga
determinandone la configurazione di tutti i componenti
programmabili
La configurazione è volatile
I System-on-a-Chip (SoC) sonoparticolari circuiti integrati che in un solo chip contengono più partidi un sistema Microprocessore. Memori, Bus,
Periferiche, Logica custom, …
Un IP (Intellectual-Property) core è un componente hardware con funzionalità ben definite Permettono di riutilizzare lavoro già
fatto (anche di terze parti)
Il flusso di progetto di un SoPC si basa sun una libreria di core IP
Vengono realizzati su ASIC e suFPGA
System-on-Chip (SoC)
Oltre ai componenti hw, un SoCconsiste anche di software checontrolla I vari componenti e li fainteragire
Il flusso di design si complica
Il progetto di un SoC richiede l'emulazione dello stesso
FPGA costituiscono un supportomolto importante allaprogettazione
Dopo la fase di emulazione il chip SoC segue le fasi classiche di sviluppo di un chip custom
Flusso di progetto SoC
La fase di
partizionamento consiste
nel decidere quali
componenti/funzionalità
realizzare in hardware
piuttosto che in software
Decisione presa in base a
qualche metrica o tecniche
di profiling (hot-spot)
Partizionamento Hardware/Software
Implementazione hw Prestazioni migliori
Elevato costo
Implementazione sw Maggiore flessibilità e minor
costo
Prestazioni peggiori
Problema di ottimo complesso. Bisogna tener conto di diversi fattori in conflitto Costo, prestazioni, area, …
System-on-Programmable-Chip (SoPC)
Con SoPC ci si riferisce a
all'implementazione di un SoC su
un device programmabile (FPGA)
Vantaggi
Place&Route e programmazione vengono effettuati dall’utente
Nessun ritardo per la realizzazione del prototipo
Nessun ritardo per la produzione su grandi volumi
Modifiche veloci ed economiche
Un IP può essere implementato su FPGA in maniera Hard o Soft
Hard: occupa risorse dedicate sul device
Soft: viene implementato utilizzando risorse programmabili dell'FPGA
Tipicamente i Soft IP sono molto più flessibili e ricchi dicaratteristiche, mentre gli Hard IP offrono performance piùelevate e un consumo di potenzainferiore
Hard/Soft IP
Hard IP Non configurabile
garantisce timing, area, consumo di potenza
Soft IP Vengono rilasciati i sorgenti (HDL
sintetizzabile) o un formato criptatoche ne permette la configurazione
Tipicamente sono altamenteconfigurabili
Timing, area e consumo di potenzadipendono dall’implementazione, strumenti CAD utilizzati e tecnologiatarget
Soft Processor per FPGA
NIOS II -- Altera
Microblaze, Picoblaze -- Xilinx
LEON -- Gaisler
Hard Processor per FPGA
MIPS Altera, anche ARM ma non nelle nuove FPGA
PowerPC Xilinx, ma non nelle nuove FPGA
FPGA capienti possono contenere diversi soft-processor
Processori per SoPC
Sintesi
Leonardo, Symplify, Altera Quartus, Xilinx ISE, …
Implementazione
Xilinx ISE, Altera Quartus, …
Tool per la configurazione del SoPC
Xilinx EDK, Altera SoPC Builder, …
Compilatore C/C++ per architettura target
Tool di supporto al debug
Software per il flusso di progetto SoPC
GRLIB/LEON3
GRLIB è una libreria disoft IP dellaGaisler/Aeroflex
Architettura diriferimento basata subus comune I core IP istanziati
vengono connessi tramiteun bus on-chip (AMBA)
Supporta diversi tool CAD e tecnologietarget
Qualche IP: LEON3 SPARC V8 32-bit processor
DSU3 Multi-processor Debug support unit
GRFPU High-performance Floating-point unit
GRFPU-Lite Low-area Floating-point unit
SRCTRL - PROM/SRAM controller SDCTRL - SDRAM controller DDRCTRL - DDR controller with two
AHB ports (Xilinx only)
AHBBRIDGE - Bi-directional AHB/AHB Bridge
APBUART - Programmable UART with APB interface
GPIO - General purpose I/O port
LEON3
Soft-core altamente configurabile
Modello VHDL sintetizzabile su diversi device FPGA
La prima versione (P-1754) è stata realizzata da
Jiri Gaisler per l’European Space Agency (ESA) per
essere utilizzato in sistemi di controllo satellitare
Viene rilasciato sotto licenza GNU LGPL
Attualmente mantenuto dalla Aeroflex
Architettura RISC
Unità intera compatibile SPARC V8, pipelined a 7 stadi
Numero di registri configurabile (2-32)
Cache separate per istruzioni e dati,
moltiplicatore e divisore hardware,
controller d'interruzioni
Debug Support Unit (DSU) con trace
buffer, 2 timer a 24-bit, 2 UART
Porto di I/O a 16-bit, controller di
memoria molto flessibile, Ethernet MAC,
PCI interface
Permette una facile integrazione di
nuovi componenti
LEON3 - Caratteristiche
Diagram of the LEON core from Gaisler Research
Permette un debugging non intrusivo sull'hw target
In particolare permette di:
Inserire breakpoint e watchpoint
accedere a tutti i registri on-chip
Caricare un programma in memoria e controllarne
l'esecuzione
Tracciare il flusso delle istruzioni eseguite e monitorare il
traffico sul bus tramite dei trace buffer
Può essere utilizzato come interfaccia per un debugger
remoto (i.e. gdb)
Debug Support Unit (DSU)
Advanced Microcontroller Bus Architecture (AMBA) è una specifica di bus per dispositivi SoC
AMBA BUS fornisce specifiche solo a livello di ciclo di clock
La specifica è indipendente dalla tecnologia che successivamente sarà usata per realizzare il chip su cui il bus viene usato
Caratteristiche elettriche: non sono fornite specifiche dato che saranno totalmente dipendenti dalla tecnologia usata
Specifiche temporali: non sono fornite informazioni e/o misure temporali di tipo assoluto dato che esse dipendono fortemente dalla tecnologia realizzativa
Bus AMBA
La specifica definisce diversi bus. In particolare abbiamo:
AHB, APB
Advanced High-performance Bus (AHB)
Multimaster, operazioni pipelined, trasferimenti burst, split transaction
Advanced Peripheral Bus (APB)
Consumi ridotti
Semplice Interfaccia verso le periferiche
LEON utilizza un'architettura a bus su due livelli: Il bus AHB viene utilizzato per la
CPU, per gli altri master, per la memoria on chip e le periferiche che richiedono elevata disponibilità di banda (ad es. l’interfaccia verso la memoria off-chip, periferiche che possono essere oggetto di trasferimenti DMA)
Il bus APB per le periferiche di I/O più semplici e con minori requisiti di banda e performance
Un bridge AHB/APB bufferizza dati e operazioni tra i due bus; il bridge AHB/APB è slave sul bus AHB e l'unico master sul bus APB.
LEON3 Bus Architecture
Cosa ci proponiamo di realizzare?
Vogliamo realizzare
un SoPC basato su
core IP della libreria
GRLIB e farne il
download sulla board
Nexys2* della Digilent
[*] http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,789&Prod=NEXYS2
Digilent Nexys2
Cos’è?
E’ una piattaforma di sviluppo per sistemi digitali il cui nucleo è un’FPGA Xilinx della famiglia Spartan3E
Le dimensioni della logica sono tali da poter ospitare un SoPC basato su libreria Xilinx (EDK) e GRLIB.
Qualche caratteristica:
Xilinx Spartan-3E FPGA da 500K o 1200K gate
Permette alimentazione e programmazione tramite porta USB
Compatibile con ISE/Webpack e EDK della Xilinx
16MB Micron PSDRAM
16MB Intel StrataFlash Flash
Xilinx Platform Flash ROM
Oscillatore da 50MHz; permettel’alloggiamento di un oscillatoreesterno
75 pin di I/O distribuiti su:
Un bus di espansione high-speed da43 pin
4 connettori pmod 2x6
8 LED, 4 display a 7-segmenti, 4 push-button, 8 switch
Strumenti necessari
LEON3/GRLIB
Libreria di componenti GRLIB
Simulatore per LEON (TSIM)
Debug monitor (grmon)
Tool chain per la cross-compilazione
"GRTools installer for windows"
http://www.gaisler.com
Utility per la programmazione dell’FPGA
Digilent Adept
http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=69&Prod=ADEPT
Cygwin
Oltre al sistema base installare i pacchetti make, tcltk, …
http://www.cygwin.com
Strumenti per la simulazione e sintesi di sistemi digitali
Active HDL, Modelsim
Xilinx ISE Webpack
http://www.xilinx.com/tools/webpack.htm
Qualche dettaglio sull’ambiente
In particolare:
In boards troviamo una directory
per ciascuna board supportata
Es. digilent-xup-xc2vp
In designs vari esempi di
configurazioni di SoPC per le
varie board supportate
Es. leon3-digilent-xup
La Nexys2 non è supportata
dalla versione ufficiale di GRLIB
Verifica del vincolo sul cammino critico
A valle della fase di sintesi occorre verificare che il cammino critico sia compatibile con il clock di sistema
Nel caso specifico abbiamo:
un clock di board di 50 Mhz
un DCM configurato in modo da moltiplicare la frequenza del clock di board per 4/5
Otteniamo così un clock di sistema di 40 Mhz
grlib/designs/leon3-digilent-nexys2/leon3mp.twr
Compilazione “Hello World!”
#include <stdio.h>
main() {
printf("Hello\n");
}
grlib/software/examples/hello.c
Compilazione applicazioni d’esempio
Con GRLIB vengono rilasciati anche altre
applicazioni d’esempio/benchmark
Possono essere compilati utilizzando make
Download del bitstream
Per il download del bitstream sull’FPGA occorre un’utility software
Possiamo scegliere tra
iMPACT della Xilinx
Richiede cavo JTAG
Adept della DigilentPermette la programmazione della logica tramite USB