32
Testbänkens Testbänkens täckningsgrad täckningsgrad Analys av kodtäckningsverktyg Hur tas täckningsgraden fram? Vad är täckningsgrad? Kommersiella verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 1

Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Embed Size (px)

DESCRIPTION

Testbänkens täckningsgrad Analys av kodtäckningsverktyg. Hur tas täckningsgraden fram? Vad är täckningsgrad? Kommersiella verktyg. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg. 1. Testbänkens täckningsgrad. case (a) when 1 => q q

Citation preview

Page 1: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgradTestbänkens täckningsgradAnalys av kodtäckningsverktyg

Hur tas täckningsgraden fram? Vad är täckningsgrad? Kommersiella verktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg1

Page 2: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgradTestbänkens täckningsgrad

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg2

case (a) when 1 =>

q <= 7;when 2 =>

q <= 10;…

end case;

if (a = 0) then…

else …

end if;

ej exekverad kod

Page 3: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Simulering – svaga punkterSimulering – svaga punkter

Tidskrävande– 80 % av utvecklingstiden

Ingen garanti– Kan finnas buggar kvar

Subjektiv bedömning– Konstruktörens erfarenhet avgör

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg3

Page 4: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

TäckningsanalysTäckningsanalys

Andel testad kod Otestad kod

Verifieringens kvalité

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Grind nivå innan layoutGrind nivå innan layout

SimuleringSimulering

Grind nivå efter layoutGrind nivå efter layout

SyntesSyntes

RT nivåRT nivå

Beteende nivåBeteende nivå

SimuleringSimulering

SimuleringSimulering

SimuleringSimulering

4

Page 5: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

KodtäckningsanalysKodtäckningsanalys

Minskar verifieringstiden– Man vet när man ska sluta testa

Garanti– Kan garantera att koden har exekverats

Objektivt mått– Siffra på hur stor del av koden som testats

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg5

Page 6: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Verktyg Verktyg - två typer

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

instimuliinstimuli

simulatorsimulatorintegreratverktyg

simulatorsimulator

friståendeverktyg

friståendeverktyg

85 %85 %

6

Page 7: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

VerktygVerktyg

Vägledning vid verifieringsproblem– Minimera testbänken– Upptäcka redundans i teststimuli– Komplettera produkttestning– Kontrollera parallellitet– Verifiera fsm– Komponent i bibliotek

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg7

Page 8: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

VerktygVerktyg

Påverkar prestanda (ca 5 %) Overhead och minne

– Kodens kvalité– Kodens ”stil”– Verktygets omfattning– Verktygets integrering

• Simulator• Gränssnitt

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg8

Page 9: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Programsatstäckning

a <= b + 1;

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg9

Page 10: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Blocktäckning– Kodsekvens utan grenar– Första raden exekveras

– Blocket exekveras

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg10

Page 11: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Grentäckning– Visar vilka vägar som exekverats

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

if (a = 0) then…

else …

end if;

case (a) when 1 =>

q <= 7;when 2 =>

q <= 10;…

end case;

11

Page 12: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Vägtäckning– Mäter hur stor procent

av alla möjliga vägar genom en kod som exkeverats

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

a

a1

f = b1 and c1

b = not d

b = d or c b = c

0

1

0

1

12

Page 13: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Villkorstäckning– Expanderar till

booleska element– Tittar inuti

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

if (a or b) then…

0

1

10

00

ba

13

1 1

Page 14: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Växlingstäckning– Mäter om enstaka bitar växlat mellan 0 och 1– Mäter hur många gånger

Variabeltäckning– Samma sak fast grupperade bitar

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

ab

14

Page 15: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Triggningstäckning– Kontrollerar signaler i sensitivity-list

Triggertäckning– Räknar hur många gånger en process har

triggats

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

process (a, b, c)

end process;

15

Page 16: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Kodtäckning i fsm– Besökta tillstånd– Tillståndsövergångar– Villkor som kontrollerar tillståndsövergångar– Sekvens av tillstånd

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

00 01

1011

16

Page 17: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

AnalyskategorierAnalyskategorier

Olika många Kan överlappa Valbara

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Exempel på hur man kan välja analyskategori i Verisitys verktyg

SureCov

17

Page 18: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

BegränsningarBegränsningar

Garanterar inte verifiering Detekterar inte buggar Upptäcker inte om det fattas kod 100 % täckningsgrad? Kräver testplan

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg18

Page 19: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Kommersiella verktygKommersiella verktyg

Integrerade kodtäckningsverktyg– påverkar prestanda mindre..– bekant miljö..

Fristående kodtäckningsverktyg– mer avancerade..– konfigurerbara..

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg19

Page 20: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Kommersiella verktygKommersiella verktyg

1. Integrerade kodtäckningsverktyg

2. Fristående kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Incisive Unified SimulatorNC-Sim

ModelSim VCSScirocco

SureCov VN-CoverHDL Score

