tailieunhanh - Digitale Hardware/ Software-Systeme- Part 20

Digitale Hardware/ Software-Systeme- P20:Getrieben durch neue Technologien und Anwendungen wird der Entwurf eingebetteter Systeme zunehmend komplexer. Dabei ist eine Umsetzung als Hardware/Software- System heutzutage der Stand der Technik. Die Minimierung von Fehlern im Entwurf dieser Systeme ist aufgrund deren Komplexit¨at eine der zentralen Herausforderungen unserer heutigen Zeit. | 374 7 Software-Verifikation Wird nun die Instruktion 1 aus Programm 1 und die Instruktion 3 aus Programm 2 symbolisch simuliert erhalt man Ei bo 1 bo 2 tmp1op E2 co 1 co 2 tmp2o 2 E3 ßo i bo i co i E4 ao 2 tmp1o 2 tmp2o 2 Mit den Äquivalenzklassen E1 und E2 kann die Äquivalenz von E3 und E4 gezeigt werden. Äus diesem Grund werden Äquivalenzklassen E3 und E4 vereinigt Ev ao i ao 2 bo i co i tmp1o 2 tmp2o 2 Da dadurch ao 1 und ao 2 in der selben Äquivalenzklasse sind sind die beiden Programme in der Tat äquivalent. Äquivalenzprüfung mittels Programmabhängigkeitsgraphen Für große C-Programme stoßt die symbolische Simulation schnell an ihre Grenzen. Äus diesem Grund bietet es sich an zunachst diejenigen Stellen in den Programmen zu identifizieren bei denen es sich lohnt die Äquivalenz bzw. Nichtaquiva-lenz von Variablen zu zeigen. Hierzu wird in 315 ein Verfahren vorgestellt bei dem zunachst Unterschiede in den Quelltexten der C-Programme identifiziert werden. Diese Quelltext-Unterschiede definieren die sog. Verifikationsbereiche. Nur für die Verifikationsbereiche wird versucht deren Äquivalenz zu zeigen. Ist dies nicht möglich wird versucht den Verifikationsbereich zu erweitern. Gelingt auch dieses nicht sind die Programme nicht aquivalent. Wird hingegen für alle Verifikationsbereiche gezeigt dass diese aquivalent sind so sind die beiden C-Programme aquiva-lent. Der gesamte Äblauf ist in Äbb. zu sehen. Es kann aufgrund von Optimierungen vorkommen dass die beiden zu vergleichenden Programme an manchen Stellen keine zeilenweise Korrespondenz zeigen was für die im Folgenden vorgestellte Bestimmung der Verifikationsbereiche allerdings notwendig ist. Wird dies bei der Bestimmung der Quelltext-Unterschiede festgestellt werden in den Programmen neutrale Erweiterungen vorgenommen also Erweiterungen die keinen Einfluss auf das Ergebnis der Verifikation haben Handelt es sich bei einem festgestellten Unterschied um eine Zuweisung an die Variable x so kann in dem Programm das