Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Одновременная симуляция firmware и HDL
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Evgeny_CD
========== Предыдущие обсуждения по теме ==========

Dream Platform II: недостающая часть мозаики (с картинками)
http://www.caxapa.ru/echo/arm.html?id=65177
http://electronix.ru/forum/index.php?showtopic=19870

Дополнение про Dream Platform II
http://www.caxapa.ru/echo/arm.html?id=65704
http://electronix.ru/forum/index.php?s=&am...st&p=146180

Dream Platform: "$8, которые изменили мир"
http://www.caxapa.ru/echo/arm.html?id=65085
http://electronix.ru/forum/index.php?showtopic=19858

Благодарность за наводку Gate::Electronix.

========== Книга, примеры, ресурсы ==========

The Verilog PLI Handbook:
A Tutorial and Reference Manual on the Verilog Programming Language Interface,Second Edition
Hardcover, 806 pages
$160 (available from the pubisher, Amazon.com, Barnes and Noble, Walmart, or other book stores)
Copyright 2002, Springer (formerly Kluwer Academic Publishers), Norwell MA
ISBN: 0-7923-7658-7
http://www.sutherland-hdl.com/publications...0PLI%20Handbook

!!! Книгу в розыск - мне пока ее найти не удалось !!!

Verilog PLI Examples
David Robert's Socket Example
http://www.sutherland-hdl.com/pli_book_examples.html

Сайт по PLI
http://www.chris.spear.net/pli/default.htm

========== Идея ==========

Все свои идеи по "расщепленной структуре" я разрабатывал с одной целью: иметь механизм разбиеия большого проекта на кучку автономных подзадач с простым механизим взаимодействия между ними.

Идея nanoPCI и тесно связанная с ней идея "сокетной отладки" позволяют виртуализировать аппаратные модули: все взаимодействие с модем идет через высокоуровневые транзакции, а уж через что они физически проходят - это не важно.

Рассмотрим на примере разработки контроллера, который в том числе, должен делать фотографии в JPEG.

Делаем плату захвата:
* контроллер примитивный
* FPGA
* SDRAM
* TV декодер
* Ethernet
* nanoPCI

Логика в FPGA не сильно сложная. SDRAM - готовая корка, все остальное там примитивно.

Простой протокол на основе UDP для общения с платой по Ethernet.

Берем синтетический порт uCOS для Win32 и пишем там всю математику. Либу JPEG берем тут http://www.ijg.org/.

Драйвера "видеозахвата" общаются с платой по UDP.

Отладили логику. Запустили на реальном железе (там плата видеозахвата уже не по IP, а по nanoPCI подрублена). Получили 0.1fps, зато вся логика системы работает. Сдали заказчику первый этап.

Берем человека (аутсорс самое то!). Он пишет на *HDL например, DCT (корка из корегена + интерфейс к ней). Делаем из этого модель с сокетным интерефейсом. Добиваемся того, чтобы в симулятре было безразлично - обычный программный кодек или наша HDL модель.

Синтезируем проект, корректируем HDL модель. Тут же проверяем ее в составе всей системы (а не просто на file IO).

Делаем плату с "компрессионой" FPGA с nanoPCI. Делаем мамку - коммутатор данных. Проверяем все на железе - О.К. - 1 fps получилось (услово). Может и хватит. Нет - постепенно всю остальную работу по JPEG переносим на FPGA.

Я знаю о наличии большого количества готовых JPEG кодеков - JPEG взят для примера.

Понятно, что вместо синтетического порта можно использовать симулятор, в котором симулируемый процессор может получить доступ к сокетам. SID самое то
http://sourceware.org/sid/
Тем более именно на нем редхатовцы в 2000 году делали то же, о чем я пишу. smile.gif

Coldfire Emulator
http://www.slicer.ca/coldfire/download.php
тоже, вероятно, можно прохачить на тему доступа к сокетам.

Таким образом, мы получаем сквозную систему симуляции всего, что относится к проекту!!!

Мои познания в Verilog, VHDL пока пренебрежимо малы, посему вопросы к знатокам

1. Какие средства разработки нужны, чтобы поднять этот PLI?

2. Можно ли это сделать в рамках Xilinx WEB Pack и других софтов, которые можно получить бесплатно.

3. Кто-нибудь с PLI работал? Как оно?

4. Есть ли у VHDL аналог PLI?

5. Где добыть книжку?
acex2
Цитата(Evgeny_CD @ Aug 22 2006, 22:32) *
1. Какие средства разработки нужны, чтобы поднять этот PLI?
2. Можно ли это сделать в рамках Xilinx WEB Pack и других софтов, которые можно получить бесплатно.
3. Кто-нибудь с PLI работал? Как оно?
4. Есть ли у VHDL аналог PLI?
5. Где добыть книжку?


Сейчас PLI/FLI не в моде (FLI - это аналог PLI для VHDL). Mentor давно уже продвигает идею DPI (Direct Programming Interface) в связи с лоббированием SystemVerilog.

Насчет поддержки PLI/FLI, тут потребуется SE версия ModelSim. По крайней мере, раньше так было.

Вместо книжки можно почитать часть руководства к ModelSim, посвященного PLI/FLI, там ничего сверхестественного нет.
Evgeny_CD
Цитата(acex2 @ Aug 22 2006, 23:07) *
Сейчас PLI/FLI не в моде (FLI - это аналог PLI для VHDL). Mentor давно уже продвигает идею DPI (Direct Programming Interface) в связи с лоббированием SystemVerilog.
Но, насколько я понимаю, для SystemVerilog нужен совсем не ModelSim. Тогда понятно, зачем они SystemVerilog двигают smile.gif

