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
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
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
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
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
Verktyg Verktyg - två typer
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg
instimuliinstimuli
simulatorsimulatorintegreratverktyg
simulatorsimulator
friståendeverktyg
friståendeverktyg
85 %85 %
6
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
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
AnalyskategorierAnalyskategorier
Programsatstäckning
a <= b + 1;
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg9
AnalyskategorierAnalyskategorier
Blocktäckning– Kodsekvens utan grenar– Första raden exekveras
– Blocket exekveras
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg10
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
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
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
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
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
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
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
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
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
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
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
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg
NC-SimNC-Sim(integrerad kodtäckning)
Simulator Kodtäckning integrerad med kärnan
22
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
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg
VCSVCS(integrerad kodtäckning)
Simulator (Verilog) OBC (Observed Coverage)
Resultat av kodtäckningsanalys
24
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
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
Testbänkens täckningsgrad av HDL-kodAnalys av kodtäckningsverktyg
SureCovSureCov(fristående verktyg)
Koden kopplad till tillståndsdiagram.
27
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
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
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
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
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