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

 
 
> Как отладить своюпериферию на NIOS
zorromen
сообщение Aug 3 2008, 06:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Здравствуйте, Уважаемые. Нужна помощь, требуется написать свою периферию на NIOS. Но как известно написать можно, а как оно работать будет? Вот интересует как отладить сие чудо. С тестбенчем только начал разбираться, вроде чтото получается. Только тут я сам пишу воздействия, а меня интересует, как эти воздействия делает сам процессор, ну и смотреть как периферия работает.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
Postoroniy_V
сообщение Aug 3 2008, 07:01
Сообщение #2


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(zorromen @ Aug 3 2008, 15:53) *
Здравствуйте, Уважаемые. Нужна помощь, требуется написать свою периферию на NIOS. Но как известно написать можно, а как оно работать будет? Вот интересует как отладить сие чудо. С тестбенчем только начал разбираться, вроде чтото получается. Только тут я сам пишу воздействия, а меня интересует, как эти воздействия делает сам процессор, ну и смотреть как периферия работает.

тут полезный документ про авалон шину
http://www.altera.com/literature/manual/mn...ss=avalon%20pdf


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 4 2008, 07:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 zorromen - в принципе читается документик который привёл Postoroniy_V. далее на основе его делается wrapper для своей периферии. А вот после этого есть несколько путей:

А) повыводить интересующие линии в квартусовском симуляторе для собранного wrapper+pheripheral: создать свой VWF файл с интересующей набивкой, исходя из соображений, который мы сделали прочитав документик "mnl_avalon_spec.pdf " Ну и далее смотреть на результаты. Интересен тем, что в нём учитываются все задержки в ЛУТах и тригерах - только требует пересинтезации при смене дизайна - без полного синтеза не запустится..
Я так понял не совсем предпочитаемый метод многими гуру. Ну плюс есчё надо VHDL редактировать..

Б) ничего не надо редактировать - используем ModelSim - там можно выводить абсолютно все сигналы, который присутствуют в architecture. Главное задать правильные входовые сигналы - опять же опираясь на "mnl_avalon_spec.pdf ". Вот я только пока не разобрался как задавать произвольного вида сигналы в vawe.
Недостаток тот, что не учитывает задержки на прохождения в реальной системе..

В) Отлаживается всё в куче - где то проскакивал документик, при чём совсем недавно - альтеровская апнота - когда собирается система - выставляются соответсвующие галочки в SoPC и NIOSII IDE и потом это всё загоняется опять же в ModelSim - тут нужно подвести соответсвующие сигналы - как RST и Clock для NIOSII - ну и вывести интересующие нас сигналы - вроде бы будет как полная аналогия с реальной системой... Это по идее

Г) Использовать SignalTap - типа как тыкаться осцилографом по уже существующему прожекту в сигналы и смотреть что будет. Интересен тем, что может срабатывать по фронтам сигналов. Недостаток в том, что юзает встроенную память кристала - много чего не посмотриш..

Вот вроде бы всё, есчё что забыл - поправьте..
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Aug 4 2008, 07:56
Сообщение #4


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(Kuzmi4 @ Aug 4 2008, 16:31) *
2 zorromen - в принципе читается документик который привёл Postoroniy_V. далее на основе его делается wrapper для своей периферии. А вот после этого есть несколько путей:

А) повыводить интересующие линии в квартусовском симуляторе для собранного wrapper+pheripheral: создать свой VWF файл с интересующей набивкой, исходя из соображений, который мы сделали прочитав документик "mnl_avalon_spec.pdf " Ну и далее смотреть на результаты. Интересен тем, что в нём учитываются все задержки в ЛУТах и тригерах - только требует пересинтезации при смене дизайна - без полного синтеза не запустится..
Я так понял не совсем предпочитаемый метод многими гуру. Ну плюс есчё надо VHDL редактировать..

Б) ничего не надо редактировать - используем ModelSim - там можно выводить абсолютно все сигналы, который присутствуют в architecture. Главное задать правильные входовые сигналы - опять же опираясь на "mnl_avalon_spec.pdf ". Вот я только пока не разобрался как задавать произвольного вида сигналы в vawe.
Недостаток тот, что не учитывает задержки на прохождения в реальной системе..

В) Отлаживается всё в куче - где то проскакивал документик, при чём совсем недавно - альтеровская апнота - когда собирается система - выставляются соответсвующие галочки в SoPC и NIOSII IDE и потом это всё загоняется опять же в ModelSim - тут нужно подвести соответсвующие сигналы - как RST и Clock для NIOSII - ну и вывести интересующие нас сигналы - вроде бы будет как полная аналогия с реальной системой... Это по идее

