|
|
  |
Документация на System Verilog, Сбор документации на SVerilog. И обсуждение тонких моментов синтаксиса |
|
|
|
Nov 27 2007, 19:08
|

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

|
Цитата(des00 @ Nov 27 2007, 09:27)  идеологии fork/join_none. Поэтому конструктор в примере будет исполняться атомарно относительно модельного времени. я об этом вчера думал - действительно создание потоков происходить мгновенно и фактически это не приводит к размазыванию по модельному времени. но (даже если не брать то что это противоречит правилам языка) есть ещё эстетический аспект - правила хорошего тона ООП: конструктор производит выделение памяти и инициализацию значений (как если бы перегруженный оператор "+" возвращает новый объект как результат операции над двумя исходными и он не модифицирует последние, и не бежит на кухню подогреть чайник и не ставит вашу любимую мелодию в проигрыватель, хотя мог бы  ) так вот и запуском новых потоков, каждых к примеру следящих за своим уникальным объектом из набора однотипных объектов, должен заниматься отдельный метод класса - скажем какой-нибудь init(int number_of_threads) или run(int number_of_threads), но не конструктор - таково моё убеждение Цитата Но вот реализация независимого старта в момент начала симуляции, похоже невозможна. Требуется явная, внешняя относительно класса, инициализация программных потоков. вы можете абсолютно то же самое что планировали сделать в конструкторе сделат в методе run. чем вас такой вариант не устраивает? ведь функцию new вам же тоже приходится вызывать не в момент начала симуляции. в момент создания модели автоматически создаётся только указатель на объект класса и только затем вы уже вызываете конструктор. что плохово в том чтобы сделать так: Код class Class_Object_type; ... task run(int thread_num); fork repeat(thread_num)... join_none endtask endclass;
Class_Object_type Object;//создаётся указатель на объект, но не сам объект initial begin Object=new;//выделяется память под объект, происходит инициализация, возвращается указатель на объект Object.run(x);//запускаем потоки ... end
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
|
Nov 28 2007, 03:32
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Получить книгу с автографом Яника не получилось. Вот ответ : Цитата The IEEE working group has clarified the standard and enabling a task from within a fork/join_none statement in a function is valid.
Please contact Mentor for a version of Questa that supports it. VCS also supports this feature. должен быть документ более старший чем SystemVerilog 3.1a Language Reference Manual и опираться нужно на него. насчет того что мешает ИМХО более красивый запуск выглядел бы как Class_Object_type Object = new(); и не нужно заморачиваться на Object.run. Правда иногда может потребоваться синхронизация начала тестирования как wait(Object != null); PS. может плохо искал, но заметок про сие дополнение на сайте http://www.eda.org/sv/ не нашел.
--------------------
|
|
|
|
|
Nov 30 2007, 09:07
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(CaPpuCcino @ Nov 29 2007, 21:20)  так сравнивал я эти два документа 3.1а и 1800-2005 и отличий не нашёл, только зря 2 талмуда распечатал Хм, у меня SystemVerilog_3.1a.pdf: 586 страниц, размер 4246776 байт. SystemVerilog IEEE Std 1800-2005.pdf: 664 страницы, размер 6620828 байт. Текстуальное сравнение не делал.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Feb 29 2008, 03:24
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Решил я тут дальше осваивать VMM и для начала начал разбираться с AMM от ментора. Вот нашел интересный документик, думаю что его стоит добавить в копилку документов. Копаясь в исходниках узнал много интересного про систем верилог и его классы. Удачи !!!
--------------------
|
|
|
|
|
Feb 29 2008, 06:13
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(des00 @ Feb 28 2008, 22:24)  Решил я тут дальше осваивать VMM и для начала начал разбираться с AMM от ментора.
Вот нашел интересный документик, думаю что его стоит добавить в копилку документов.
Копаясь в исходниках узнал много интересного про систем верилог и его классы. Удачи !!! PS. Немного покопался и вот что нашел http://www.ovmworld.org/overview.phpThe Open Verification Methodology (OVM) provides the first open, interoperable SystemVerilog verification methodology in the industry. The OVM provides a library of base classes that allow users to create modular, reusable verification environments in which components talk to each other via standard transaction-level modeling (TLM) interfaces. It also enables intra- and inter-company reuse through a common methodology and classes for virtual sequences and block-to-system reuse. Backward-compatible with AVM 3.0 and URM 6.2 вообще прекрасно. надо осваивать и к либе конкретного производителя можно не привязываться.
--------------------
|
|
|
|
|
Feb 29 2008, 14:47
|
Частый гость
 
Группа: Свой
Сообщений: 86
Регистрация: 3-05-06
Пользователь №: 16 717

|
Цитата(des00 @ Feb 29 2008, 16:03)  Ну вот когда скачаете, выложите для всех тогда и посмотрим. Так вроде уже лежит /upload/Books/verilog/IEEE_1800-2007.pdf
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|