Перейти к содержанию
    

Co-Verification

Сейчас подумываем об инвестициях в HW/SW Co-Verification and Co-Simulation Tool

 

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

Задача - иметь возможность начинать разработку/отладку Firmware на ранних стадиях разработки и интеграции RTL для довольно больших проектов SOC

 

1. Есть варианты купить Seamless CVE (Mentor Graphics), пользоваться старым Eaglei (Eagle Design Automation, Который Synopsys выкупил и похоронил лет 10 назад уже) или еще тулзы, о которых мы не знаем

 

2. Можно попробовать самим сделать такой In-House Tool, но тут видится много проблем с InterProcess Communication (IPC) between Instruction Set Simulator and Event Driven Simulator (IUS, VCS...)

 

3. Если кто-то делал такие тулзы для себя, как реализовывали оный IPC: sockets, shared memory , memory mapped files, pipes, message queues... ???

 

Мы также готовы нанять специалистов, которые имеют опыт в таких делах и реально смогут сделать что-то подобное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильная картинка - "Программный одладчик - ipc - iss+api+bfm ".

Первые 2 компонента - стандартные элементы, а последняя часть "легко" реализуется на SystemC/VHPI/PLI/VPI

Предложенный вами вариант очень медленный, т.к. для более-менее адекватной реализации нужен механизм запрос-подтверждение.

IPC - самая медленная составляющая.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а процессор какой? Он тоже в составе SOC? В каком виде он у Вас? RTL? Или связь с instruction set simulator только через Verilog PLI?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильная картинка - "Программный одладчик - ipc - iss+api+bfm ".

Первые 2 компонента - стандартные элементы, а последняя часть "легко" реализуется на SystemC/VHPI/PLI/VPI

Предложенный вами вариант очень медленный, т.к. для более-менее адекватной реализации нужен механизм запрос-подтверждение.

IPC - самая медленная составляющая.

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

 

 

День добрый, спасибо за ответ

 

1. Мы сейчас на стадии Research&Evaluation, поэтому рассматриваем разные варианты. Мне нужно оценить затраты по деньгам и времени

 

Доводом в вашу пользу можно сделать такую прикидку:

 

SPEED = MIN IPS {EVD, IPC}, где IPS = Instructions per Second , EVD = Event Driv Simulator, IPC = Inter Process Communication

 

Если взять программу в 100k инструкций и предположить, что IPC SPEED ( ISS < = > EVD ) = 200..500 IPS, а скорость симуляции SOC в цифровом симуляторе 200...1000 IPS ( данные вполне реальны! ), то выходит, что таки да, IPС будет Bottle Neck. :cranky:

 

2. (ГЛАВНОЕ) Мне нужно оценить SPEED vs Simulation Details. Понятно, что если, например, сделать overall bypass for memory (См. Картинку 1), то скорость увеличится, но вот (например) тайминги по BUS Transactions (AXI4) vs DDR2 пропадут и нужно будет думать о дальнейшем пути для system-level verification :help: Тоесть мне нужно понимать что можно выкинуть из симуляции, а что нет :laughing:

 

3. Насчет IPC, то в articles говорят, что Threads является самым предпочтительным по скорости, но не самым легким в реализации.... А то, что вы говорили, наверное имеется ввиду - делать через VPI and Callbacks, это и есть "традиционная" имплементация

 

4. Кроме того, мы планируем использовать FPGA для эмуляции synthesizable subset (понятно, для увеличения скорости симуляции самой цифры) и тут IPС видется одинаковым с точки зрения имплементации

 

5. Хотел бы услышать людей, которые такое делали реально, а еще лучше разрабатывали такие Environments. Есть ли какие-то примеры в Open Source на этот счет? Где можно было бы посмотреть примерчики реализаций с разными видами IPC ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите в сторону SCE-MI. У нас был проект, где использовались совместно софтверная часть и FPGA (соединялись через PCIe). Был реализован свой framework (ViCo) для собственно соединения и взят другой framework (LEAP, старое название HAsim) для написания модели процессора в FPGA

 

http://www.cs.washington.edu/education/cou...shar10_LEAP.pdf

Старая версия PCIe framework'а лежит в https://asim.csail.mit.edu/svn/vico/trunk/

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотрите в сторону SCE-MI. У нас был проект, где использовались совместно софтверная часть и FPGA (соединялись через PCIe). Был реализован свой framework (ViCo) для собственно соединения и взят другой framework (LEAP, старое название HAsim) для написания модели процессора в FPGA

 

http://www.cs.washington.edu/education/cou...shar10_LEAP.pdf

Старая версия PCIe framework'а лежит в https://asim.csail.mit.edu/svn/vico/trunk/

 

 

Очень хороший пост, информация достойная! Благодарю за feedback :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5..... Есть ли какие-то примеры в Open Source на этот счет? ...

хотя это не совсем то что вам нужно, но может пригодится

http://www.embecosm.com/articles/ear6/dvc-...erification.pdf

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что вы хотите получить, у Ментора называется теперь Questa Codelink. Однако начинать работы на этом уровне нужно после освоения и прохождения этапов расширенной верификации при помощи OVM/UVM, ну или просто тестовых окружений на SystemV. С этим неплохо справляется и QuestaSim . К тому же возможность подключения С моделей есть и тут.

Попытки создать такое самому были, но успехом не увенчались. Проще уж купить стенд с целевой ПЛИС и работать с ним.

 

Можно покурить ЭТО если вдруг требуется описание на языке Пушкина и Лермонтова для руководства(нашел в гугле).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То, что вы хотите получить, у Ментора называется теперь Questa Codelink. Однако начинать работы на этом уровне нужно после освоения и прохождения этапов расширенной верификации при помощи OVM/UVM

 

Это давно уже внедрено. We Perform SOC Verification in UVM TLM2.0 environment and perform Formal Verification.

Сейчас разрабатываем Spec for ISS - Simulator TLM Interface... У вас есть примерчики таких проектов? :help:

 

Как вы понимаете, у всех таких симуляторов проблема в Simulation RunTime and ISS-Digital Simulator-Emulation Board communication.

Should you have articles/boox/examples which address this issue, please share links.

 

Пока что лучший ответ был получен от XVR, видно, что человек работает в серьезной организации и реально работал с этим. Таких и ищем :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...