320 likes | 516 Views
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 <= 7; when 2 => q <= 10;
E N D
Testbänkens täckningsgradAnalys 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 <= 7; when 2 => q <= 10; … end case; if (a = 0) then … else … end if; ej exekverad kod Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 2
Simulering – 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-kod Analys av kodtäckningsverktyg 3
Täckningsanalys • Andel testad kod • Otestad kod • Verifieringens kvalité Beteende nivå Simulering RT nivå Simulering Syntes Grind nivå innan layout Simulering Grind nivå efter layout Simulering Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 4
Kodtä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-kod Analys av kodtäckningsverktyg 5
Verktyg - två typer simulator integrerat verktyg instimuli 85 % simulator fristående verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 6
Verktyg • 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-kod Analys av kodtäckningsverktyg 7
Verktyg • 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-kod Analys av kodtäckningsverktyg 8
Analyskategorier • Programsatstäckning a <= b + 1; Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 9
Analyskategorier • Blocktäckning • Kodsekvens utan grenar • Första raden exekveras • Blocket exekveras Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 10
Analyskategorier • Grentäckning • Visar vilka vägar som exekverats case (a) when 1 => q <= 7; when 2 => q <= 10; … end case; if (a = 0) then … else … end if; Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 11
Analyskategorier 0 a 1 • Vägtäckning • Mäter hur stor procent av alla möjliga vägar genom en kod som exkeverats b = d or c b = c 0 a1 1 f = b1 and c1 b = not d Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 12
Analyskategorier • Villkorstäckning • Expanderar till booleska element • Tittar inuti a b 0 0 0 1 if (a or b) then … 1 0 1 1 Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 13
a b Analyskategorier • 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-kod Analys av kodtäckningsverktyg 14
Analyskategorier • Triggningstäckning • Kontrollerar signaler i sensitivity-list • Triggertäckning • Räknar hur många gånger en process har triggats process (a, b, c) … end process; Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 15
Analyskategorier 01 00 • Kodtäckning i fsm • Besökta tillstånd • Tillståndsövergångar • Villkor som kontrollerar tillståndsövergångar • Sekvens av tillstånd 10 11 Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 16
Analyskategorier • Olika många • Kan överlappa • Valbara Exempel på hur man kan välja analyskategori i Verisitys verktyg SureCov Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 17
Begrä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-kod Analys av kodtäckningsverktyg 18
Kommersiella verktyg • Integrerade kodtäckningsverktyg • påverkar prestanda mindre.. • bekant miljö.. • Fristående kodtäckningsverktyg • mer avancerade.. • konfigurerbara.. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 19
Kommersiella verktyg • Integrerade kodtäckningsverktyg • Fristående kodtäckningsverktyg ModelSim Incisive Unified Simulator NC-Sim VCS Scirocco VN-Cover SureCov HDL Score Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 20
Incisive 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 Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 21
NC-Sim(integrerad kodtäckning) • Simulator • Kodtäckning integrerad med kärnan Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 22
ModelSim(integrerad kodtäckning) • Simulator • Resultat av kodtäckningsanalys: täckning i staplar exeverade block täckning i procent Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 23
VCS(integrerad kodtäckning) • Simulator (Verilog) • OBC (Observed Coverage) Resultat av kodtäckningsanalys Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 24
Scirocco(integrerad kodtäckning) • Simulator (VHDL) • Samma grafiska gränssnitt som VCS • Analyskategori • programsatstäckning Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 25
Cadence Synopsys Avanti Model Technology Simucad SureCov(fristående verktyg) Definition av riktad täckning. Koden färgas efter täckningsanalys. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 26
SureCov(fristående verktyg) Koden kopplad till tillståndsdiagram. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 27
VN-Cover(fristående verktyg) Alla ledande simulatorer Täckningsresultat uppdelat på analyskategorier. Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 28
Cadence Synopsys Model Technology HDL Score(fristående verktyg) • Hierarkisk browser • Välja bort ej testbar kod • Färgkodning • Tillståndsdiagram • Stöder distrubierad teststimuli Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 29
Jämförelse av verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 30
Jämförelse av verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 31
Kodtäckningsanalys • Simulering har svaga punkter • Täckningsgrad • Vägledning vid verifiering • Begränsningar • Verktyg Testbänkens täckningsgrad av HDL-kod Analys av kodtäckningsverktyg 32