flusso di progetto per sopc - unina.stidue.netunina.stidue.net/calcolatori elettronici...

44
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 [email protected] CORSO DI CALCOLATORI ELETTRONICI II Prof. A. Mazzeo [email protected]

Upload: nguyentruc

Post on 15-Feb-2019

220 views

Category:

Documents


0 download

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 – [email protected]

CORSO DI CALCOLATORI ELETTRONICI II

Prof. A. Mazzeo – [email protected]

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

Rete d’interconnessione

L

E

L

E

L

E

L

E

L

E

L

E

Switc

h

Matri

x

Switc

h

Matri

x

Tecnologia target

Non solo CLB (blocchi di memoria, moltiplicatori, IOB)

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

Xilinx ISE

Xilinx PlanAhead

System on Programmable Chip (SoPC)

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

Flusso di sviluppo per SoPC

Ambienti commerciali

SOPC BUILDER - ALTERA EDK - XILINX

LEON3

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

Configurazione, Sintesi e programmazione di un SoPC su

board di sviluppo

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

Design di esempio per la Nexys2

Sorgenti disponibili sull’ftp del corso

Configurazione del SoPC

Top level entity e User Constraint File (UCF)

Sintesi

Occupazione delle risorse sulla logica

grlib/designs/leon3-digilent-nexys2/leon3mp.mrp

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

Download del bitstream

Interfacciarsi al sistema tramite

GRMON/DSU