Hardware Reference
In-Depth Information
if y'event then
tz := tz-now;
case vgy is -- Zeitfensterkontrolle der Ampelphasen
when gn_rt => twa :=now;
if tz<ta then
write(str(now) & " Dauer gn_rt: " & str(tz)); end if ;
when ge_rt =>
if tz<tmin or tz>tmax then
write(str(now) & " Dauer rt_gn: " & str(tz)); end if ;
when rt_rt =>
if tz<tmin or tz>tmax then
write(str(now) & " Dauer rt_gn: " & str(tz)); end if ;
when rt_gn => Flag :=false;
if tz<0.9*tF or tz>1.1*tF then
write(str(now) & " Dauer rt_gn: " & str(tz)); end if ;
when Start =>
if tz>tmax then write(str(now)& " Dauer Start:" & str(tz)); end if ;
when others => null ;
end case ;
case y is -- Kontrolle der Vorgänger und Wartezeit auf grün
when gn_rt => if not(vgy=ge_rt) then
write(str( ) & " Vorgänger von gn_rt: " & str(vgy)); end if;
if twa-now>twa_max then
write(str( )& " Autowartezeit auf gn_rt:" &str(twa)); end if;
when ge_rt => if not (vgy=gn rt or vgy=rt rt or vgy=Start) then
write(str(now)& " Vorgänger von ge_rt: " &str(vgy)); end if ;
when rt_rt => if not (vgy=ge_rt or vgy=rt_gn) then
write(str(now)& " Vorgänger von rt_rt: " &str(vgy)); end if ;
when rt_gn => if not (vgy=rt rt) then
write(str(now)& " Vorgänger von rt_gn: " &str(vgy)); end if ;
if twf-now>twf_max then
write(str(now) & " Fussgängerwartezeit auf rt_gn:"
& str(twf)); end if ;
when Start => null ;
when others => write(str(now)& " unzulässiger Ausgabewert" );
end case ;
vgy := y;
end if ;
if not Flag and rising_edge(Taste) then Flag:=true; twf:=now; end if ;
tz :=now;
wait on y, Taste;
end loop ;
end procedure ;
now
now
)
WEB-Projekt:P3.5/SpecTest_pack.vhdl
Die entwickelte Prozedurbeschreibung zeigt, dass die Programmierung spe-
zifikationsbasierter Plausibilitätstests recht aufwändig sein kann. Aber die Al-
ternative, alle diese Plausibilitätskriterien für Tausende von Testbeispielen
manuell zu kontrollieren, ist noch viel aufwändiger. Gründliches Testen hat
einen hohen Preis.
 
Search WWH ::




Custom Search