Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

24
Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 Candidato: Pierluigi Picciau Relatore: Prof. Sergio Congiu Dipartimento di Ingegneria dell’Informazione - Università degli Studi di Padova 11 Dicembre 2012 Pierluigi Picciau (1014465) DEI-Unipd Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 1 / 21

Transcript of Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Page 1: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Verifica funzionale dell’ALU del microprocessoreGaisler Leon3

Candidato: Pierluigi PicciauRelatore: Prof. Sergio Congiu

Dipartimento di Ingegneria dell’Informazione - Università degli Studi di Padova

11 Dicembre 2012

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 1 / 21

Page 2: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Piano della presentazione

1 Introduzione

2 Hardware: progettazione e verifica

3 Sviluppo di un ambiente di verifica

4 Test e conclusioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 2 / 21

Page 3: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Il contesto

Ogheri Consulting GmbH

sede a Feldkirchen (Monaco di Baviera)attività di consulenza nell’ambito della progettazione e verificadi hardware

Il lavoro di tesi

Sviluppo di un ambiente per la verifica funzionale dell’ALU delmicroprocessore Gaisler Leon3

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 3 / 21

Page 4: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Piano della presentazione

1 Introduzione

2 Hardware: progettazione e verifica

3 Sviluppo di un ambiente di verifica

4 Test e conclusioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 4 / 21

Page 5: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Progettazione dell’hardware

progressi nella tecnologia → complessità crescenteesigenza di strumenti per maggiore produttività

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 5 / 21

Page 6: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Progettazione dell’hardware

Linguaggi HDL

linguaggi di descrizionesupportano le peculiarità dei sistemi hardware

esecuzione concorrentenozione del tempo

possono essere eseguiti → l’hardware può essere simulato

Principali linguaggi

VHDL (IEEE.1076)Verilog

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 6 / 21

Page 7: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Verifica dell’hardware

Verifica funzionale

L’implementazione rispetta i requisiti di progetto?

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 7 / 21

Page 8: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Metodologie di verifica

Directed testing

forza brutatest diretti

Random testing

sequenze casuali di transizionigenerazione vincolata (solotransizioni valide)

Coverage-driven verification

miglioramento del random testingcoverage (informazioni sull’efficacia)automazione e completezza

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 8 / 21

Page 9: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Metodologie di verifica

Directed testing

forza brutatest diretti

Random testing

sequenze casuali di transizionigenerazione vincolata (solotransizioni valide)

Coverage-driven verification

miglioramento del random testingcoverage (informazioni sull’efficacia)automazione e completezza

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 8 / 21

Page 10: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Metodologie di verifica

Directed testing

forza brutatest diretti

Random testing

sequenze casuali di transizionigenerazione vincolata (solotransizioni valide)

Coverage-driven verification

miglioramento del random testingcoverage (informazioni sull’efficacia)automazione e completezza

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 8 / 21

Page 11: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Ausilii alla verifica

Linguaggio e

Linguaggio (proprietario) concepito per la verifica dell’hardwareinterfaccia con il simulatore VHDL (o Verilog)espressioni di linguaggio temporalegenerazione casuale e vincolatastrumenti per il coverage

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 9 / 21

Page 12: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Piano della presentazione

1 Introduzione

2 Hardware: progettazione e verifica

3 Sviluppo di un ambiente di verifica

4 Test e conclusioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 10 / 21

Page 13: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Device Under Test

Gaisler Leon3

microprocessore a 32 bit, con architettura SPARC v8adatto ad applicazioni embedded (prestazioni medio-alte,bassa complessità)disponibile in VHDL con licenza GPL

Integer Unit

pipeline a 7 stadinumero variabile di registriinterfacce separate verso data cache e instruction cache

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 11 / 21

Page 14: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Caratteristiche salienti di SPARC

Scalable Processor ARChitecture

architettura RISC a 32 bitformati d’istruzione: pochi e semplici2 registri sorgenti, 1 registro destinazionenumero variabile di registri

Registri

Organizzazione a finestre da 24 registri8 globali (condivisi)24 locali (8+8+8)

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 12 / 21

Page 15: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Obiettivi di verifica

Verifica dell’ALU (Integer Unit)

fetch & decode & executeaccesso in lettura/scrittura ai registriinteger condition codesgestione Current Window Pointerbranch

AritmeticheADD, ADDCC,SUB, SUBCC,ADDC, SUBX,ADDXCC,SUBXCC

LogicheAND, ANDCC,ANDN, ANDNCC,OR, ORCC, ORN,ORNCC, XOR,XORCC, XNOR,XNORCC

ShiftSLL, SRL, SRA

FlussoBICC, SAVE,RESTORE, CALL

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 13 / 21

Page 16: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Struttura dell’ambiente di verifica L3IU

Sequence Driver

genera l’input ad alto livello

BFM

implementa il protocollo fisico dicomunicazione

simula una cache istruzioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 14 / 21

Page 17: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Struttura dell’ambiente di verifica L3IU

Input Monitor

instruction word (32 bit)

PC

contenuto dei registri

Output Monitor

indirizzi di lettura/scrittura deiregistri

valori CWP e integer conditioncodes

valore da scrivere su registrodestinazione

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 15 / 21

Page 18: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Struttura dell’ambiente di verifica L3IU

Checker

riceve le istruzioni dall’inputmonitor

riceve l’esito dell’esecuzionedall’output monitor

verifica la correttezza

Sync e Signal Map

Sync genera eventi clock, reset ...

Signal Map definisce lacorrispondenza tra segnali VHDLe variabili e

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 16 / 21

Page 19: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Piano della presentazione

1 Introduzione

2 Hardware: progettazione e verifica

3 Sviluppo di un ambiente di verifica

4 Test e conclusioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 17 / 21

Page 20: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Test singoli

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 18 / 21

Page 21: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Rapporto di coverage

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 19 / 21

Page 22: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Batch test

10 istanze x 10k istruzioni

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 20 / 21

Page 23: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Conclusioni

Risultati raggiunti

sviluppata l’architettura base dell’ambiente di verificaverificate le istruzioni aritmetiche, logiche e di controllo delflusso

Sviluppi futuri

supporto a più istruzioni (MUL, DIV, FPU, LOAD/STORE ...)dinamiche di cache misssupporto alla branch prediction

Grazie per l’attenzione

Pierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 21 / 21

Page 24: Verifica funzionale dell'ALU del microprocessore Gaisler Leon3

Introduzione Hardware: progettazione e verifica Sviluppo di un ambiente di verifica Test e conclusioni

Conclusioni

Risultati raggiunti

sviluppata l’architettura base dell’ambiente di verificaverificate le istruzioni aritmetiche, logiche e di controllo delflusso

Sviluppi futuri

supporto a più istruzioni (MUL, DIV, FPU, LOAD/STORE ...)dinamiche di cache misssupporto alla branch prediction

Grazie per l’attenzionePierluigi Picciau (1014465) DEI-Unipd

Verifica funzionale dell’ALU del microprocessore Gaisler Leon3 21 / 21