Язык спецификации свойств - Property Specification Language

Язык спецификации свойств (PSL) это темпоральная логика расширение линейная темпоральная логика с набором операторов для простоты выражения и повышения выразительности. PSL широко использует обычные выражения и синтаксический шугаринг. Он широко используется в индустрии проектирования и проверки оборудования, где формальная проверка инструменты (такие как проверка модели ) и / или логическое моделирование инструменты используются, чтобы доказать или опровергнуть, что данная формула PSL верна для данного проекта.

PSL был первоначально разработан Accellera для уточнения характеристики или же утверждения о конструкциях оборудования. С сентября 2004 г. стандартизация на языке было сделано в IEEE 1850 г. рабочая группа. В сентябре 2005 г. был объявлен стандарт IEEE 1850 для языка спецификации свойств (PSL).

Синтаксис и семантика

PSL может выразить, что если какой-то сценарий произойдет сейчас, то другой сценарий должен произойти через некоторое время. Например, свойство "a запрос всегда должно в конечном итоге быть даровать ed "можно выразить формулой PSL:

  всегда (запрос -> в конце концов! грант)

Свойство "каждый запрос за которым сразу следует подтверждать сигнал, должен сопровождаться полным Передача данных, где полная передача данных - это последовательность, начинающаяся с сигнала Начните, заканчивающийся сигналом конец в котором занятый пока выполняется "может быть выражено формулой PSL:

  (true [*]; req; ack) | => (начало; занято [*]; конец)

След, удовлетворяющий этой формуле, показан на рисунке справа.

простой след, удовлетворяющий
(true [*]; req; ack) | => (начало; занято [*]; конец)

Временные операторы PSL можно условно разделить на LTL-стиль операторы и стиль регулярного выражения операторы. Многие операторы PSL представлены в двух версиях: сильная версия, обозначенная суффиксом восклицательного знака ( ! ) и слабая версия. В сильная версия предъявляет требования к вероятности (т. е. требует, чтобы что-то сохранялось в будущем), в то время как слабая версия не. An суффикс подчеркивания ( _ ) используется для различения включающий против. не включающий требования. An _a и _e суффиксы используются для обозначения универсальный (все) vs. экзистенциальный (есть) требования. Окна точного времени обозначены [n] и гибкий [м..н].

Операторы в стиле SERE

Наиболее часто используемый оператор PSL - это оператор "суффикс-импликация" (также известный как оператор "триггеры"), который обозначается как |=>. Его левый операнд - это регулярное выражение PSL, а его правый операнд - это любая формула PSL (будь то в стиле LTL или в стиле регулярного выражения). Семантика г | => р состоит в том, что в каждый момент времени i такой, что последовательность моментов времени до i составляет соответствие регулярному выражению r, путь от i + 1 должен удовлетворять свойству p. Это проиллюстрировано на рисунках справа.

путь удовлетворяющий r триггеры p двумя неперекрывающимися способами
путь удовлетворяющий r запускает p двумя пересекающимися способами
путь удовлетворяющий r запускает p 'тремя способами

Регулярные выражения PSL имеют общие операторы конкатенации (;), Клини-замыкание (*) и объединение (|), а также оператор слияния (:), пересечение (\&\&) и более слабая версия (\&), и множество вариантов для последовательного подсчета [* п] и последовательный подсчет, например [= n] и [-> п].

Есть несколько вариантов оператора триггера, которые показаны в таблице ниже.

Здесь s и т являются PSL-регулярными выражениями, и п является формулой PSL.

 с | => т!
если есть совпадение s, то есть совпадение t на суффиксе трассы,
  • t запускает цикл после окончания s,
  • матч t должен дойти до конца
 с | -> т!
если есть совпадение s, то есть совпадение t на суффиксе трассы,
  • t начинает тот же цикл, что заканчивается s,
  • матч t должен дойти до конца
 с | => т
если есть совпадение s, то есть совпадение t на суффиксе трассы,
  • t запускает цикл после окончания s,
  • матч t может "застрять" посередине
 с | -> т
