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

 
 
18 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Документация на System Verilog, Сбор документации на SVerilog. И обсуждение тонких моментов синтаксиса
DukeXar
сообщение Apr 2 2007, 09:01
Сообщение #61


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 23-07-05
Из: Россия, Киров
Пользователь №: 7 038



Doka: а можно еще залить куда-нибудь упомянутый в самом начале
"SystemVerilog For Design: A guide to using SystemVerilog for HW design and Modeling. Stuard Sutherland, Simon Davidmann // Kluwer Academic Publishers"?


--------------------
Магам можно все.
Go to the top of the page
 
+Quote Post
Doka
сообщение Apr 2 2007, 11:59
Сообщение #62


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(DukeXar @ Apr 2 2007, 10:01) *
Doka: а можно еще залить куда-нибудь ...

магам - можно ;-)


ссылка (11.59 Mb)
(File code: 4416TNTNHQN2BXH )
Go to the top of the page
 
+Quote Post
DukeXar
сообщение Apr 2 2007, 12:03
Сообщение #63


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 23-07-05
Из: Россия, Киров
Пользователь №: 7 038



Спасибо большое, качаемс =)


--------------------
Магам можно все.
Go to the top of the page
 
+Quote Post
Doka
сообщение Apr 2 2007, 18:10
Сообщение #64


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(CaPpuCcino @ Mar 29 2007, 18:09) *
нужно заметить что SVer for Ver немного разочаровала - совсем для бегинеров - стандарт читать намного круче, Янчик Бергерон - для среднего уровня и тоже выше стандарта в раскрытие темы использования СВ не прыгает, хотя и объясняет хорошо что к чему на генеральном уровне - но это можно было прочесть еще в просто WT 2nd edition а вот VerMetManual его же мне показалась очень интересной для размышления над тем как надобно жить мне показалась очень интересной для размышления


решил-таки потихоньку осваивать SV для писания тестбенчей.
в связи с этим вопрос: с чего бы начать?
что сейчас доступно из букварей:
1) SVer for Ver
2) VerMetManual
3) стюард, упоминаемый в теме последним
4) Advanced Verification Methodology Cookbook - халявная книжка от ментора с примера лаб для Квесты

стандарт оно конечно читать круче, но цель (по кр.мере у меня) - не ознакомиться с "инструментом", а научиться им пользоваться.. И понять на примерах - как эффективно использовать те или иные языковые особенности (преимущества SV перед V).
(как пример-аналогия: XAPP199 "Writing Effective Testbenches" от Xilinx, где лаконично, на двух десятках страниц изложены практические приемы работы на vhdl & verilog)

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


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Apr 2 2007, 19:25
Сообщение #65


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

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



Цитата(Doka @ Apr 2 2007, 19:10) *
решил-таки потихоньку осваивать SV для писания тестбенчей.
в связи с этим вопрос: с чего бы начать?
что сейчас доступно из букварей:
1) SVer for Ver
2) VerMetManual
3) стюард, упоминаемый в теме последним
4) Advanced Verification Methodology Cookbook - халявная книжка от ментора с примера лаб для Квесты

стандарт оно конечно читать круче, но цель (по кр.мере у меня) - не ознакомиться с "инструментом", а научиться им пользоваться.. И понять на примерах - как эффективно использовать те или иные языковые особенности (преимущества SV перед V).
(как пример-аналогия: XAPP199 "Writing Effective Testbenches" от Xilinx, где лаконично, на двух десятках страниц изложены практические приемы работы на vhdl & verilog)

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

я начинал со стюарда (это если не брать в расчёт кучу всяких свободно доступных пэдээфок) несмотря на то что он вообще-то писал не для верификации - но там есть достаточно интересных намёков которые можно использовать и в тестбенчах (автоматические функции и передача параметров по ссылке, интерфейсы с модпортами и экспортирование функций через интерфейсы + всякие мелочи по типам, динамическим переменным и последняя глава о поведенческом и транзакционному моделированию) потом прочёл Ассершн- бэйзд дизайн (интересна с точки жрения метрики функционального покрытия и самих ассершенов) после этого досканально изучил последний стандарт (вы к стати зря его игнорируете - знаете ведь как верилоговские стандарты пишутся - это скорее книжки чем стандарты - оттуда взял динамижеские массивы и очереди с мэил-боксами, randsequences и constrained randomization) затем SVer for Ver и VerMetManual (но в первой не нашёл уже ничего нового, а вторая достаточно серёзная книжецa - для старта не подойдёт )
all in all я бы посоветовал всё-таки начать со Стюарда(убьёте сразу двух зайцев), а затем SVer for Ver - добьёте Верификацию с Моделированием (можете также подождать ~2 дня будет ещё и Яник - половина уже готова, но SVer_forVer наверное для начала всё-таки предпочтительнее, потому как Яник пишет всякие заумности в чрезмерном колличестве, что поначалу может отвлекать от применения самого SV).
что касается 4-ого пункта от Ментора - то по-моему только зря потратите время - её можно читать как доп. литературу - там уже философия ТЛМ - для начала слишком - только голову мусором забьёте
PS а ксайлинковского ксапа не читал - поэтому не занаю с чем сравнивать


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
DukeXar
сообщение Apr 2 2007, 22:25
Сообщение #66


