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

 
 
> Документация на System Verilog, Сбор документации на SVerilog. И обсуждение тонких моментов синтаксиса
dimasen
сообщение Aug 7 2006, 14:13
Сообщение #1


Участник
*

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



Ищу документацию на System Verilog.
Нашёл всяческие презантации и "перечни" отличий от Verilog'a (назовём ANSI Verilog smile.gif )
А нормальной доки так и не нашёл.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des00
сообщение Mar 4 2008, 08:25
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Добрый день!

5 ый день копания в AVM/OVM.

Первое ощущение : мракобесие, особенно после того, как доверяя издательству Springer и Янику Бергерону, смотришь их VMM (synopsys) в поиске функциональных аналогов.

Такое ощущение что господа из каденсе и ментор не долго думая, тупо переписали классы с SC на SV. При этом внеся ИМХО С++ сумятицу в стройный SV.

Господа кто работает по "пАцАнСкИ", объясните зачем в SV был введен геморой с типами портов для транзакций, и необходимостью их регистрировать и конектить?

В SC это понятно. там это вызвано самой концепцией языка языка, но в SV уже есть необходимый объект синхронизации mailbox (типизированый и не типизированый), зачем его нужно было обвешивать кучей портов и функций ?

Почему в AVM/OVM практически не используются callback, а предлагается использование analisys_* компонентов? Некоторые их которых содержат в себе объекты синхронизации(analisys_port например)?

Тогда как в SV for Ver не рекомендуется использовать активные scoreboard/monitor и т.д. А делать все на очередях callback классов.

VMM выглядит более простой и понятной, AVM/OVM как темный лес, здесь зарегистриуем, здесь экспортнем конекторы портов, тут импортнем их и т.д. Ведь по сути это обычная передача указателей на объекты синхронизации.

В итоге в тестбенче на основе AVM все закопано так, что почти теряется сам смысл использования SV перед SC.

Если не сложно объясните чайнику зачем это было сделано так ?

Спасибо.


Денис.


--------------------
Go to the top of the page
 
+Quote Post
cms
сообщение Mar 4 2008, 12:19
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 168
Регистрация: 6-07-04
Пользователь №: 266



Думал над вопросами. Мой вариант объяснения:

У OVM тестбенч не статический. Он строится программой тестирования (в OVM понятие теста и тестбенча разнесены), динамически создающей инстансы модулей и динамически их коннетящей - также как это делается в ООП программах при сборке алгоритма из классов. Динамическое создание тестбенча как раз и требует тех усложнений, которые Вы перечислили: регистрация и коннект портов (ака COM интерфейсы), работа только через указатели и специальные синхрообъекты.

Все это сделано для того, чтобы можно было программно менять тест-бенчи.

Цитата(des00 @ Mar 4 2008, 11:25) *
Добрый день!

5 ый день копания в AVM/OVM.

Первое ощущение : мракобесие, особенно после того, как доверяя издательству Springer и Янику Бергерону, смотришь их VMM (synopsys) в поиске функциональных аналогов.

Такое ощущение что господа из каденсе и ментор не долго думая, тупо переписали классы с SC на SV. При этом внеся ИМХО С++ сумятицу в стройный SV.

Господа кто работает по "пАцАнСкИ", объясните зачем в SV был введен геморой с типами портов для транзакций, и необходимостью их регистрировать и конектить?

В SC это понятно. там это вызвано самой концепцией языка языка, но в SV уже есть необходимый объект синхронизации mailbox (типизированый и не типизированый), зачем его нужно было обвешивать кучей портов и функций ?

Почему в AVM/OVM практически не используются callback, а предлагается использование analisys_* компонентов? Некоторые их которых содержат в себе объекты синхронизации(analisys_port например)?

Тогда как в SV for Ver не рекомендуется использовать активные scoreboard/monitor и т.д. А делать все на очередях callback классов.

VMM выглядит более простой и понятной, AVM/OVM как темный лес, здесь зарегистриуем, здесь экспортнем конекторы портов, тут импортнем их и т.д. Ведь по сути это обычная передача указателей на объекты синхронизации.

В итоге в тестбенче на основе AVM все закопано так, что почти теряется сам смысл использования SV перед SC.

Если не сложно объясните чайнику зачем это было сделано так ?

Спасибо.
Денис.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 5 2008, 04:40
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



2 cms и CaPpuCcino

Спасибо за ответы. Кое о чем я интуитивно догадывался, но кое что по прежнему темный лес:

Цитата
а если у них какая-нибудь обясняющая записка обосновывающая их модель на подобие Яниковского VMM for Ver? на сайте OVM нашёл ток описание класов, но ничего особенного по методике


