CaPpuCcino 0 26 октября, 2008 Опубликовано 26 октября, 2008 · Жалоба С появлением стандартов нового поколения унифицированных аппаратно-ориентированных языков типа HDSVLs (Hardware Design, Specification, and Verification Languages) и принятием их на вооружение средствами компьюторизированной разработки аппаратуры появилась необходимость в систематизации и методологии использования новых языковых возможностей, особенно в области моделирования и верификации проектов, где с введением в языки объектной ориентации наблюдается наиболее существенный прорыв. Своё внимание на разработке методологий верификации в последнее время сосредоточили все основные участники рынка средств моделирования и организованные ими коллаборации. Помимо разработки самих концепций посторения верификационной среды проекта участники коллабораций и производители ПО разрабатывают библиотеки базовых классов (шаблоны) для реалицации на их базе предложенных концепций. Данная ветка предназначена для сбора методических материалов, публикации новостей из области методологий верификации и обсуждения базовых принципов приложения той или иной методологии построения верификационных сред проектов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 27 октября, 2008 Опубликовано 27 октября, 2008 · Жалоба приведу ссылочки, которые уже были любезно предоставлены участниками форума в частности lotorev, des00, тот_кого_случайно_забыл http://www.ovmworld.org/ - официальный сайт OVM http://www.vmmcentral.org/ - официальный сайт VMM http://www.mentor.com/products/fv/_3b715c/ - AVM от MentorGraphics http://www.doulos.com/knowhow/sysverilog/ovm/ - тьюториал по OVM от Doulos http://www.testbench.in/ - здесь можно найти примеры тестбенчей построенных по AVM, VMM, RVM(OpenVera) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 ноября, 2008 Опубликовано 1 ноября, 2008 · Жалоба Ну вот и первый мега баг в тему. Похоже мне везет на попадания на баги %))) Итак имеем OVM-2.0 + квесту 6.4. Проблем с поддержкой быть не должно Various versions of OVM have been tested on various version of Questa. The table below matches OVM versions and Questa versions +-------------+----------------+ | OVM Version | Questa Version | +-------------+----------------+ | 2.0 | 6.3h, 6.4 | +-------------+----------------+ Пример примитивнейший. module pipa #(parameter int pA = 0, pB = 1); localparam int cA = pA; localparam int cB = pB; endmodule module tb; pipa #(0, 1) uut (); import ovm_pkg::*; `include "ovm_macros.svh" class simple_item extends ovm_sequence_item; // // OVM tail // `ovm_object_utils(simple_item) function new (string name = ""); super.new(name); endfunction endclass class simple_seq extends ovm_sequencer; // // OVM tail // `ovm_sequencer_utils(simple_seq) function new (string name = "", ovm_component parent = null); super.new(name, parent); endfunction endclass simple_seq seq; initial begin : main seq = new("seq", null); $stop; end endmodule компилится без проблем и вот магические vsim -novopt work.tb и ..... # Refreshing D:\work_des00\bug\work.pipa # Loading work.pipa # ** Error: (vsim-3978) nofile(31): Illegal assignment to variable of class ovm_component from variable of class <temp_name> # Time: 0 ns Iteration: 0 Region: /ovm_pkg::ovm_component_registry::ovm_component_registry__3 File: nofile # ** Error: (vsim-3046) nofile(30): Too many arguments to 'new'. # Region: /ovm_pkg::ovm_component_registry::ovm_component_registry__3 # ** Error: (vsim-3046) nofile(30): Too many arguments to 'new'. # Region: /ovm_pkg::ovm_component_registry::ovm_component_registry__3 # ** Error: (vsim-3978) nofile(30): Illegal assignment to variable of class ovm_object_wrapper from variable of class <temp_name> # Time: 0 ns Iteration: 0 Region: /ovm_pkg::ovm_component_registry::ovm_component_registry__3 File: nofile # Error loading design а причина вот в чем. заменим статический модуль (!!!) pipa на вот такой module pipa #(parameter int pA = 0, pB = 1); //localparam int cA = pA; //localparam int cB = pB; localparam int cA = 0; localparam int cB = 1; endmodule и вуаля # Refreshing D:\work_des00\bug\work.pipa # Loading work.pipa # ---------------------------------------------------------------- # OVM-2.0 # © 2007-2008 Mentor Graphics Corporation # © 2007-2008 Cadence Design Systems, Inc. # ---------------------------------------------------------------- На либе 1.1 все работает нормально. Кстати тоже относится и к внутренним параметрам (parameter) модуля с присвоением ему значений внешних параметров. Вот каким местом связан локальный модуль с динамически создаваемыми объектами, и как он может вызвать проблемы в конструкторе класса для меня остается загадкой. Такое происходит только на двух классах ovm_driver и ovm_sequencer. На классах ovm_component(от которого наследуется ovm_driver/ovm_sequencer !!!), ovm_env, ovm_test все хорошо. Обладателям более новых версий квесты, если не сложно, попробуйте этот вариант запустить. Для этого скомпилируйте OVM-2.0 и поправьте в modelsim.ini ;LibrarySearchPath = mtiAvm mtiOvm mtiUPF LibrarySearchPath = ovm Обладателям акаунтов у ментора, если не сложно, напишите в саппорт об этой проблеме. Я было полез на форум ovmworld но мне не дают там писать посты, админ форума тоже молчит :(. Заранее спасибо!!! ЗЫ. Все это у меня выскочило на достаточно большом проекте, поиски кто виноват заняли не один час копания в коде и документации на OVM. %( ЗЗЫ. Пока откатился на версию 1.1.1, правда она "более многословна" чем 2.0 %(. Приходится вместо красивого и понятного m_seq = sequencer::type_id::create("m_seq", this) писать по старинке $cast(m_seq, create_component("sequencer", "m_seq")) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 5 ноября, 2008 Опубликовано 5 ноября, 2008 · Жалоба Ну вот и первый мега баг в тему. Оставить панику!!!, это бага квесты. значитца так сей эффект возникает только при запуске моделирования вообще без оптимизатора. vsim -novopt work.tb если пусть все под полной оптимизацией vsim work.tb то все хорошо, правда теряется видимость RTL объектов для отладки. Но такой вариант vsim work.tb -voptargs="+acc" pipa работает и даже отлаживаться дает %)) Всем спасибо!!! ЗЫ. Если есть время рекомендую начать копаться с 1.1, в 2.0 много операций скрыто, не дает прочувствовать "красоту" игры. ЗЗЫ. Занятный тред о "нужности" многих фичей SV http://ovmworld.org/forums/showthread.php?t=245 от гуру верифкации и очень красивое заворачивание BFM в абстрактный класс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 11 ноября, 2008 Опубликовано 11 ноября, 2008 · Жалоба После первых проб и ошибок сложилась примерная картина о возможностях OVM. Вопрос в следующем - может ли кто из здесь присутствующих провести примерный анализ увеличения производительности от использования данного продукта. На разработку тестбенча для крупного проекта уходит достаточно много времени. Зачастую даже больше, чем на разработку самой тестируемой модели. Теорию я знаю - читал зазывные агитки московской конференции ментора. А как обстоят дела с практикой? В одной из веток я так же задавал вопрос об интеграции ovm не только с квестой, в которой я сейчас и работаю, а со всем пакетом ментора. Тоесть когда тестбенч, построенный согласно ovm, можно будет создавать в FPGA Advantage,а не отдельно в квесте, как сейчас? Может кто знает о последних новинках? HDL designer новый уже прекрасно понимает SV, а когда же будет графика? Вобщем вот такие вопросы волнуют простого российского конструктора/разработчика IP ядер :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 12 ноября, 2008 Опубликовано 12 ноября, 2008 · Жалоба Вопрос в следующем - может ли кто из здесь присутствующих провести примерный анализ увеличения производительности от использования данного продукта. На разработку тестбенча для крупного проекта уходит достаточно много времени. Зачастую даже больше, чем на разработку самой тестируемой модели. Теорию я знаю - читал зазывные агитки московской конференции ментора. А как обстоят дела с практикой? Полагаю что из активных участников форума, похоже что я единственный кто занимается OVM достаточно плотно %(( Вот моя точка зрения. Насчет времени разработки тестбенча не могу понять что вас удивляет, вы знаете примеры когда разработка автоматизированного (НЕ ad-hoc) тестбенча с функциональным покрытием >80% занимала мало времени? К сведению верификация занимает порядка 50% времени разработки крупного проекта. Насчет увеличения производительности тут вопрос сложный. Что касается первого проекта на OVM то : Если вы не приняли концепцию SV ООП увеличение составит минус (200-300)%. Если вы уже работали с SV ООП и достаточно хорошо разбираетесь в рандомизации, ее ограничениях, механизме синхронизации программных тредов и подходах в отладке на классах то оно составит минус (100-200)%. После этого если вы не будете пользоваться какой либо библиотекой вы в любом случае будете разрабатывать транзакции с констрейнами, драйвера, агенты, мониторы, придумывать систему переопределения свойств и параметров объектов, систему логов. В итоге это получится та же OVM/VMM/AVM только заточенная под конкретный тестбенч. Поэтому не думаю что не используя готовые (и отлаженные сообществом разработчиков !!!) либы вы выиграете время. Что касается OVM никто не заставляет вас делать как в учебниках т.е. использовать те интерфейсы и методы которые они предлагают(хотя это более правильно). Из материалов форума ovmworld я понял что сами разработчики достаточно свободно себя ведут, не всегда регистрируют объекты, создают компоненты, транзакции без фабрики и макросов и т.д(но к сожалению этого в учебниках не описано). Тут полная свобода действий %) Что касается конкретных цифр, я планирую модернизировать/переписать тестбенч для своего опенсорс проекта. Потребуется 100% переписка того кода, который есть. С точки зрения того OVM опыта что у меня есть сейчас это должно занять 2 полноценных дня. При этом ляжет все достаточно красиво, понятно и компактно. У меня нет 100% уверенности в этом, на эту работу планирую выделить ближайшие выходные, после этого станет ясно ошибся я или нет. Если интересно потом могу сообщить результат %)) В одной из веток я так же задавал вопрос об интеграции ovm не только с квестой, в которой я сейчас и работаю, а со всем пакетом ментора. Тоесть когда тестбенч, построенный согласно ovm, можно будет создавать в FPGA Advantage,а не отдельно в квесте, как сейчас? Может кто знает о последних новинках? HDL designer новый уже прекрасно понимает SV, а когда же будет графика? в той же ветки я вам ответил %) вот моя точка зрения: никогда не работал с FPGA Advantage, от HDL Designera меня тошнит (все равно не рисую, а редактор там ТАК тормозит), как можно работать в убогом интерфейсе квесты тоже не понимаю. Все делаю в обычном текстовом редакторе, компилирую в нем же или с командной строки/скриптами. Поэтому не могу понять вашей ситуации. Не собираетесь же вы SV классы создавать, описывать методы, соединять, конфигурировать в GUI мышкой? Не вижу в этом ни смысла ни искры. Ну вот как то так %)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 13 ноября, 2008 Опубликовано 13 ноября, 2008 · Жалоба Во первых - спасибо за развёрнутый ответ. :a14: Все, что касается первой части поста мне понятно. Лишь одна поправка - верификация занимает 50% времени на программном уровне. Если прибавить отладку в железе, то общая верификация занимает до 80-90% времени работы с проектом. В экономии времени при работе с железом и есть основной плюс верефикации средствами VMM и OVM. А вот далее... ... никогда не работал с FPGA Advantage, от HDL Designera меня тошнит (все равно не рисую, а редактор там ТАК тормозит), как можно работать в убогом интерфейсе квесты тоже не понимаю. Все делаю в обычном текстовом редакторе, компилирую в нем же или с командной строки/скриптами. Поэтому не могу понять вашей ситуации. Не собираетесь же вы SV классы создавать, описывать методы, соединять, конфигурировать в GUI мышкой? Не вижу в этом ни смысла ни искры. ... Выбор FPGA Advantage в качестве основного продукта зависел не от меня. Однако со временем я нашёл ряд преимуществ в работе с данным пакетом. Не буду заниматься описанием всех плюсов тут, скажу одно - при командной работе над масштабными проектами, к тому же, когда уровень разработчиков в команде весьма и весьма разнообразный :) , пакет FPGA Advantage - один из лучших выборов (под Altera). В убогом интерфейсе квесты я тоже не работаю, пишу текстовым редактором, от квесты беру компилятор. НО, Если бы когда-нибудь появилась графическая интерпретация SV, процесс создания тестбенчей и реюза увеличился бы многократно. В моей команде много специалистов по VHDL/Verilog. Однако многие из них имеют слабое представление об ООП. Вот поэтому и возникает необходимость "SV классы создавать, описывать методы, соединять, конфигурировать в GUI мышкой". С нетерпением жду информации о 100% переписывании старого тестбенча. У меня на такие вещи времени сейчас нету, может после Нового Года смогу уделить время модернизации старых проектов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Intekus 0 31 марта, 2009 Опубликовано 31 марта, 2009 · Жалоба Если вы не приняли концепцию SV ООП увеличение составит минус (200-300)%. Если вы уже работали с SV ООП и достаточно хорошо разбираетесь в рандомизации, ее ограничениях, механизме синхронизации программных тредов и подходах в отладке на классах то оно составит минус (100-200)%. Поясните пожалуйста, как понять фразу "увеличение производительности минус 300%" - сломал 3 проекта за время, за которое нужно было сделать один (с завтрашним праздником всех) ? С точки зрения того OVM опыта что у меня есть сейчас это должно занять 2 полноценных дня. При этом ляжет все достаточно красиво, понятно и компактно. У меня нет 100% уверенности в этом, на эту работу планирую выделить ближайшие выходные, после этого станет ясно ошибся я или нет. Если интересно потом могу сообщить результат %)) И как результат? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 января, 2010 Опубликовано 8 января, 2010 · Жалоба обвинение синопсиса в плагиате в новой версии VMM автор не стесняется в выражениях %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 февраля, 2010 Опубликовано 10 февраля, 2010 · Жалоба слияние OVM и VMM подробно не смотрел, но похоже наделали оберток из одного в другое. Видится длинная рука аццелеры, похоже собираются стандартизировать верификацию...... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 11 февраля, 2010 Опубликовано 11 февраля, 2010 · Жалоба Видится длинная рука аццелеры, похоже собираются стандартизировать верификацию...... а они давно хотели библиотеку в стандарт SV запихнуть, но сейчас эти настроения ушли, и даже наоборот - образовалась партия, которая вещает о том, что стандарт уже и так перегружен и по идее его нужно разгружать. так что стандартизировать будут отдельным номером. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cms 0 15 февраля, 2010 Опубликовано 15 февраля, 2010 · Жалоба обвинение синопсиса в плагиате в новой версии VMM автор не стесняется в выражениях %) Ну допустим в этом посте автор наезжает на то что основательно перелопаченную версию VMM 2009.12 синопсис пометил минорным релизом 1.2 - я кстати тоже удивился, как основательно они перелопатив VMM, скромно отиндексировали это десятичной точкой. И то что они помучившись таки добавили class factory - это я тоже заметил. И разбили верификацию на фазы - тоже есть. И VMM1.2 нормально могла симулироваться только начиная с VCS 2009.12 :) Правда к единому базовом классу они так весь VMM и не подвели. Но видать на то есть основания. слияние OVM и VMM подробно не смотрел, но похоже наделали оберток из одного в другое. Видится длинная рука аццелеры, похоже собираются стандартизировать верификацию...... Хорошие вести! После усушки и утряски вертеть эти классы станет легче. Вот собственно официальный документ о конечных намерениях: создать common base class library (CBCL) и Universal Verification Methodology (UVM) на основе этой CBCL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 30 мая, 2010 Опубликовано 30 мая, 2010 · Жалоба Хорошие вести! После усушки и утряски вертеть эти классы станет легче. Вот собственно официальный документ о конечных намерениях: создать common base class library (CBCL) и Universal Verification Methodology (UVM) на основе этой CBCL. ну всё свершилось 17 мая 2010 Accellera выпустила UVM 1.0 в общем те кто пользовался OVM будут приятно поражены сходством(в общем за основу он и брался). при беглом взгляде на док. кажется, что просто трибукв OVM заменили на UVM http://www.accellera.org/activities/vip (сам пакет) http://uvmworld.org/ (семечки пощёлкать) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 30 мая, 2010 Опубликовано 30 мая, 2010 · Жалоба ну всё свершилось 17 мая 2010 Accellera выпустила UVM 1.0 в общем те кто пользовался OVM будут приятно поражены сходством(в общем за основу он и брался). при беглом взгляде на док. кажется, что просто трибукв OVM заменили на UVM http://www.accellera.org/activities/vip (сам пакет) http://uvmworld.org/ (семечки пощёлкать) Подробно пока не смотрел, но что-нибудь там вообще от VMM есть? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 30 мая, 2010 Опубликовано 30 мая, 2010 · Жалоба Подробно пока не смотрел, но что-нибудь там вообще от VMM есть? :) на мой взгляд только упоминание для утешения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться