|
|
  |
Как моделировать/отлаживать? |
|
|
|
Feb 28 2009, 13:37
|
Местный
  
Группа: Свой
Сообщений: 221
Регистрация: 23-10-05
Из: Мск
Пользователь №: 10 006

|
Всем привет.
Есть у меня обобщенный вопрос. Как моделировать цифровое устройство на ПЛИС, если оно в процессе работы должно взаимодействовать с внешними устройствами.
Как реализовать и промоделировать модель устройства только на ПЛИС - понятно: описал на verilog/VHDL, создал тест, промоделировал, например, в ModelSim.
А как проверять модель, если она постоянно должна общаться в внешним устройством? (Модель, реализованная в ПЛИС постоянно что-то вычисляет и выдает результат внешнему устройству и в ответ получает сигнал управления от внешнего устройства.)
Несколько сумбурно, но надеюсь вопрос понятен.
Из того, что уже нашёл - склоняюсь к тому, что, видимо, можно попробовать использовать интерфейс PLI verilog и действие внешнего устройства описывать в виде программы на С. В правильную сторону смотрю или есть что-то ещё?
|
|
|
|
|
Mar 1 2009, 02:20
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(:-) @ Feb 28 2009, 22:36)  Для себя проблему вижу в следующем: внешнее устройство должно производить довольно сложные манипуляции над данными, полученными из ПЛИС (вычислять арктангенс, выполнять цифровую фильтрацию и т.д.). Не представляю как можно это описать на verilog (но реализация на С проблем не вызывает). а что тут сложного? смысл в том, что синтезируемый фильтр делать не надо, напишите просто свертку типа c=sum(a(i)*b(i)). можно даже с вещ. числами работать, если это удобнее. я не помню, есть ли арктангенс в библиотеке math, но даже если нет - сляпать cordic - дело 15 минут. еще раз : возможностей xHDL языков для этих задач хватит с лихвой, C - лишняя сущность, отсекается бритвой Оккама.
|
|
|
|
|
Mar 12 2009, 09:26
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(:-) @ Feb 28 2009, 16:37)  А как проверять модель, если она постоянно должна общаться в внешним устройством? (Модель, реализованная в ПЛИС постоянно что-то вычисляет и выдает результат внешнему устройству и в ответ получает сигнал управления от внешнего устройства.) Все что нужно уже было сказано. Самое простое и быстрое в освоении - общаться через файлы. Входной файл данных, выходной файл данных. На С делаете программку, которая генерит входной для ПЛИС файл, и программку, которая обрабатывает результаты выходного файла. И если есть возможность, то так же на С делаете модель Вашей ПЛИС. Прогоняете через нее входной файл и смотрите разницу между выходными файлами... Потом, после корректировки проекта подгоняете ПЛИС под С модель... Но можно конечно освоить и более навороченные способы.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|