УДК 681.326
МЕТОДИ ВЕРИФ1КАЦП ТЕМПОРАЛЬНИХ ВЛАСТИВОСТЕЙ ЦИФРОВИХ АВТОМАТ1В
ПШЕНИЧНИЙК.Ю., ХАХАНОВА Г.В._
Для верифкацп HDL-моделей пристро!в реального часу пропонуеться застосовувати мехашзм властиво-стей та асерцш мови System Verlog. Обгрунтовуеться доцшьшсть механiзму властивостей для бiльш вичерп-ного та ретельного тестування. Застосування цих тд-ходiв iлюструеться конкретним прикладом. Ключовi слова: System Verilog, formal verification, functional verification, System Verilog assertions, assertion, property, functional coverage. 1. Вступ
Вщомо, що пристро! логiчного управлiння, побу-доваш на 0CH0Bi автоматного шаблону, функщонують в автоматному часi. Автоматним часом е дискретнi вiдрiзки часу, за яК автомат переходить з одного стану в iнший. Тривалють автоматного такту, як правило, визначаеться частотою синхросигналу. Проте, з шшого боку, пристро! лопчного керування являють собою си-стеми керування реального часу, i переходи мiж станами визначаються часовими параметрами алгоритму функщонування.
Для внесення реального часу в опис структурного автомату використовуеться розширена функцiя переходiв (1), в якш аргументом виступае реаль-ний час [3]:
Z(t+1)= f(X(t),Z(t),T), (1)
де X(t) - функцiя входiв; Z(t) - стан автомата в поточному такпв; T - поточний такт. Граф, який описуе функщонування автомата реального часу, називаеться темпоральним графом переходiв (рис. 1). В такому графi кожна вершина мае затримку T, впродовж яко! автомат перебувае в даному сташ. Затримку в кожнiй вершиш темпорального графа реалiзують за допомогою переходу в той же самий час впродовж певного часу. В ПЛ1С це реалiзуеться за допомогою лiчиль-никiв, в мшроконтролерах — за допомогою тай-Mepie з перериванням.
count < Т -1
Рис. 1. Реалiзацiя затримок в темпоральному графi автомата Мура
Мета дослщження - розробка та обгрунтування верифiкацiйних моделей на базi асерцiй для HDL-моделей пристро!в реального часу.
Задач1:
- аналiз моделювання реального (метричного) часу на рiвнi HDL-опису;
- розробка асерщйних моделей для верифшацн темпоральних властивостей;
- порiвняння розроблених моделей.
2. Два напрями верифжацп
Вичерпним джерелом функцiональних вимог е специфшащя. На основi специфшацп iнженер створюе тестовi набори. Класичний шдхщ ве-рифшацн полягае у написанш тесту, моделюваннi та аналiзi результатiв. У разi виявлення неправильно! поведшки iнженер аналiзуе часовi дiаграми та шукае потенцiйне мюце помилки в HDL-описi. Головним недолгом такого пiдходу е час, який шженер мае витрачати на виявлення, по-шук та виправлення несправностг Для значного зменшення цього часу юнуе механiзм властивостей (property). Головна щея даного пiдходу полягае у явному вираженш певних характеристик дизайну за допомогою спещальних мов (SVA, PSL). Таю характеристики е правилами коректного функщонування пристрою. У разi !х порушення середовище моделювання видае вiдповiдне по-вiдомлення, що мiстить час та опис порушено! властивостг
3. Приклад автоматноТ моделi пристрою реального часу
Розглянемо модель пристрою для лопчного керування дорожним свгглофором. На рис. 2 представлено граф переходiв даного пристрою керування.
дорожним свгтлофором 1нтерфейс даного пристрою складасться з двох множин сигналiв:
— множина вхiдних сигналiв {Опп, St}, де Опп {0, 1} — включення свiтлофора, St {0, 1} — сигнал запуску стандартного циклу роботи;
— множина вихщних сигналiв {Я, Y, G}, де R — сигнал включення червоного св^ла, Y — сигнал включення жовтого св^ла, G — сигнал включення зеленого св^ла.
Пристрiй мае два цикли роботи:
— шчний (аварiйний) — блимання жовтим кольо-ром з штервалом Т1;
— стандартний цикл роботи {Y - R - Y - G -Y} i3 затримкою в станах R та G T2 такпв, а в сташ Y — Т1.
Головною особливiстю HDL-реалiзащl автомат-них моделей реального часу е наявнiсть лiчиль-никiв. Данi лiчильники пiдраховують кiлькiсть тактiв, впродовж яких автомат перебувае в пев-ному сташ. Для дано! моделi T1 дорiвнюе 1 такту, T2 — 5 тактам (рис. 3).
reg [2:0] count, countl; parameter T1 = З'ЬОЮ; parameter T2 = 3'blOl;
Рис. 3. Декларацiя лiчильникiв та затримок на мовi SystemVerilog
При переходах мiж станами необхщно врахо-вувати значення лiчильникiв. Дана перевiрка ви-ражае умову реального часу. На рис. 4 наведено приклад реалiзацil такого переходу мiж станами a2 та a3.
а2: begin
if(count < Tl - 1) begin nextstate = а2; countl = countl + l'bl; end
else if(!onn || 1st) begin nextstate = al; countl = 3'bOOO; end else begin
nextstate = a3; countl = 3'b000; end
end
Рис. 4. Приклад реалiзащl переходiв мiж двома станами з урахуванням значень лiчильника
4. Вериф1кац1я темпоральних характеристик за допомогою миттевих асерцш
Верифiкацiя за допомогою миттевих асерцiй по-лягае у перевiрцi значення репстру стану впро-довж певного часу затримки. Впродовж цього часу (певно! кiлькостi тактiв) регiстр мае збертати одне значення. На рис. 5 наведено приклад реалiзацil тако! перевiрки на мовi SystemVerilog.
Синхросигнал
Рис. 5. Послвдовшсть логiчних подш для перевiрки темпоральних властивостей автомата
Пiд час кожного переднього фронту синхросигналу необхщно перевiрити, що автомат перебувае у бажаному сташ та внутршнш лiчильник перебувае у початковому сташ. Це перевiрка показуе,
що автомат щойно перейшов в даний стан. Далi необхiдно перевiрити, що стан не змшюеться впродовж N-1 такпв. Для цього використовуеться конструкцiя assert.
У разi порушення дано! умови середовище моде-лювання видасть вщповщне повiдомлення. Даний метод мае таю недолши:^
— неявнiсть вираження властивосн дизайну;
— неможливiсть використання такого шдходу з формальними середовищами верифшаци;^
— вiдсутнiсть способу перевiрки активiзацil ве-рифiкацiйного коду (виконання умови кон-струкцн if).
5. Верифжащя темпоральних властивостей за допомогою паралельних асерцш
Бажану темпоральну властивiсть можна описати натуральною мовою так: якщо автомат перейшов зi стану а1 в стан а2, то вiн мае перебувати у сташ а2 N-1 такт та перейти у стан а3. 1ншими словами, властивють складаеться з трьох логiчних частин: передумова, цикл та наслщок. На рис. 6 представлено три складовi перевiрки темпорально1 властивостi мiж станами a3 та a4 на мовi SystemVerilog Assertions (SVA).
sequence Red2YellowPrecondition;
(Spast(state) == a2) && (state == a3); endsequence
sequence Red2YellowStay;
(state == аЗ) [*4]; endsequence
sequence Red2YellowPostCondition;
state == a4; endsequence
Рис. 6. Складовi темпорально! властивостi на MOBi SVA
Red2YellowPrecondition — послiдовнiсть, що опи-суе передумову властивостi. Вбудована функщя $past повертае значення регiстру state на попе-редньому тактi. Для дано1 властивостi попереднiм станом мае бути стан а2.
Red2YellowStay — послщовнють, що описуе за-тримку у сташ а3. Оператор [*4] вказуе, що вираз (state == a3) мае повертати логiчне значення "1" впродовж 4 такпв.
Red2YellowPostCondition — послiдовнiсть, що описуе наступний стан автомата шсля затримки. ^ Далi необхiдно об'еднати описанi вище послщов-ностi у конструкцiю property за допомогою спещальних операторiв. Приклад тако1 кон-струкцп наведено на рис. 7.
property Red2Yellow;
@(posedge elk) disable iff (!onn II 1st I reset) Red2YellowPrecondition |=> Red2Yel1owStay ##1 Red2Yel1owPostcondi ti on; endproperty
Рис 7. Конструкцiя property для nepeBipKH темпоральних властивостей
Конструкщя property Red2Yellow встановлюе вiдношення мiж трьома послiдовностями. Пiд час кожного переднього фронту синхросигналу clk перевiряеться послщовшсть-передумова
Red2YellowPrecondition. Якщо ця умова викона-лася — пiд час кожного наступного переднього фронту синхросигналу вщбуваеться перевiрка за-тримки у сташ a3 за допомогою послщовност Red2YellowStay. Останньою послiдовнiстю у цш властивостi е перехiд у стан а4 — послiдовнiсть Red2YellowPostcondition.
На рис. 8 рiзними кольорами позначено момент обчислення певно! послiдовностi, а саме: червоним — Red2YellowPrecondition, зеленим — Red2YellowStay,
властивостей
Варто зауважити, що ця властивiсть описуе стан-дартний цикл роботи автомата, тобто коли сиг-нали onn та st мають логiчне значення '1'. OKpiM того, автомат у будь-який момент може бути вста-новлений у початкове положення за допомогою сигналу скидання reset. Yci щ умови виражаються за допомогою конструкци disable iff. Якщо вико-нуеться лопчна умова у тiлi disable iff, обчислення ушх послщовностей буде завершено. Далi необидно задати перевiрку властивостi. Оскiльки властивiсть носить темпоральний характер, використовуеться мехашзм паралельних асе-рцiй (concurrent assertion). О^м ретельно! ве-рифiкацiï, асерцп можуть надавати вичерпну ш-формащю щодо покриття функцiональностi пiд час тестування. Для ща задачi використовуеться мехашзм cover property (рис. 9), який надасть таку шформащю юлькосп:
— спроб вирахувати властивiсть;
— усшшних проходжень властивостi;
— невдалих проходжень властивостi;
— "вакуумних усmхiв" властивостi (не було акти-вовано послщовшсть Red2YellowPrecondition).
assert property (Red2Yellow); cover property (Red2Yellow); Рис. 9. Дсфшщя паралельшн асерцп
Механiзм паралельних асерцш дае такi переваги:
— явне вираження властивостi дизайну завдяки прив'язщ до подiй синхросигналу як засобу вира-ження часу;
— можливють використання як з динамiчними, так i з формальними середовищами верифiкацiï;
— можливють проаналiзувати статистику спрацювань верифшацшного коду за допомогою шформацп про покриття. Висновки
Розглянуто та проведено дослщження методiв ве-рифшаци темпоральних характеристик моделей пристро1в реального часу.
Запропоновано та обгрунтовано апарат темпоральних властивостей як зашб вираження часових вимог. Доведено, що використання мехашзму паралельних асерцiй дае таю переваги: 1) змен-шення часу локалiзацil помилок у HDL-описц 2) можливiсть використання даного шдходу як з ди-намiчними, так i з формальними середовищами верифшаци; 3) наявнiсть механiзму перевiрки ак-тивiзацil верифiкацiйного коду. Лiтература:
1. Harry D. Foster, Adam C. Krolnik, David J. Lacey. Assertion-Based Design. New York: Springer US. 2005. 390 p. 2. Srikanth Vijayaraghavan, Meyyappan Ramanthan. A Practical Guide for SystemVerilog Assertions. New York: Springer US, 2005. 333 c. 3. ШкильА.С., КулакЭ.Н., Филиппенко И.В., Кучеренко Д.Е., Гога М.В. Автоматизированное проектирование систем логического управления с использованием шаблонов автоматного программирования // Радиоэлектроника и информатика. 2018. №3 С. 75-81. Transliterated Bibliography:
1. Harry D. Foster, Adam C. Krolnik, David J. Lacey. Assertion-Based Design. New York: Springer US, 2005. 390 p.
2. Srikanth Vijayaraghavan, Meyyappan Ramanthan. A Practical Guide for SystemVerilog Assertions. New York: Springer US, 2005. 333 p.
3. Shkil A.S., Kulak E.N., Filippenko I.V., Kucherenko D.E., Goga M.V. Avtomatizirovannoe proektirovanie sistem logicheskogo upravleniya s ispolzovaniem shablonov avtomatnogo programmirovaniya // Radioelectronics & Informatics. 2018. #3 P. 75-81.
Надшшла до редколегп 11.09.2019 Рецензент: д-р техн. наук, проф. Кривуля Г.Ф. Пшеничний Кирило Юршович, мапстрант кафедри АПОТ ХНУРЕ. Науковi штереси: проектування та ве-рифiкацiя цифрових систем. Адреса: Украша, 61166, Харюв, пр. Науки, 14. E-mail:
Хаханова Ганна Володимiрiвна, канд. техн. наук, доцент кафедри АПОТ ХНУРЕ. Науковi штереси: стис-нення та ввдновлення двшково! шформацп. Адреса: Украша, 61166, Харшв, пр. Науки, 14. e-mail: [email protected]
Pshenichny Kirill Yuryevich, Master Student, Design Automation Department, NURE. Scientific Interests: design and verification of digital systems. Address: Ukraine, 61166, Kharkov, Nauky Ave, 14, e-mail: [email protected]
Khakhanova Anna Vladimirovna, PhD., Associate Professor, Design Automation Department, NURE. Scientific Interests: compressed and binary information recovery. Address: Ukraine, 61166, Kharkov, Nauky Ave., 14, email: [email protected]