Участник
*

Группа: Свой
Сообщений: 50
Регистрация: 23-07-05
Из: Россия, Киров
Пользователь №: 7 038



Извиняюсь, запостил сначала сюда, а потом сделал топик http://electronix.ru/forum/index.php?showtopic=29609

Сообщение отредактировал DukeXar - Apr 2 2007, 22:29


--------------------
Магам можно все.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Apr 3 2007, 19:33
Сообщение #67


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

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



второй пункт из этого топика выполнен:
http://electronix.ru/forum/index.php?showt...mp;#entry227805
(в ссылке найдёте где лежит)


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
Juggernaught
сообщение Apr 18 2007, 12:30
Сообщение #68


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 1-03-06
Пользователь №: 14 839



http://electronix.ru/forum/index.php?showtopic=30309
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 27 2007, 19:30
Сообщение #69


Знающий
****

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



Цитата(dimasen @ Aug 7 2006, 18:02) *
Взял я доку на КВАРТУС. Половина функций не поддерживается angry.gif Если не больше.

А где можно посмотреть что именно поддерживает Квартус? Какая это именно из его док?

Кстати, какое-то время с момента открытия темы уже прошло, может кто-нибудь нашел новую/более удачную литературу по Сверилогу? Желательно на русском.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Apr 27 2007, 20:08
Сообщение #70


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

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



Цитата(RHnd @ Apr 27 2007, 20:30) *
А где можно посмотреть что именно поддерживает Квартус? Какая это именно из его док?

Кстати, какое-то время с момента открытия темы уже прошло, может кто-нибудь нашел новую/более удачную литературу по Сверилогу? Желательно на русском.

товарищ - с момента последнего сообщения в данном топике прошло всего 9 дней - учитесь пользоваться форумом - данный топик многостраничный - дочтайте до конца - а не постите вопросы после первого же сообщения!
по сведениям разведки на данный момент Квартус поддерживает СВ достаточно сносно (за подробностями обращайтесь к Доке - он его вроде юзает)
на русском литературы пока что нет. подождите месяцок или учите англицкий


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Apr 27 2007, 22:56
Сообщение #71


Знающий
****

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



Цитата(CaPpuCcino @ Apr 27 2007, 21:08) *
товарищ - с момента последнего сообщения в данном топике прошло всего 9 дней - учитесь пользоваться форумом - данный топик многостраничный - дочтайте до конца - а не постите вопросы после первого же сообщения!


Упс. sad.gifsad.gifsad.gif Очень-очень виноват. Оправдываться бессмысленно, но меня тянули за руку в "магазин за кофточкой". Еще раз упс. smile.gif
Дочитал все страницы, пдф-ки качаются. smile.gif Начну, пожалуй, со Стюарта, а там посмотрим. Но это все потом, сейчас хотяб просто верилог освоить.
Go to the top of the page
 
+Quote Post
Escorial
сообщение Jun 25 2007, 15:42
Сообщение #72


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

Группа: Свой
Сообщений: 104
Регистрация: 11-11-05
Из: Москва
Пользователь №: 10 714



Writing Testbenches Using System Verilog:
http://electronix.ru/forum/index.php?showt...ng+testbenches#

Хороший tutorial по SystemVerilog:

начало: http://www.doulos.com/knowhow/sysverilog/tutorial/datatypes/
assertions: http://www.doulos.com/knowhow/sysverilog/t...ial/assertions/

Сообщение отредактировал Escorial - Jun 25 2007, 15:45
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 26 2007, 12:06
Сообщение #73


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

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



Привет всем!

Внимание в книге Writing Testbenches using SystemVerilog от яника берегерона обнаружена серьезная баго. Сомневаться в таком авторе грешно, но все же факт :

страница документа 250 пример Sample 5-66. Autonomous RS-232 response monitor

Код
class rs232;
  local bit [8:0] fifo[$];
  ...
  function new(...);
    ...
    fork
      this.receive_thread(); // ВЫЗВАТЬ таск из функции нельзя (!!!)
    join_none
  endfunction: new

  local task receive_thread();
    forever begin
      automatic bit [8:0] resp;
      this.receive(resp[7:0], resp[8]);
      this.fifo.push_back(resp);
    end
  endtask: receive_thread
  ...
endclass: rs232


это противоречит стандарту верилог 2001 (систем верилог в этой части наследует верилог 2001)

10.1 Distinctions between tasks and functions .... A function cannot enable a task; a task can enable other tasks and functions.....

и естественно не работает в симуляторах типа к....а сим 6.2ф

Т.к. автор ссылается на синопсис то вполне возможно что для конструктора класса они сделали исключение. а вот в других симуляторах похоже труба, остается делать модели с автоматическим стартом через Ж. (а нужно то всего лишь завернуть модель описанную в интерфейсе через always в класс с виртуальным интерфейсом + forever).