Нет не нашел, только референс и примеры. Но т.к. ее сделали на основе AVM то думаю что обоснование AVM очень близко по духу.

Цитата
у Бергерона, как я разумею, есть та же концепция обозначенная как vmm_channel. и обе эти реализации находятся в согласии с концепцией СЦ(и TLM на базе объектов). в общем случае приследуются те же цели что и в концепции ООП - инкапсулировать потроха объекта и обезопасить их от неправильного или несанкционированного использования.
вспомните концепцию интерфейса в СЦ (абстрактный класс), вот обвешивание mailbox функциями приследует ту же цель (vmm_channel тоже строится на mailbox)- обезопасить объект, обеспечить возможность повторного использования компонентов и их заменяемость


Цитата(cms @ Mar 4 2008, 07:19) *
Динамическое создание тестбенча как раз и требует тех усложнений, которые Вы перечислили: регистрация и коннект портов (ака COM интерфейсы), работа только через указатели и специальные синхрообъекты.


вот как раз в VMM мне больше понятно, что, куда и зачем. Но когда я копался в описании AVM/OVM и сорцах либ, меня удивляло большое количество объектов типа порт(!!!), через которые по сути и идет передача указателя на один единственный мелбокс, хотя по сути мейлбокс это и есть уже готовый объект и для передачи его указателя достаточно просто присвоить чиселки.

Или в объектах типа порт скрыт сакральный смысл проверки, правильности коннектов на этапе построения окружения (enviroment eleboration ) ?

Еще вот что сильно не понятно. В VMM рекомендуют именно callback и для этого у них есть специальный класс vmm_xactor_callbacks и методы класса vmm_xactor prepend_callback/append_callback. А в OVM callback есть только в hook функциях классов для вывода логов.

Управляя очередями callback функций можно так же на лету менять функциональность объекта. В том числе кстати вносить ошибки в уже сформированные правильные данные, без создания объекта потомка с другими алгоритмами, а с регистрацией класса callback с описанной callback функцией.

А если быть в концепции OVM то что бы сделать например 2 монитора (например для SDRAM контроллера scoreboard + bandwidth measurement) к классу драйвера, мне потребуется 2 analysy_port с analysy_fifo. Что потянет за собой 2 mailbox с кучей объектов портов. Тогда как в VMM концепции всего 2 вызова callback функций.

Цитата
В OVM есть классы ovm_env, ovm_test, ovm_factory. Они позволяют динамически менять компоненты (override), структуру и параметры тестбенча. Плюс в классах компонент предусмотрены методы для внешней конфигурации типа set_config. Все заточено на reuse и инкапсуляцию.


Скажите а чем это будет отличаться от случая если я создам несколько enviroment с разной функциональностью и в главной программе будет следующее

Код
  prj_env_0 env0;
  prj_env_1 env1;
  prj_env_2 env2;

  initial begin
    env0 = new ("test normal", dut_if);
    env0.do_test();

    env1 = new ("test error", dut_if);
    env1.do_test();

    env2 = new ("test shock", dut_if);
    env2.do_test();

  end


Или всегда должен быть только один enviroment, а разные тесты должны перебираться на основе объектов ovm_test?


Цитата
вот как раз размножение DUT меня смущает: ведь DUT - это module, а модуль объект статический, а если даже представить что вы можете размножать указатель на модуль


думаю это разрешимо если сразу вставить несколько DUT, к ним массив интерфейсов а коммутацию уже производить в программе на лету. Отключение холостых DUT можно сделать просто зафорсив тактовую в 0 а ресет в активное состояние.

Цитата
иначе для каждой неправильности нам придётся создавать свой класс-наследник при подходе с наследованием от общего предка, а если подумать об объединение всех возможных неправильностей в одном классе наследнике, то чем это хуже объединения в одном классе всех деталей правельности и неправильности и управления ими(деталями) посредствам общего интерфейса класса транзактора


тоже блуждаю в грамотной реализации подобной обработки. Делал и разные классы и наследуемые, у каждой концепции есть свои + и -, но думаю что использование базового avm_transaction/ovm_transaction решит часть проблем.

А по сабжу думаю тут нужно ввести классификацию ошибок.

Если требуется ввести ошибки в посылку правильных данных, то это делается легко и просто. Можно как на наследуемом классе, так и ввести в этот же класс. Но когда требуется внести интерфейсную ошибку (например в драйвере сформировать ошибку системной шины) то тут я вижу 2 варианта :

1. Модифицировать базовые классы драйвера и транзактора и ввести в них интерфейс управления вставкой ошибок. При этом не потребуется менять enviroment на верхнем уровне.