если есть совпадение s, то есть совпадение t на суффиксе следа,
  • t начинает тот же цикл, что заканчивается s,
  • матч t может "застрять" посередине

Операторы конкатенации, слияния, объединения, пересечения и их варианты показаны в таблице ниже.

Здесь s и т являются регулярными выражениями PSL.

s; т совпадение s, за которым следует совпадение t, t запускает цикл после завершения s
s: t совпадение s, за которым следует совпадение t, t начинает тот же цикл, что заканчивается s
с | тсовпадение s или совпадение t
s && t совпадение s и совпадение t, продолжительность обоих имеет одинаковую длину
s & t совпадение s и совпадение t, продолжительность совпадений может отличаться
с в пределах t совпадение s в совпадении t, сокращение ([*]; s; [*]) && (t)

Операторы для последовательных повторов показаны в таблице ниже.

Здесь s является регулярным выражением PSL.

s [* i] я последовательных повторений s
s [* i..j] от i до j последовательных повторений s
s [* i ..] как минимум i до последовательных повторений s
s [*] ноль или более последовательных повторений s
s [+] одно или несколько последовательных повторений s

Операторы для непоследовательных повторов показаны в таблице ниже.

Здесь б - любое логическое выражение PSL.

б [= я] я не обязательно последовательные повторения b,
  • эквивалентно (! b [*]; b) [* i]; ! b [*]
б [= i..j]не менее i и не более j, необязательно последовательных повторений b,
  • эквивалентно (! b [*]; b) [* i..j]; ! b [*]
б [= я ..] по крайней мере я не обязательно последовательные повторения b,
  • эквивалентно (! b [*]; b) [* i ..]; ! b [*]
б [-> м]m не обязательно последовательные повторения b, заканчивающиеся на b,
  • эквивалентно (! b [*]; b) [* m]
b [-> m: n] не менее m и не более n не обязательно последовательных повторений b, заканчивающихся на b,
  • эквивалентно (! b [*]; b) [* m..n]
б [-> м ..] не менее m не обязательно последовательных повторений b, заканчивающихся на b,
  • эквивалентно (! b [*]; b) [* m ..]; ! b [*]
б [->] ярлык для b [-> 1],
  • эквивалентно (! b [*]; b)

Операторы в стиле LTL

Ниже приведен пример некоторых операторов PSL в стиле LTL.

Здесь п и q любые формулы PSL.

всегда псвойство p сохраняется в каждый момент времени
никогда не псвойство p не удерживается в любой момент времени
в итоге! псуществует момент времени в будущем, где p выполняется
следующий! псуществует следующая временная точка, и p выполняется в этой точке
следующий pесли существует следующая временная точка, то p удерживается в этой точке
следующий! [n] pсуществует n-й момент времени, и p выполняется в этой точке
следующий [n] pесли существует n-й момент времени, то p выполняется в этой точке
next_e! [m..n] pсуществует момент времени от m-го до n-го от текущего значения p.
next_e [m..n] pесли существует по крайней мере n-й момент времени, то p выполняется в одной из точек с m-го по n-ю.
next_a! [m..n] pсуществует по крайней мере n дополнительных временных точек, и p выполняется во всех временных точках между m-м и n-м включительно.
next_a [m..n] pp выполняется для всех следующих моментов времени с m-го по n-й, однако существует множество
р, пока! qсуществует момент времени, в котором q держится, а p держится до этого момента
p до qp сохраняется до момента времени, когда выполняется q, если такое существует
p до! _ qсуществует момент времени, в котором q сохраняется, а p сохраняется до этого момента времени и в этот момент времени
p до_ qp сохраняется до момента времени, когда выполняется q, и в этот момент времени, если таковой существует
р раньше! qp выполняется строго до момента времени, когда выполняется q, и p в конечном итоге выполняется
p перед qp выполняется строго до момента времени, когда выполняется q, если p никогда не выполняется, то q
p до! _ qp выполняется до или в тот же момент времени, когда выполняется q, а p в конечном итоге выполняется
p before_ qp выполняется до или в тот же момент времени, когда выполняется q, если p никогда не выполняется, то q