Читающие эту книгу будте внимательные!!!!



Цитата(des00 @ Nov 26 2007, 06:12) *
Привет всем!

Внимание в книге Writing Testbenches using SystemVerilog от яника берегерона обнаружена серьезная баго. Сомневаться в таком авторе грешно, но все же факт :

страница документа 250 пример Sample 5-66. Autonomous RS-232 response monitor

Код
class rs232;
  local bit [8:0] fifo[$];
  ...
  function new(...);
    ...
    fork
      this.receive_thread(); // ВЫЗВАТЬ таск из функции нельзя (!!!)
    join_none
  endfunction: new

  local task receive_thread();
    forever begin
      automatic bit [8:0] resp;
      this.receive(resp[7:0], resp[8]);
      this.fifo.push_back(resp);
    end
  endtask: receive_thread
  ...
endclass: rs232


это противоречит стандарту верилог 2001 (систем верилог в этой части наследует верилог 2001)

10.1 Distinctions between tasks and functions .... A function cannot enable a task; a task can enable other tasks and functions.....

и естественно не работает в симуляторах типа к....а сим 6.2ф

Т.к. автор ссылается на синопсис то вполне возможно что для конструктора класса они сделали исключение. а вот в других симуляторах похоже труба, остается делать модели с автоматическим стартом через Ж. (а нужно то мне было всего лишь завернуть модель описанную в интерфейсе через always в класс с виртуальным интерфейсом + forever).

Читающие эту книгу будте внимательные!!!!


--------------------
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Nov 26 2007, 18:18
Сообщение #74


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

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



Цитата(des00 @ Nov 26 2007, 16:06) *
...от яника берегерона обнаружена серьезная баго. Сомневаться в таком авторе грешно, но все же факт :

и естественно не работает в симуляторах типа к....а сим 6.2ф

Т.к. автор ссылается на синопсис то вполне возможно что для конструктора класса они сделали исключение.

да ничего не грешно. просто класс спроектирован откровенно неграмотно. а если подобный конструктор проглатывается и синопсисом, то это не фича, а серьёзная брешь в обороне.
суть ограничения на вызов таска из функции в следующем:
таски и функции в модели верилога различаются принципиально тем, что исполнение таска может быть размазано по модельному времени, а исполнение функции нет (её исполнение происходит атомарно за модельное время 0) то есть поток управления в таске может использовать событийные операторы (типа wait, @) внутри себя, а функция нет. больше они ничем не различаются(кому не хватает одного возвращаемого параметра по имени функции, может использовать void function и указывать направление параметра(input, output, inout)) хотя и единственного различия более чем достаточно, чтобы определить совершенно разную область использования данных типов подпрограмм.
таким образом чтобы сохранить целостность модели вызовы тасков из функций запрещены (понятно почему).
теперь перейдём к тому почему этого делать нельзя никогда даже в конструкторе класса (к стати и особенно в конструкторе): вообразите зачем кому-нибудь может потребоваться объект, который будет создаваться на протяжении некоторого модельного времени (для красноречия: на протяжении нескольких тактов? я пока не придумал такой пример). и более того к каким последствиям может привести создание объекта модели размазанное по модельному времени (ведь таск может быть и блокирующим)?
так что передавайте привет янику, он вроде книжки бесплатно раздаёт тем кто баги обнаруживает. а это действительно баг, а не фича wink.gif


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 27 2007, 05:27
Сообщение #75


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

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



Цитата(CaPpuCcino @ Nov 26 2007, 13:18) *
суть ограничения на вызов таска из функции в следующем:
....

различие между таском и функций понятно, но не могу не подкорректировать smile.gif вот эти ваши слова

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


в этом конкретном примере таск запускается как отдельный программный поток (тред) с помошью великолепно реализованной идеологии fork/join_none. Поэтому конструктор в примере будет исполняться атомарно относительно модельного времени.

Пример задачи ну например вот такой.
Почитав яника я решил попробывать переделать одну из работающих для тестирования моделей через классы (что бы было как у правильных пацанов smile.gif ).

Модель приемник и передатчик синхронного потока данных. Функционально модель выглядит как интерфейс с clocking секциями. Функциональность реализована через 2 always, в которых постоянно исполняется последовательный код. Модель стартует независимо в момент начала симуляции.

Целью было заворачивание функциональности в класс с передачей управления портами через абстрактные интерфейсы с clocking секциями. Функциональность планировалось реализовать через 2 программных потока реализованных через fork/join_none + task с forever. Но вот реализация независимого старта в момент начала симуляции, похоже невозможна. Требуется явная, внешняя относительно класса, инициализация программных потоков.

Цитата
так что передавайте привет янику, он вроде книжки бесплатно раздаёт тем кто баги обнаруживает. а это действительно баг, а не фича wink.gif


Жду его ответа на письмо, а вдруг действительно книгу пришлет smile.gif


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

18 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:49
Рейтинг@Mail.ru


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