Введение

Язык спецификации свойств (PSL) — это темпоральная логика, расширяющая линейную темпоральную логику набором операторов, обеспечивающих простоту выражения и повышение выразительной силы. PSL активно использует регулярные выражения и синтаксический сахар. Он широко применяется в индустрии разработки и верификации аппаратного обеспечения, где формальные инструменты верификации (например, проверка моделей) и/или инструменты логического моделирования используются для доказательства или опровержения справедливости заданной формулы PSL для конкретной схемы. PSL был изначально разработан компанией Accellera для спецификации свойств или утверждений об аппаратных проектах. Начиная с сентября 2004 года, стандартизация языка осуществлялась в рабочей группе IEEE 1850. В сентябре 2005 года был опубликован стандарт IEEE 1850 для языка спецификации свойств (PSL).

Операторы типа LTL

Ниже приведен пример некоторых операторов в стиле LTL языка PSL. Здесь и – любые формулы PSL. Свойство p истинно в каждой точке времени. Свойство p ложно в любой точке времени. Существует будущая точка времени, в которой p истинно. Существует следующая точка времени, и p истинно в этой точке. Если существует следующая точка времени, то p истинно в этой точке. Существует n-я точка времени, и p истинно в этой точке. Если существует n-я точка времени, то p истинно в этой точке. Существует точка времени, находящаяся на расстоянии от m до n шагов от текущей, в которой p истинно. Если существует по крайней мере n шагов, то p истинно хотя бы в одной из точек от m до n шага. Существует по крайней мере n дополнительных шагов, и p истинно во всех точках времени между m-м и n-м шагами включительно. p истинно во всех следующих точках от m до n шагов, если таковые существуют. Существует точка времени, в которой q истинно, и p истинно до этой точки. p истинно до точки времени, в которой q истинно, если такая точка существует. Существует точка времени, в которой q истинно, и p истинно до этой точки и в этой точке. p истинно до точки времени, в которой q истинно, и в этой точке, если такая точка существует. p истинно строго перед точкой времени, в которой q истинно, и p в конечном итоге истинно. p истинно строго перед точкой времени, в которой q истинно, если p никогда не истинно, то и q тоже не истинно. p истинно до или в момент времени, в котором q истинно, и p в конечном итоге истинно. p истинно до или в момент времени, в котором q истинно, если p никогда не истинно, то и q тоже не истинно.

Выразительная сила

PSL включает в себя временную логику LTL и расширяет ее выразительную силу до омега-регулярных языков. Увеличение выразительной силы по сравнению с LTL, которая обладает выразительной мощностью звездных свободных ω-регулярных выражений, обусловлено суффиксной импликацией, также известной как оператор триггеров, обозначаемый "|>". Формула r |> f, где r – регулярное выражение, а f – формула временной логики, истинна для вычисления w, если любой префикс w, соответствующий r, имеет продолжение, удовлетворяющее f. Другими операторами PSL, не входящими в LTL, являются оператор @ для спецификации синхронизированных по нескольким тактам конструкций, операторы прерывания для обработки аппаратных сбросов и локальные переменные для лаконичности.

Слои

PSL определяется в 4 слоях: булевом слое, временном слое, слое моделирования и слое верификации. Булевый слой используется для описания текущего состояния разрабатываемой схемы и выражается с помощью одного из вышеупомянутых языков описания аппаратуры (HDL). Временной слой состоит из временных операторов, используемых для описания сценариев, развивающихся во времени (возможно, на неограниченном количестве временных шагов). Слой моделирования может использоваться для описания вспомогательных конечных автоматов процедурным способом. Слой верификации состоит из директив для инструмента верификации (например, для утверждения корректности заданного свойства или для предположения корректности определенного набора свойств при верификации другого набора свойств).