реклама на сайте
подробности

 
 
> Языки описания свойств аппаратуры, PSL/Sugar, SystemVerilog, OVL
CaPpuCcino
сообщение Mar 5 2008, 12:35
Сообщение #1


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



Лично у меня есть заинтересованность в применении языков описания свойств аппаратуры (ЯОСА) для проектирования на ПЛИС. Сам я несколько лет назад ознакомился с данными языками, но отсутствие доступных инструментов для их использования при проектировании и, как следствие, практических навыков применения, не позволило мне в полной мере овладеть данной технологией. Более того, существенная разница понятий языков описаний свойств и традиционных языков программирования и проектирования затрудняет понимание и корректное использование ЯОСА.

В последние годы с интеграцией данной технологии в наиболее популярные среды моделирования, а также объединение языков описания аппаратуры с верификационными и спецификационными языками (интеграция PSL в VHDL; свойства, утверждения и покрытие в SystemVerilog), этот экзотический инструмент(ЯОСА) стал доступен большому кругу разработчиков. В то же время в российском сегменте сети информация по данной технологии практически отсутствует, что препятствует популяризации оной в нашей стране. Хотелось бы исправить этот досадный недочёт и надеяться, что участники форума разделят моё желание.

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


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RHnd
сообщение Mar 5 2008, 16:35
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Если не сложно, то можно для совсем не понимающих, но учащихся, объяснить, о чем идет речь? Для затравки. smile.gif Т.е. чем ЯОСА отличается от HDL?
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Mar 5 2008, 18:44
Сообщение #3


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



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

Языкам описания свойств присуще принципиально иной более абстрактный уровен определения поведения системы и её компонентов относительно друг-друга нежле языкам описания аппаратуры. Базовыми понятиями ЯОСА является последовательность (sequence), свойство(property), утверждение(assertion) и покрытие(coverage).

Последовательность - это описание последовательности систояний системы. Например: data_request ## 2 channel_grant ## 4 data_acknowledged описывает следующую посленовательность систояний - после того как выражение data_request истинно через 2 такта выражение channel_grant истинно после чего выражение data_acknowledged истенно через 4 такта, при этом временные отношения могут быть и плавающими (например ##[2:5] означает "от 2 до пяти", [*1:$] один и более раз до бесконечности(конца симуляции для динамический сред), и так далее). Последовательности могут быть произвольной длинны включая вложенные и единичные.

Свойство - это описание логических отношений между последовательностями. Так например: data_request |=> !data_grant[*4] описывает отношение "в случае установления сигнала(выражения) data_request, data_grant не может быть истинно в течение 4 циклов"; или request |-> ##[1:100] grant означает, что если request истина, то grant должен быть установлен не позднее чем через 100 циклов (в обоих примерах мы имеем свойство описывающее импликацию последовательностей единичной длинны).

Утверждение и покрытие являются операциями над свойствами. Утверждение свойства означает необходимость его соблюдение на всём этапе моделирования. Покрытие свойства является метрикой(табло фиксирующее событие связанное с наблюдением свойства) функционального покрытия теста.
Например:
Код
    property source_register_overwtire_before_cannel_forwarding;
        @(posedge clk) disable iff (!reset_n) (register_valid && !channel_grant) ##1 ( register_valid && !channel_grant ) |-> (data_registered==$past(data_registered));
    endproperty
            
    assret property source_register_overwtire_before_cannel_forwarding
                else $error("Данные в регистре были изменены до принятия их в канал данных");

Само свойство означает, что если установлен флаг действительности данных в регистре, но канал данных не подтверждает их захват и в следующем такте состояние системы не изменилось(комбинация флагов), то данные в регистре остаются неизменными по отношению с предыдущим тактом. Утверждение в свою очередь проверяет не были ли перезаписаны данные в регистре до того как они были продвинуты в канал данных. Если подобное произошло сообщаем об ошибке. Такая короткая запись свойства может сослужить хорошую службу при дальнейшей верификации системы. Ведь если запрос на запись в канал можно напрямую привязать к флагу register_valid, то логика записи в регистр может быть довольно сложной (например несколько источников с разными приоритетами), и правильность функционирования схемы записи в этот регистр может быть неочевидной. Если предположить, что подобная ошибка была допущена и наш канал используется как строительный блок большой системы, то на этапе её верификации будет очень сложно определит причину некорректного функционирования целой системы. Это потребует многие часы, а то и дни анализа проекта. В то же время использование свойств (ЯОСА) позволит мгновенно локализовать ошибку.

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

Синтаксис ЯОСА встроен в современные HDVSLи (Hardware Descriprion Verification and Specification Language) такие как SystemVerilog и новый VHDL.

