Diapositiva 1 - UniNa STiDuE
Transcript
Diapositiva 1 - UniNa STiDuE
’ UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II Facoltà di Ingegneria FLUSSO DI PROGETTO PER SOPC CORSO DI CALCOLATORI ELETTRONICI II Prof. A. Mazzeo – [email protected] Ing. Carmelo Lofiego – [email protected] 30 Aprile 2010 Corso di Laurea Specialistica in Ingegneria Informatica Flusso di progetto per un sistema digitale Specifiche del sistema Descrizione HDL Occorre verificare che il comportamento funzionale del sistema sia congruente con le specifiche Sintesi Dalle specifiche all’architettura del sistema Simulazione funzionale Funzionali (comportamento ingresso/uscita, interfaccia con l’esterno, … ) Non- funzionali (throughput, area, timing, potenza dissipata, … ) 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 Simulazione post Place&Route Poiché viene utilizzato uno strumento automatico, occorre verificare la correttezza funzionale della trasformazione Stima dei parametri 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 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: Blocchi logici (CLB) Interconnessioni Blocchi di I/O (IOB) Struttura regolare di celle logiche, connesse attraverso una rete di interconnessione Field Programmable: Programmabili on field dopo la loro produzione Elementi base (programmabili): 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, … Select Out A B C L U T A simple look up table logic block DQ Clock A more realistic logic block Rete d’interconnessione L E L E Switc h Matri x L E L E Switc h Matri x L E L E Tecnologia target Non solo CLB (blocchi di memoria, moltiplicatori, IOB) Flusso di sviluppo per FPGA Il progetto hardware viene realizzato modellando il sistema utilizzando un linguaggio di descrizione dell’hardware (HDL) Mediante un tool di sintesi viene generata una netlist di componenti di libreria Questa viene mappata sulla particolare tecnologia I componenti inferenziati vengono posizionati sul chip La rete di interconnessione viene configurata in modo da realizzare le connessioni necessarie In genere ci si riferisce alle fasi di map-placeroute 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) System-on-Chip (SoC) I System-on-a-Chip (SoC) sono particolari circuiti integrati che in un solo chip contengono più parti di un sistema Un IP (Intellectual-Property) core è un componente hardware con funzionalità ben definite Microprocessore. Memori, Bus, Periferiche, Logica custom, … 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 su FPGA Flusso di progetto SoC Oltre ai componenti hw, un SoC consiste anche di software che controlla I vari componenti e li fa interagire Il progetto di un SoC richiede l'emulazione dello stesso Il flusso di design si complica FPGA costituiscono un supporto molto importante alla progettazione Dopo la fase di emulazione il chip SoC segue le fasi classiche di sviluppo di un chip custom Partizionamento Hardware/Software 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) Implementazione hw Implementazione sw Prestazioni migliori Elevato costo 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 Hard/Soft IP 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 Hard IP Soft IP Tipicamente i Soft IP sono molto più flessibili e ricchi di caratteristiche, mentre gli Hard IP offrono performance più elevate e un consumo di potenza inferiore Non configurabile garantisce timing, area, consumo di potenza Vengono rilasciati i sorgenti (HDL sintetizzabile) o un formato criptato che ne permette la configurazione Tipicamente sono altamente configurabili Timing, area e consumo di potenza dipendono dall’implementazione, strumenti CAD utilizzati e tecnologia target Processori per SoPC Soft Processor per FPGA Hard Processor per FPGA NIOS II -- Altera Microblaze, Picoblaze -- Xilinx LEON -- Gaisler MIPS Altera, anche ARM ma non nelle nuove FPGA PowerPC Xilinx, ma non nelle nuove FPGA FPGA capienti possono contenere diversi soft-processor Software per il flusso di progetto SoPC Sintesi Implementazione Leonardo, Symplify, Altera Quartus, Xilinx ISE, … 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 Flusso di sviluppo per SoPC Ambienti commerciali SOPC BUILDER - ALTERA EDK - XILINX LEON3 GRLIB/LEON3 GRLIB è una libreria di soft IP della Gaisler/Aeroflex Architettura di riferimento basata su bus comune I core IP istanziati vengono connessi tramite un bus on-chip (AMBA) Supporta diversi tool CAD e tecnologie target Qualche IP: LEON3 SPARC V8 32-bit processor DSU3 Multi-processor Debug support unit GRFPU High-performance Floatingpoint 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 LEON3 - Caratteristiche 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 Diagram of the LEON core from Gaisler Research Debug Support Unit (DSU) 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) Bus AMBA 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 La specifica definisce diversi bus. In particolare abbiamo: Advanced High-performance Bus (AHB) AHB, APB Multimaster, operazioni pipelined, trasferimenti burst, split transaction Advanced Peripheral Bus (APB) Consumi ridotti Semplice Interfaccia verso le periferiche LEON3 Bus Architecture 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. 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; permette l’alloggiamento di un oscillatore esterno 75 pin di I/O distribuiti su: Un bus di espansione high-speed da 43 pin 4 connettori pmod 2x6 8 LED, 4 display a 7-segmenti, 4 push-button, 8 switch Strumenti necessari Cygwin Oltre al sistema base installare i pacchetti make, tcltk, … Libreria di componenti GRLIB Simulatore per LEON (TSIM) Debug monitor (grmon) Tool chain per la crosscompilazione "GRTools installer for windows" http://www.cygwin.com LEON3/GRLIB Strumenti per la simulazione e sintesi di sistemi digitali Active HDL, Modelsim Xilinx ISE Webpack http://www.xilinx.com/tools/webpack.htm 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 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 Digilent Permette la programmazione della logica tramite USB Download del bitstream Interfacciarsi al sistema tramite GRMON/DSU
Documenti analoghi
Logiche programmabili - FPGA
LE FPGA moderne, oltre ad avere una struttura della cella più articolata e
con più risorse, includo al loro interno dei cosiddetti Hard-IP. Tipicamente
questi sono:
Moltiplicatori, MAC: permettono ...