20

Page 21: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Incisive Unified SimulatorIncisive Unified Simulator(integrerad kodtäcknig)

Lanserad i mars 2003 Analyskategorier:

– Programsatstäckning– Vägtäckning– Villkorstäckning– Variabletäckning– Blocktäckning– Täckning i fsm

21

Page 22: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

NC-SimNC-Sim(integrerad kodtäckning)

Simulator Kodtäckning integrerad med kärnan

22

Page 23: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

ModelSimModelSim(integrerad kodtäckning)

Simulator Resultat av kodtäckningsanalys:

exeverade block täckning i procent

täckning i staplar

23

Page 24: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

VCSVCS(integrerad kodtäckning)

Simulator (Verilog) OBC (Observed Coverage)

Resultat av kodtäckningsanalys

24

Page 25: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

SciroccoScirocco(integrerad kodtäckning)

Simulator (VHDL) Samma grafiska gränssnitt som VCS Analyskategori

– programsatstäckning

25

Page 26: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

SureCovSureCov(fristående verktyg)

Koden färgas efter täckningsanalys.

Definition av riktad täckning.

CadenceSynopsysAvantiModel TechnologySimucad

26

Page 27: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

SureCovSureCov(fristående verktyg)

Koden kopplad till tillståndsdiagram.

27

Page 28: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

VN-CoverVN-Cover(fristående verktyg)

Täckningsresultat uppdelat på analyskategorier.

Alla ledande simulatorer

28

Page 29: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

HDL ScoreHDL Score(fristående verktyg)

Hierarkisk browser Välja bort ej testbar kod Färgkodning Tillståndsdiagram Stöder distrubierad teststimuli

CadenceSynopsysModel Technology

29

Page 30: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Jämförelse av verktygJämförelse av verktyg

Leverantör Cadence Mentor Graphics Synopsys Verisity TransEDASummitDesign

Verktyg Incisive NC-VHDLModelSim

SEModelSim

PEScirocco VCS SureCov VN-Cover HDL Score

Typ av verktygPlattform/simulator

Simulator Simulator Simulator Simulator Simulator Fristående Fristående Fristående

Produktinformation

Listpris licens/år(från)

$27 000 $9 996 $19 000 $4 495 $20 250 $20 250 $15 000 $20 000 $15 000

Programsats-täckning

x x x x x x x

Grentäckning x x x xVägtäckning x x x x xVillkorstäckning x x x x x xVäxlingstäckning x x x x x xVariabeltäckning xTriggningstäckning xTriggertäckningHändelsetäckning xBlocktäckning x x x xTracetäckning x

Kodtäcknigskategorier

Täckning itillståndsmaskin

x x x x x x

VHDL x x x x x x xVerilog x x x x x x x x

Språk

SystemC *

30

Page 31: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

Jämförelse av verktygJämförelse av verktygLeverantör Cadence Mentor Graphics Synopsys Verisity TransEDA

SummitDesign

Verktyg Incisive NC-VHDLModelSim

SEModelSim

PEScirocco VCS SureCov VN-Cover HDL Score

Typ av verktygPlattform/simulator

Simulator Simulator Simulator Simulator Simulator Fristående Fristående Fristående

Produktinformation

Listpris licens/år(från)

$27 000 $9 996 $19 000 $4 495 $20 250 $20 250 $15 000 $20 000 $15 000

Sun Solaris x x x x x x x x

HP-UX x x x x x x x x

Linux x x x x x x x x

Windows NT x x x x x x x

Windows 98/2000 x x x x

IBM AIX x x

SGI x

OSF/1 x

Plattformar

Iris x

Fördel 1 Snabb Integreradmedsimulatornskärna

Integreradmedsimulatornskärna

Integreradmedsimulatornskärna

Integreradmedsimulatorn

Integreradmedsimulatorn

Inbyggdfunktion föratt ökaprestanda

Kan integ-reras medalla ledan-de simula-torer

Stöderdistribueradteststimuli/miljö

Fördel 2 Tillgång tillaccelerator

Påverkarprestandaminimalt

Sammamiljö -bekantmiljö

Sammamiljö -bekantmiljö

Påverkarprestandaminimalt

Påverkarprestandaminimalt

Extrakonfigurer-bar rapport

Mångaanlalys-kategorier

Lätt attintegrera iverifierings-processen

Fördel 3 Integrerasmed andraleverantör-ers verktyg

Integrerasmed andraleverantör-ers verktyg

Lättanvänd Intuitivtäckning itillstånds-maskin

Lättanvänd Lätt attintegrera iverifierings-processen

Fördelarenligtleverantör

Fördel 4 Priset Priset OBC

31

Page 32: Testbänkens täckningsgrad Analys av kodtäckningsverktyg

Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg

KodtäckningsanalysKodtäckningsanalys

Simulering har svaga punkter Täckningsgrad Vägledning vid verifiering Begränsningar Verktyg

32