2. Наследовать классы драйвера и транзактора добавив логику вставки ошибок, но потом на верхнем уровне потребуется либо сделать 2 конфигурации (нормальный тест, тест с ошибками) либо сделать совершено другой enviroment?

Хотелось бы знать как это правильно делается и почему ?

Спасибо!


Перед тем как править свой тестбенч для свича потоков, решил немного покурить ovm и

2 CaPpuCcino

ovm-1.0.1\examples\basic_examples\module\test.sv

похоже вот про какие dut идет разговор. Это behavor модели ovm_object, завернутые в ovm_object_wrapper, которые завязаны на ovm_factory.

Т.е. как я понимаю к отладке RTL это имеет малое отношение.


ЗЫ. 2 cms как по вашему на чем лучше остановиться на ovm или avm ? (vmm как я понял закрыта и в сорцах не поставляется %( ). Даже если не брать все из ovm/avm использование avm_transaction, avm_named_component, avm_treaded_component, avm_reporter сильно упрощает жизню %)


Нашел ответ

http://www.ovmworld.org/forums/showpost.ph...amp;postcount=8

Цитата
Hi Sarath,
Thank you for your kind words about OVM. Our view has always been that the OVM is the next logical step in AVM development. So, new testbench features will be developed collaboratively with Cadence and put into OVM.

As for AVM, we will continue to support AVM-3.0 for the foreseeable future. This support will include bug fixes and ongoing support for future releases of Questa.
__________________
Tom Fitzpatrick
Verification Technologist
Mentor Graphics Corp.


Понятно куда двигаться.