NB: прошу не сильно критиковать за приведённые примеры, я ещё плохо пишу на ЯОСА и может что-то неправильно закодировал. однако исправления приветствуются smile.gif


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- CaPpuCcino   Языки описания свойств аппаратуры   Mar 5 2008, 12:35
- - des00   Цитата(CaPpuCcino @ Mar 5 2008, 07:35) Пр...   Mar 6 2008, 05:15
- - Кнкн   Цитата(CaPpuCcino @ Mar 5 2008, 15:35) Пр...   Mar 6 2008, 06:46
|- - CaPpuCcino   Цитата(Кнкн @ Mar 6 2008, 09:46) Очень ин...   Mar 6 2008, 13:56
|- - Кнкн   Цитата(CaPpuCcino @ Mar 6 2008, 16:56) та...   Mar 6 2008, 14:52
|- - CaPpuCcino   Цитата(Кнкн @ Mar 6 2008, 17:52) Спасибо...   Mar 6 2008, 15:53
|- - Кнкн   Цитата(CaPpuCcino @ Mar 6 2008, 18:53) ко...   Mar 7 2008, 07:06
- - lotorev   Извините, если не в тему. по поводу построения те...   Mar 7 2008, 20:19
|- - CaPpuCcino   Цитата(lotorev @ Mar 7 2008, 23:19) Извин...   Mar 7 2008, 21:10
- - CaPpuCcino   пара приятных ссылочек по SVA: http://www.electros...   Mar 9 2008, 00:51
- - CaPpuCcino   неплохие видео тьюториалы http://www.demosondemand...   Mar 9 2008, 16:08
- - makc   Собрал всю доступную информацию на ФТП по адресу /...   Apr 18 2008, 13:23
- - maksya   Попробую внести свою лепту в борьбу за построение ...   May 5 2008, 20:41
|- - CaPpuCcino   Цитата(maksya @ May 6 2008, 00:41) Кроме ...   May 5 2008, 22:17
- - des00   2 maksya с удовольствием ознакомлюсь с вашими ста...   May 6 2008, 03:08
- - maksya   Цитата(CaPpuCcino @ May 6 2008, 02:17) по...   May 6 2008, 06:30
- - Doka   Цитата(CaPpuCcino @ Mar 6 2008, 17:56) а ...   May 6 2008, 07:40
|- - CaPpuCcino   Цитата(Doka @ May 6 2008, 11:40) OVL == O...   May 6 2008, 14:49
- - maksya   На правах саморекламы =) Сегодня окончательно сог...   May 22 2008, 20:10
|- - des00   Цитата(maksya @ May 22 2008, 15:10) На пр...   May 27 2008, 03:50
|- - maksya   Цитата(des00 @ May 27 2008, 07:50) Меня и...   Jun 8 2008, 20:48
|- - CaPpuCcino   тьюториал по SVA на asic-world http://www.asic-wor...   Jul 6 2008, 22:26
- - maksya   С небольшой задержкой, но все-же =) Статья посвяще...   Sep 11 2008, 11:26
|- - des00   Цитата(maksya @ Sep 11 2008, 06:26) С неб...   Sep 12 2008, 18:19
|- - CaPpuCcino   Цитата(maksya @ Sep 11 2008, 15:26) Стать...   Sep 23 2008, 04:48
- - maksya   Prequel about PSL:   Sep 12 2008, 13:49
- - maksya   Цитата(des00 @ Sep 12 2008, 22:19) Такие ...   Sep 14 2008, 21:29
|- - CaPpuCcino   Цитата(maksya @ Sep 15 2008, 01:29) Скоре...   Sep 14 2008, 23:35
- - warrior-2001   Доброго времени суток. Возникли вопросы: А провери...   Oct 9 2008, 06:34
|- - CaPpuCcino   Цитата(warrior-2001 @ Oct 9 2008, 10...   Oct 9 2008, 07:01
- - des00   помоему кто то перепутал OVM c OVL   Oct 10 2008, 03:16
|- - CaPpuCcino   Цитата(des00 @ Oct 10 2008, 07:16) помоем...   Oct 10 2008, 18:26
- - warrior-2001   OVL может быть и небольшая библиотека, а вот метод...   Oct 10 2008, 10:41
|- - des00   Цитата(warrior-2001 @ Oct 10 2008, 05...   Oct 20 2008, 10:39
|- - CaPpuCcino   тьюториал по SVA http://testbench.in/tAS_00_INDEX....   Oct 25 2008, 17:44
|- - CaPpuCcino   хотелось бы ещё отметить одну книжку напрямую не с...   Nov 7 2008, 22:02
- - Escorial   Maksya, в своей статье Вы ссылаетесь на книжку vhd...   Jan 21 2009, 19:12
- - Poluektovich   Как на сегодняшний день обстоят дела с использован...   Jul 18 2012, 18:47
- - Poluektovich   У меня по поводу тулов еще вопрос возник. Questa F...   Dec 3 2012, 11:07
|- - yes   Цитата(Poluektovich @ Dec 3 2012, 15:07) ...   Dec 3 2012, 12:52
|- - warrior-2001   Цитата(Poluektovich @ Dec 3 2012, 15:07) ...   Dec 7 2012, 07:51
- - Poluektovich   yes, приведенные вами примеры тулов используются д...   Dec 3 2012, 16:08
- - Poluektovich   Доброе время суток. warrior-2001, делали ли вы о...   Dec 8 2012, 12:14
|- - warrior-2001   Цитата(Poluektovich @ Dec 8 2012, 16:14) ...   Dec 10 2012, 09:36
- - radigast   Приветствую коллег в этой ветке! С момента по...   Nov 12 2016, 20:54
- - Poluektovich   НИИСИ использовали Jasper для проверки connectivit...   Nov 14 2016, 11:33
|- - radigast   Цитата(Poluektovich @ Nov 14 2016, 14:33)...   Nov 15 2016, 20:11
- - Мур   спешите!!!! Вот учебник по паралл...   May 20 2018, 07:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 21:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01433 секунд с 7
ELECTRONIX ©2004-2016