Мода-модой, но если это часть стандарта, оно ведь завтра не умрет?
Цитата(acex2 @ Aug 22 2006, 23:07) *
Насчет поддержки PLI/FLI, тут потребуется SE версия ModelSim. По крайней мере, раньше так было.
Ок. Интересно, сколько она официально стоит? Так, для общего развития...
BSV
Всего ничего - порядка 30 К Президентов.

Забыл указать - это только первоначальная годовая подписка.
Далее - кажется, половина этой суммы ежегодно (тут я могу ошибаться).
Evgeny_CD
Цитата(BSV @ Aug 22 2006, 23:37) *
Всего ничего - порядка 30 К Президентов.
Действительно, сущие пустяки для "настоящих пацанов" biggrin.gif . Интересно, а сколько же тогда questasim (насколько я понимаю, именно он для System Verilog нужен) стоит?
acex2
Цитата(Evgeny_CD @ Aug 22 2006, 23:16) *
Мода-модой, но если это часть стандарта, оно ведь завтра не умрет?


В ближайшее время навряд-ли. За последние лет 10 у компаний скопилось слишком много наработок на связке Verilog+PLI, чтобы вот так вот просто перейти на SystemVerilog. Да и цены на SystemVerilog симуляторы пока поражают воображение :-) Это при том, что Verilog+PLI можно даже на GPL симуляторе от Pragmatic-C делать. Про "моду" я упомянул в смысле тенденций со стороны EDA компаний.
Camelot
В Акив ЧДЛ есть такой же аналог библиотек подобных FLI 'n' PLI, в других симуляторах тоже. Мне вот не понятно, вы хотите сделать проект для отладки в железе? Если да, то в свое время, пришлось немножко проработать в компании которая этим занимается www.alatek.com, они как раз такими вещами занимаются. Личо мои впечатления об PLI, както решил написать с помощью него контроллер видео вывода на верилоге и вывод через эту библиотеку в приложение, которому передавались управляющие сигналы и данные. Написал, работало, но чтоб вывести 1 видеостраницу уходило около 5 часов. Может комп еще тормозной был. В железе с этим тоже не лучше, правда не знаю кокого достигла результата сейчас вышеприведенная фирма, но ранее ускорение симуляции было не значительно. Хотя есть один плюс, работает в железе. Извените, если не по теме, может не так понял.
AVR
Извините за оффтоп, что такое PLI?
Насколько я понял, с помощью PLI можно загонять входые данные которые получаются при выполнении программы на С в симулятор verilog/vhdl?
Doka
что-то не до конца понял задумку насчет FPGA и сокетов :-/
посему присоединяюсь к мнению Camelot.
на РС симуляция проходит очень медленно...
хотя задумка PLI и его преемников (как я себе представляю), именно в ускорении симуляции: часть тестов может быть написана на Си => бысттрее, ибо не интерпретация, а исполнение откомпилированного кода
..
действительно может перспективнее сразу смотреть в сторону аппаратной ко-симуляции?
пусть она будет работать на частотах в 10 раз ниже реальной тактовой, но это будет весьма впечатлительное ускорение по сравнению с моделированием на РС.
и тут могут пригодиться енти пресловутые сокеты (если скоростей JTAGа не хватит, ктоторый , кстати, после прогрузки плис, может использоваться приложением пользователя для его специфических задач) подцеплять Eth MAC-корку (к примеру выложенную на opencores_org нашим соотечественником) и гнать по Eth в РС, где в моделсиме просто выводить полученые waveforms. Да и то это только в том случае, если приложение довольно сложное и написание самоверифицирующегося кода не помогает выявить баги либо нужна дополнительная визуализация для интерпретации обработанных данных (Жипег или видеокодеки - как пример)

PS: объявленного в розыск handbook нет, но есть другие доки:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла (из всего документа с адским (в буквальном смысле слова) количеством страниц интерес представляет 50страничное приложение "Verilog PLI / VPI / DPI")

PPS: наконец-то прикрепление больших файлов почеловечески заработало
Evgeny_CD
Pragmatic-C - это оно?
http://www.pragmatic-c.com/gpl-cver/index.htm
Кто-нибудь его пробовал? Оно работает? Что-то там жизнь замерла год назад...

Софтвеерная симуляция привлекательна тем, что можно глубже покопаться в недрах симулируемого девайса.

В рамках Dream Platform II ко-симуляция, конечно же, возможна. Собственно, для этого оно и придумывается. biggrin.gif Но чисто софтвеерная симуляция еще полезна в плане работы с аутсорсерами.

Евал борда на Spartan3E-500 - готовый девайс для косимуляции biggrin.gif Надо там только microblaze "проредить", да Ethernet-Lite корку юзать, чтобы ресурсы кристалла для симуляции использовать.

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

Большое спасибо за литературу!
acex2
Цитата(Evgeny_CD @ Aug 25 2006, 02:12) *
Pragmatic-C - это оно?
http://www.pragmatic-c.com/gpl-cver/index.htm
Кто-нибудь его пробовал? Оно работает? Что-то там жизнь замерла год назад...


Да, это оно. Сам не пробовал, так как не было необходимости, но работать должно, учитывая богатую историю (см. FAQ на их страничке).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.