Спасибо


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dimasen   Документация на System Verilog   Aug 7 2006, 14:13
- - PavelSh   Цитата(dimasen @ Aug 7 2006, 18:13) Ищу д...   Aug 7 2006, 16:24
- - dimasen   Цитата(PavelSh @ Aug 7 2006, 20:24) http:...   Aug 7 2006, 17:02
|- - Golikov A.   Цитата(dimasen @ Aug 7 2006, 21:02) Цитат...   Aug 7 2006, 19:04
||- - dsmv   Цитата(Golikov A. @ Aug 7 2006, 23:04) Мо...   Aug 8 2006, 16:22
|- - Doka   Цитата(dimasen @ Aug 7 2006, 21:02) Взял ...   Aug 7 2006, 20:39
||- - Postoroniy_V   Цитата(Doka @ Aug 8 2006, 00:39) Цитата(d...   Aug 8 2006, 06:55
||- - Doka   Цитата(Postoroniy_V @ Aug 8 2006, 10:55) ...   Aug 8 2006, 10:01
|- - RHnd   Цитата(dimasen @ Aug 7 2006, 18:02) Взял ...   Apr 27 2007, 19:30
|- - CaPpuCcino   Цитата(RHnd @ Apr 27 2007, 20:30) А где м...   Apr 27 2007, 20:08
|- - RHnd   Цитата(CaPpuCcino @ Apr 27 2007, 21:08) т...   Apr 27 2007, 22:56
- - dimasen   Цитата(Doka @ Aug 8 2006, 00:39) to all: ...   Aug 8 2006, 07:41
|- - Postoroniy_V   Цитата(dimasen @ Aug 8 2006, 11:41) Цитат...   Aug 8 2006, 08:14
- - dimasen   Цитата(Postoroniy_V @ Aug 8 2006, 12:14) ...   Aug 8 2006, 08:38
- - dimasen   Цитата(Doka @ Aug 8 2006, 14:01) вот у ме...   Aug 8 2006, 11:25
- - dimasen   Цитата(dsmv @ Aug 8 2006, 20:22) Из презе...   Aug 8 2006, 20:51
- - iMiKE   хех, интересно-интересно.....значит эктив7 ещё и с...   Aug 9 2006, 06:49
- - dimasen   А кто нить знает, какой софт ещё поддерживает SV? ...   Aug 9 2006, 07:28
|- - Doka   Цитата(dimasen @ Aug 9 2006, 11:28) А кто...   Aug 9 2006, 08:05
- - dimasen   Цитата(Doka @ Aug 9 2006, 12:05) можете о...   Aug 9 2006, 09:58
|- - Doka   Цитата(dimasen @ Aug 9 2006, 13:58) вот н...   Aug 9 2006, 10:03
||- - dxp   Цитата(Doka @ Aug 9 2006, 17:03) ну а экв...   Aug 9 2006, 10:50
|||- - Golikov A.   Цитата(dxp @ Aug 9 2006, 14:50) Цитата(Do...   Aug 9 2006, 10:52
||- - Postoroniy_V   Цитата(Doka @ Aug 9 2006, 14:03) Цитата(d...   Aug 9 2006, 12:52
|- - PAB   Цитата(dimasen @ Aug 9 2006, 13:58) Цитат...   Aug 30 2006, 14:05
|- - dimasen   Цитата(PAB @ Aug 30 2006, 18:05) Дело в т...   Sep 6 2006, 10:58
- - dimasen   Цитата(Doka @ Aug 9 2006, 14:03) я это да...   Aug 9 2006, 12:29
|- - Doka   to dxp & dimasen постараюсь ответить на оба во...   Aug 9 2006, 16:10
|- - dxp   Цитата(Doka @ Aug 9 2006, 23:10) to dxp ...   Aug 10 2006, 04:17
||- - Doka   Цитата(dxp @ Aug 10 2006, 08:17) И что Вы...   Aug 10 2006, 07:19
||- - dxp   Цитата(Doka @ Aug 10 2006, 14:19) Цитата(...   Aug 10 2006, 08:01
||- - Doka   to dxp видимо тут произошло столкновение разных ш...   Aug 10 2006, 09:47
||- - dxp   Цитата(Doka @ Aug 10 2006, 16:47) видимо ...   Aug 10 2006, 10:12
|- - Postoroniy_V   Цитата(Doka @ Aug 9 2006, 20:10) to dxp ...   Aug 11 2006, 11:39
|- - Doka   Цитата(Postoroniy_V @ Aug 11 2006, 15:39)...   Aug 11 2006, 11:55
|- - Postoroniy_V   Цитата(Doka @ Aug 11 2006, 15:55) со ссыл...   Aug 11 2006, 11:57
- - iMiKE   Хмм.. а по-моему нчинается что-то вроде "заче...   Aug 9 2006, 14:10
- - dimasen   Цитата(Postoroniy_V @ Aug 9 2006, 16:52) ...   Aug 9 2006, 15:08
- - dimasen   Цитата(Doka @ Aug 9 2006, 20:10) постараю...   Aug 9 2006, 17:50
- - iMiKE   А кто говорит что ООП это плохой стиль кодига? ИМХ...   Aug 10 2006, 07:28
|- - Doka   Цитата(iMiKE @ Aug 10 2006, 11:28) А кто ...   Aug 10 2006, 07:40
- - dimasen   О-па! ГРАБЛИ! в связи с введением инкремен...   Aug 10 2006, 07:29
- - iMiKE   Разве СистемВерилог это не ООП?   Aug 10 2006, 07:46
- - dimasen   dxp, Doka посмотрел на ваш спор и решил просто про...   Aug 10 2006, 13:00
|- - dxp   Цитата(dimasen @ Aug 10 2006, 20:00) dxp,...   Aug 10 2006, 13:11
- - dimasen   Цитата(dxp @ Aug 10 2006, 17:11) У нас ди...   Aug 10 2006, 13:47
- - dimasen   Друзья! Есть ещё один очень интересный момент ...   Aug 11 2006, 08:10
- - dimasen   Всем спасибо за осуждение С_Верилога. И особенное ...   Aug 11 2006, 13:52
- - dimasen   забавно я имел ввиду "обсуждение"   Aug 11 2006, 14:26
|- - Кнкн   Вот встретилось, может кому-нибудь нужно ... Veri...   Aug 22 2006, 12:06
|- - PAB   Цитата(Кнкн @ Aug 22 2006, 12:06) Вот вст...   Mar 22 2007, 14:31
- - Gate   Прикладываю статейку от менторовцев, в которой рас...   Aug 28 2006, 15:56
- - des00   нда, чего только люди не придумают ..... лишь бы ...   Aug 31 2006, 07:37
- - dimasen   Во! Нашёл. Есть отличная дока по SVerilog. И и...   Sep 12 2006, 06:54
- - Doka   Verification Methodology - Manual for SystemVerilo...   Mar 23 2007, 14:21
|- - PAB   спасибо   Mar 23 2007, 15:03
|- - CaPpuCcino   Цитата(Doka @ Mar 23 2007, 14:21) Verific...   Mar 23 2007, 20:01
|- - Doka   каюсь. не заметил "not for (re)distribution...   Mar 24 2007, 10:06
|- - CaPpuCcino   to Doka ушло в печать а вот этого случайно в осл...   Mar 25 2007, 00:07
- - Doka   CaPpuCcino, ни той ни другой нет ни в ослике, ни в...   Mar 25 2007, 10:28
- - sazh   SYSTEMVERILOG FOR VERIFICATION A Guide to Learning...   Mar 29 2007, 12:23
- - Doka   sazh, залил последние 3 книги, упоминаемые в т...   Mar 29 2007, 13:55
|- - CaPpuCcino   вот отлично - а мне как раз позовчера доставили пр...   Mar 29 2007, 17:09
|- - Doka   Цитата(CaPpuCcino @ Mar 29 2007, 18:09) н...   Apr 2 2007, 18:10
|- - CaPpuCcino   Цитата(Doka @ Apr 2 2007, 19:10) решил-та...   Apr 2 2007, 19:25
- - DukeXar   Doka: а можно еще залить куда-нибудь упомянутый в ...   Apr 2 2007, 09:01
|- - Doka   Цитата(DukeXar @ Apr 2 2007, 10:01) Doka:...   Apr 2 2007, 11:59
- - DukeXar   Спасибо большое, качаемс =)   Apr 2 2007, 12:03
- - DukeXar   Извиняюсь, запостил сначала сюда, а потом сделал т...   Apr 2 2007, 22:25
|- - CaPpuCcino   второй пункт из этого топика выполнен: http://elec...   Apr 3 2007, 19:33
- - Juggernaught   http://electronix.ru/forum/index.php?showtopic=303...   Apr 18 2007, 12:30
- - Escorial   Writing Testbenches Using System Verilog: http://e...   Jun 25 2007, 15:42
- - des00   Привет всем! Внимание в книге Writing Testbe...   Nov 26 2007, 12:06
|- - CaPpuCcino   Цитата(des00 @ Nov 26 2007, 16:06) ...от ...   Nov 26 2007, 18:18
|- - des00   Цитата(CaPpuCcino @ Nov 26 2007, 13:18) с...   Nov 27 2007, 05:27
|- - CaPpuCcino   Цитата(des00 @ Nov 27 2007, 09:27) идеоло...   Nov 27 2007, 19:08
- - des00   Получить книгу с автографом Яника не получилось. В...   Nov 28 2007, 03:32
|- - CaPpuCcino   Цитата(des00 @ Nov 28 2007, 07:32) enabli...   Nov 28 2007, 15:22
|- - dxp   Цитата(CaPpuCcino @ Nov 28 2007, 21:22) а...   Nov 29 2007, 05:23
|- - CaPpuCcino   Цитата(dxp @ Nov 29 2007, 09:23) Да вы че...   Nov 29 2007, 15:20
|- - dxp   Цитата(CaPpuCcino @ Nov 29 2007, 21:20) т...   Nov 30 2007, 09:07
|- - CaPpuCcino   Цитата(dxp @ Nov 30 2007, 13:07) Текстуал...   Nov 30 2007, 17:51
- - torik   Я вот ради интереса хочу поглядеть этот SV - в Ква...   Dec 10 2007, 15:43
|- - CaPpuCcino   Цитата(torik @ Dec 10 2007, 19:43) Я вот ...   Dec 10 2007, 18:38
- - des00   Решил я тут дальше осваивать VMM и для начала нача...   Feb 29 2008, 03:24
|- - des00   Цитата(des00 @ Feb 28 2008, 22:24) Решил ...   Feb 29 2008, 06:13
|- - PAB   В чём отличие IEEE1800-2007 от IEEE1800-2005?   Feb 29 2008, 11:03
|- - des00   Цитата(PAB @ Feb 29 2008, 06:03) В чём от...   Feb 29 2008, 13:03
|- - PAB   Цитата(des00 @ Feb 29 2008, 16:03) Ну вот...   Feb 29 2008, 14:47
|- - CaPpuCcino   Цитата(des00 @ Feb 29 2008, 16:03) Ну вот...   Mar 1 2008, 01:20
|- - CaPpuCcino   посмотрел файл. это не новый стандарт - это его св...   Mar 1 2008, 21:21
- - CaPpuCcino   Цитата(des00 @ Mar 4 2008, 11:25) 5 ый де...   Mar 4 2008, 11:42
- - CaPpuCcino   Цитата(cms @ Mar 4 2008, 15:19) У OVM те...   Mar 4 2008, 12:29
|- - cms   Цитата(CaPpuCcino @ Mar 4 2008, 15:29) по...   Mar 4 2008, 13:23
|- - CaPpuCcino   Цитата(cms @ Mar 4 2008, 16:23) Представи...   Mar 4 2008, 13:45
|- - cms   Ошибочный от неошибочного источника отличается алг...   Mar 4 2008, 14:12
|- - CaPpuCcino   Цитата(cms @ Mar 4 2008, 17:12) P.S. Отве...   Mar 4 2008, 15:08
3 страниц V   1 2 3 >


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

 


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


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