Г) Использовать SignalTap - типа как тыкаться осцилографом по уже существующему прожекту в сигналы и смотреть что будет. Интересен тем, что может срабатывать по фронтам сигналов. Недостаток в том, что юзает встроенную память кристала - много чего не посмотриш..

Вот вроде бы всё, есчё что забыл - поправьте..

всё так.
есть ещё одно добавление
если устройство слейв и не нужны мега скорости, то можно упростить отладку. тоесть забить на отладку взаимодействия проца с вашей периферией.
достигается это так - делаете 1 слейв(avalon_tristate_slave) в пространстве адресом проца скажем 0x1000-0x1FFF, выводите со слейва нужные сигналы. Обычно это wr,rd,cs,address,data(bidir)
вот и всё! затем просто к этим сигналам подключаете свой слейв(или несколько слейвов smile.gif )(естественно тайминги при генерации avalon_tristate_slave, ставите такие чтобы слейв успевал выдавать данные при чтении процом и записывать "внутрь себя").
таким образом вся система генерится всего 1 раз( япро ниос + всякие dma и прочее + наш слейв интерфейс avalon_tristate_slave)
ну а для всяких шустрых вещей и мастеров придётся читать подробнее про авалон шину smile.gif


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 4 2008, 08:37
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 all - кстати уважаемые, пока тема не заглохла - не подскажет кто как делать в модельсиме vawe со своей набивкой??
В VWF я делал например так для входного сигнала Read_request:
Код
TRANSITION_LIST("Read_request")
{
    NODE
    {
        REPEAT = 1;
        LEVEL 0 FOR 2300.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;
        LEVEL 0 FOR 100.0;
        LEVEL 1 FOR 500.0;


А как быть в такой же ситуации в ModelSim`е ?
Как не тыкался в ModelSim`е - нашёл только темплаты для сигналов. Не может же быть так, что нельзя задавать произвольный сигнал..

1111493779.gif
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Aug 4 2008, 12:42
Сообщение #6


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(Kuzmi4 @ Aug 4 2008, 12:37) *
2 all - кстати уважаемые, пока тема не заглохла - не подскажет кто как делать в модельсиме vawe со своей набивкой??

Я делаю так. Имеется hdl-описание проекта. К нему создается описание входного воздействия и тестбенч (тестовая коробочка, где проект объединяется со входным воздействием) - их можно создавать как в виде отдельных hdl-файлов, так и объединить в одном файле.
В моделсиме компилируются все файлы в соответствии с иерархией - сперва входное воздействие и проект, тестбенч компилируется последним. Для моделирования выбирается тестбенч, сигналы для отображения в wave можно выбирать самому.
Примеры входного воздействия и тестбенча прилагаю.
Прикрепленные файлы
Прикрепленный файл  testbench.zip ( 873 байт ) Кол-во скачиваний: 60
 


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Aug 4 2008, 13:43
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Stewart Little - благодарствую!
Go to the top of the page
 
+Quote Post
zorromen
сообщение Aug 4 2008, 17:05
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Фу как все сложно
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Aug 5 2008, 08:39
Сообщение #9


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(zorromen @ Aug 4 2008, 21:05) *
Фу как все сложно

bb-offtopic.gif
Природа не терпит трех вещей - пустоты, чистоты и простоты... smile.gif
На самом деле ничего сложного нет. Нужно первый раз попробовать, набить немного шишек, зато потом все будет получаться само.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Feb 26 2009, 13:53
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Чтобы не плодить темы приклеюсь здесь :-)
Мне нужно создать контроллер I2S с мастером и сдвоенным ДМА. Или мастером с двойным буферированием?

Данные должны процессором(NIOS) подкачиватся в два буфера в оперативке, а мастер попеременно передавать из памяти на шину I2S.

У меня был пример тестбенча от Wisbone который я под Avalon переработал.
Модуль хоста отладил. данные из внутренних регистров гонял.
Модуль мастера переработаю с VGA контроллера.

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

Как правильно теперь связать все в кучу?
Не городить же арбитр шины и развязывать tri-state буферами?
Полность симулировать систему не хочется.

Сообщение отредактировал Omen_13 - Feb 26 2009, 15:27
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:07
Рейтинг@Mail.ru


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