Оператор выборки

Иногда желательно изменить определение следующий момент времени, например, в многочастотных схемах или когда желателен более высокий уровень абстракции. В оператор выборки (a.k.a. часовой оператор), обозначенный @, используется для этой цели. Формула ПК куда п является формулой PSL и c логические выражения PSL сохраняются на заданном пути, если п на этом пути, спроецированном на циклы, в которых c держится, как показано на рисунках справа.

путь и формула, показывающие необходимость в операторе выборки

Первое свойство гласит, что «каждые запрос за которым сразу следует подтверждать сигнал, должен сопровождаться полным Передача данных, где полная передача данных - это последовательность, начинающаяся с сигнала Начните, заканчивающийся сигналом конец в котором данные следует провести не менее 8 раз:

  ((true [*]; req; ack) | => (начало; данные [= 8]; конец)

Но иногда желательно рассматривать только те случаи, когда указанные выше сигналы возникают в цикле, когда clk в приоритете. Это изображено на втором рисунке, где хотя формула

  ((true [*]; req; ack) | => (start; data [* 3]; end) @ clk

использует данные [* 3] и [* п] является последовательным повторением, совпадающая трасса имеет 3 непоследовательных временных точки, где данные выполняется, но если рассматривать только те моменты времени, когда clk имеет место, моменты времени, когда данные удерживайте стать последовательным.

путь и формула, показывающие эффект оператора выборки @

Семантика формул с вложенным @ немного тонкая. Заинтересованным читателям отсылаем к [2].

Операторы прерывания

В PSL есть несколько операторов для работы с усеченными путями (конечными путями, которые могут соответствовать префиксу вычисления). Усеченные пути возникают при проверке ограниченной модели из-за сбросов и во многих других сценариях. Операторы прерывания определяют, как следует поступать в случае усечения пути. Они полагаются на усеченную семантику, предложенную в [1].

Здесь п любая формула PSL и б - любое логическое выражение PSL.

p async_abort b либо p выполняется, либо p не терпит неудачу до тех пор, пока не будет выполнено b;
  • b распознается асинхронно
p sync_abort b либо p выполняется, либо p не терпит неудачу до тех пор, пока не будет выполнено b;
  • b распознается синхронно
p отменить b эквивалент p async_abort b

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

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

Слои

PSL определяется в 4 слоя: Логический слой, то временный слой, то слой моделирования и слой проверки.

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

Совместимость языков

Язык спецификации свойств может использоваться с несколькими языками проектирования электронных систем (HDL), такими как:

Когда PSL используется вместе с одним из вышеуказанных HDL, его логический уровень использует операторы соответствующего HDL.

Рекомендации

  • 1850-2005 - Стандарт IEEE для языка спецификации свойств (PSL). 2005. Дои:10.1109 / IEEESTD.2005.97780. ISBN  0-7381-4780-X.
  • 1850-2010 - Стандарт IEEE для языка спецификации свойств (PSL). 2010. Дои:10.1109 / IEEESTD.2010.5446004. ISBN  978-0-7381-6255-3.
  • Эйснер, Синди; Фисман, Дана; Гавличек, Джон; Люстиг, Йоад; МакИсаак, Энтони; Ван Кэмпенхаут, Дэвид (2003). «Рассуждения с временной логикой на усеченных путях» (PDF). Компьютерная проверка. Конспект лекций по информатике. 2725. п. 27. Дои:10.1007/978-3-540-45069-6_3. ISBN  978-3-540-40524-5.
  • Эйснер, Синди; Фисман, Дана; Гавличек, Джон; МакИсаак, Энтони; Ван Кэмпенхаут, Дэвид (2003). «Определение оператора временных часов» (PDF). Автоматы, языки и программирование. Конспект лекций по информатике. 2719. п. 857. Дои:10.1007/3-540-45061-0_67. ISBN  978-3-540-40493-4.

внешняя ссылка

Книги на PSL