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

 
 
 
Reply to this topicStart new topic
> Как моделировать/отлаживать?
:-)
сообщение Feb 28 2009, 13:37
Сообщение #1


Местный
***

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



Всем привет.

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

Как реализовать и промоделировать модель устройства только на ПЛИС - понятно: описал на verilog/VHDL, создал тест, промоделировал, например, в ModelSim.

А как проверять модель, если она постоянно должна общаться в внешним устройством? (Модель, реализованная в ПЛИС постоянно что-то вычисляет и выдает результат внешнему устройству и в ответ получает сигнал управления от внешнего устройства.)

Несколько сумбурно, но надеюсь вопрос понятен.

Из того, что уже нашёл - склоняюсь к тому, что, видимо, можно попробовать использовать интерфейс PLI verilog и действие внешнего устройства описывать в виде программы на С. В правильную сторону смотрю или есть что-то ещё?
Go to the top of the page
 
+Quote Post
ataradov
сообщение Feb 28 2009, 16:22
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Цитата(:-) @ Feb 28 2009, 16:37) *
Есть у меня обобщенный вопрос. Как моделировать цифровое устройство на ПЛИС, если оно в процессе работы должно взаимодействовать с внешними устройствами.


В тестбенче описывать поведение внешнего устройства. Вся прошивка ПЛИС - UUT.

Собственно непонятно с чем проблемы?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Feb 28 2009, 16:23
Сообщение #3


Гуру
******

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



Цитата(:-) @ Feb 28 2009, 19:37) *
Есть у меня обобщенный вопрос. Как моделировать цифровое устройство на ПЛИС, если оно в процессе работы должно взаимодействовать с внешними устройствами.
...
А как проверять модель, если она постоянно должна общаться в внешним устройством? (Модель, реализованная в ПЛИС постоянно что-то вычисляет и выдает результат внешнему устройству и в ответ получает сигнал управления от внешнего устройства.)
...

тут зависит от сложности внешнего устройства/устройств. вообще говоря, языки xHDL - это языки описания и моделирования аппаратуры, т.е. среда полностью замкнутая (можно описать и свое устройство и смоделировать внешнее воздействие на него). причем никто не заставляет детально описывать внешнее устройство - вполне достаточно простого поведенческого (синтезировать-то не надо). так что описывайте внешнее устройство на том языке, которым лучше владеете.
Go to the top of the page
 
+Quote Post
:-)
сообщение Feb 28 2009, 16:36
Сообщение #4


Местный
***

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



Для себя проблему вижу в следующем: внешнее устройство должно производить довольно сложные манипуляции над данными, полученными из ПЛИС (вычислять арктангенс, выполнять цифровую фильтрацию и т.д.). Не представляю как можно это описать на verilog (но реализация на С проблем не вызывает).
Go to the top of the page
 
+Quote Post
ataradov
сообщение Feb 28 2009, 18:25
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Цитата(:-) @ Feb 28 2009, 19:36) *
Для себя проблему вижу в следующем: внешнее устройство должно производить довольно сложные манипуляции над данными, полученными из ПЛИС (вычислять арктангенс, выполнять цифровую фильтрацию и т.д.).


Для моделирования можно в сети найти функции реализующие тригонометрию. Фильтрация выполняется довольно очевидно. Главное достоинство - все останется в рамках одного языка.

На Си конечно можно, но думаю, можно убить тучу времени на отладку всего этого. И не факт, что при желании перейти на другие средства разработки не придется все переделывать.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 1 2009, 02:20
Сообщение #6


Гуру
******

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



Цитата(:-) @ Feb 28 2009, 22:36) *
Для себя проблему вижу в следующем: внешнее устройство должно производить довольно сложные манипуляции над данными, полученными из ПЛИС (вычислять арктангенс, выполнять цифровую фильтрацию и т.д.). Не представляю как можно это описать на verilog (но реализация на С проблем не вызывает).

а что тут сложного? смысл в том, что синтезируемый фильтр делать не надо, напишите просто свертку типа c=sum(a(i)*b(i)). можно даже с вещ. числами работать, если это удобнее. я не помню, есть ли арктангенс в библиотеке math, но даже если нет - сляпать cordic - дело 15 минут. еще раз : возможностей xHDL языков для этих задач хватит с лихвой, C - лишняя сущность, отсекается бритвой Оккама.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Mar 1 2009, 02:40
Сообщение #7


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

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



верилог позволяет вызывать Сишную функтию как любую верилоговскую функцию через интерфейс DPI.


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
tims
сообщение Mar 12 2009, 08:42
Сообщение #8


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

Группа: Свой
Сообщений: 89
Регистрация: 18-08-04
Пользователь №: 519



Можно функции таблично в файл. Потом оттуда читать-писать.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 12 2009, 09:26
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(:-) @ Feb 28 2009, 16:37) *
А как проверять модель, если она постоянно должна общаться в внешним устройством? (Модель, реализованная в ПЛИС постоянно что-то вычисляет и выдает результат внешнему устройству и в ответ получает сигнал управления от внешнего устройства.)


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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 16:56
Рейтинг@Mail.ru


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