Web Analytics

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
PSL (język opisu właściwości) - Wikipedia, wolna encyklopedia

PSL (język opisu właściwości)

Z Wikipedii

PSL (ang. Property Specification Language) jest językiem opisu właściwości układów i systemów elektronicznych, kontrolowanym przez standard IEEE Std. 1850.

[edytuj] Historia

Język zaczął powstawać w roku 1994 w izraelskim oddziale firmy IBM (IBM Haifa Research Laboratory) pod nazwą Sugar. Początkowo stanowił składniowe uproszczenie logiki temporalnej CTL używanej w wewnętrznych projektach firmy. Z biegem czasu język został wzbogacony o nowe operatory i wyrażenia regularne. W marcu 2001 Sugar 1.0 został przekazany organizacji Accellera jako jeden z kandydatów na standardowy język opisu właściwości (ang. property language). Sugestie Accellery spowodowały dodanie elementów logiki temporalnej LTL do języka. W ten sposób ulepszony Sugar 2.0 został wybrany w kwietniu 2002 jako podstawa dla powstającego nowego standardu. W czerwcu 2004 Accellera zaaprobowała nowy standard, nazwany PSL 1.1, i przekazała go do IEEE w celu dalszej standardyzacji. Prace nad językiem pod auspicjami IEEE postępowały szybko i pierwsza wersja standardu 1850 została zaaprobowana we wrześniu 2005.

[edytuj] Opis

PSL pozwala opisywać właściwości układów na wielu poziomach:

  • poziom logiki boolowskiej z typowymi funkcjami AND, OR, NOT i.t.p.
  • poziom logiki temporalnej, wprowadzający pojęcie czasu i sekwencji zdarzeń
  • poziom weryfikacji, pozwalający na kontrolowanie wymuszeń podczas symulacji (dyrektywa assume), sygnalizację błędów (dyrektywa assert) i testowanie pokrycia (dyrektywa cover)
  • poziom modelowania, umożliwiający opis zachowania wejść, sygnałów i zmiennych (głównie na potrzeby narzędzi weryfikacji formalnej)

W celu ułatwienia współpracy z symulatorami i narzędziami używającymi innych języków, PSL występuje w różnych wariantach (ang. flavors) zbliżonych składniowo do VHDLa, Veriloga, SystemVeriloga czy też SystemC. Na przykład w wariancie VHDLowym jest możliwe używanie operatora logicznego 'and', a w wariancie Verilogowym - operatora '&&'.

Proste wyrażenia logiczne w PSLu (podobnie jak i w innych językach) pozwalają opisać stan ustalony układu. Sekwencje opisują zmiany zachodzące w układzie (n.p. przejście automatu ze stanu A do stanu B), więc mogą być w uproszczeniu traktowane jako wyrażenia logiczne z dodanym wymiarem czasu. Kombinacje wyrażeń logicznych i sekwencji tworzone przy użyciu operatorów temporalnych są nazywane właściwościami (ang. properties). Zarówno sekwencje, jak i właściwości mogą być w PSLu zdefiniowane jako samodzielne obiekty z unikalną nazwą i zestawem parametrów.

Dyrektywy języka PSL używają właściwości zdefiniowane dla danego układu w procesie jego weryfikacji. Właściwości, które powinny być zawsze prawdziwe (asercje), są weryfikowane przy użyciu dyrektywy assert produkującej komunikaty błędu w przypadku nie spełnienia właściwości. Właściwości opisujące pożądane wymuszenia dla danego układu są weryfikowane przy użyciu dyrektywy assume (ta dyrektywa jest dostępna podczas weryfikacji formalnej). W celu sprawdzenia czy dana właściwość była kiedykolwiek sprawdzana przez narzędzie weryfikacji można użyć dyrektywy cover; w tym przypadku brak jakichkolwiek komunikatów oznacza negatywny wynik testu pokrycia i sugeruje zmiany w procesie weryfikacji.

Jednym z charakterystycznych elementów PSL są SERE (ang. Sequential Extended Regular Expressions = rozszerzone sekwencyjne wyrażenia regularne), obejmujące proste wyrażenia logiczne, sekwencje, i ich kombinacje z użyciem operatorów logicznych i temporalnych. SERE w PSLu są zapisywane w nawiasach klamrowych. Przykładem SERE może być {A;B[*3];C}, które oznacza w języku potocznym: sygnał A jest aktywny przez jeden cykl, następnie sygnał B jest aktywny przez 3 cykle, po czym sygnał C jest aktywny przez jeden cykl.

SERE często wymagają zdefiniowania sygnału taktującego (zegara), którego aktywne zbocze określa moment pobrania wartości sygnałów występujących w SERE. Zegar może być zdefiniowany jako sygnał globalny, domyślny dla wszystkich wyrażeń, albo oddzielnie dla każdego wyrażenia. Przykładowe SERE użyte w poprzednim paragrafie można rozbudować do {A;B[*3];C}@rose(CLK), gdzie rose(CLK) oznacza że wyrażenie jest taktowane rosnącym zboczem sygnału CLK.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu