|
|
  |
Ethernet + Cyclone + Nios |
|
|
|
Oct 30 2014, 09:31
|

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

|
Цитата(MrSeN @ Oct 30 2014, 13:44)  rx_clk короче чем rx_d должно быть наоборот, см. аттач Цитата tx_en в нуле а вот с tx_d самая проблема, эти сигналы всегда висят в нуле, это видно в сигналтабе, я их смотрю непосредственно как выход модуля tse. в сигналтапе их вы напрямую не увидите - это шина ddr. компилятор их тупо выкинет с соответствующим ворнингом. посмотреть txd можно на входе ddr-регистра, либо осциллографом
|
|
|
|
|
Nov 6 2014, 09:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Всем доброго дня. Возникла проблема с эзернетом от opencores, раньше использовал это ядро- такого не было.
Инициализирую PHY, линк есть, инициализирую MAC теми же значениями что и в предыдущем проекте. Регистрирую прерывание на прием пакетов, завожу один дескриптор на прием, указываю там буфер. В результате когда делаю пинг процессор попадает в прерывание по приему, читает источник IRQ и вместо бита RXC (принят пакет) или RXE (ошибка) вижу установленный бит BUSY :
This bit indicates that a buffer was received and discarded due to a lack of buffers. It is cleared by writing 1 to it. This bit appears regardless to the IRQ bits in the Receive or Transmit Buffer Descriptors.
Читаю регистр CTRL дескриптора функцией IORD_ETH_OCM_DESC_CTRL(ETH_OCM_0_BASE, 1) - получаю значение 0xe000, установленные биты означают:
- The data buffer is empty (and ready for receiving data) or currently receiving data. - When data is received (or error occurs), an RXF interrupt will be asserted (See 3.2 INT_SOURCE (Interrupt Source Register) for more details). - This buffer descriptor is the last descriptor in the buffer descriptor table. After this buffer descriptor is used, the first Rx buffer descriptor in the table will be used again.
Указатель на буфер в регистре правильный.
Что смотреть и куда копать - думаю, а пока решил спросить...
Раньше это ядро запускал на Q9.1 - сходу заработало, никаких проблем не было. Сейчас запускаю в QSYS на Q13.1.
UPD: прочитал еще doc-файл по авалон-интерфейсу, там написано что бит BUSY ставится при переполнении фифо на RX. Похоже действительно фифо переполняется, а прерывания по приему пакета не идут, только по переполнению фифо.
|
|
|
|
|
Dec 19 2014, 19:25
|
Группа: Новичок
Сообщений: 8
Регистрация: 11-11-13
Из: Москва
Пользователь №: 79 146

|
Добрый вечер , никто на форуме не запускал аппаратно под новый Quartus 13.1 или 14 проект UDP offload example. http://www.alterawiki.com/wiki/Nios_II_UDP_Offload_ExampleПлата основана на Cyclone 4 , имеет SDRAM , вместо DDR SDRAM 2. Я так понимаю на TSE также нужно покупать лицензию , ну или лечить. Микросхема dp83640 с интерфейсом rmii. На форуме альтеры также нашёл переходник mii to rmii. Qsys + переходник
Сообщение отредактировал everest - Dec 19 2014, 19:25
|
|
|
|
|
Dec 23 2014, 07:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(everest @ Dec 19 2014, 22:25)  Добрый вечер , никто на форуме не запускал аппаратно под новый Quartus 13.1 или 14 проект UDP offload example. http://www.alterawiki.com/wiki/Nios_II_UDP_Offload_ExampleПлата основана на Cyclone 4 , имеет SDRAM , вместо DDR SDRAM 2. Я так понимаю на TSE также нужно покупать лицензию , ну или лечить. Микросхема dp83640 с интерфейсом rmii. На форуме альтеры также нашёл переходник mii to rmii. Qsys + переходник А какие у Вас вопросы? Я свой проект с TSE v14.0 запускал, счас уже всё работает. Основная проблема оказалась в неправильном подключении TSE. После изменения его интерфейса подключения неправильно понял назначение портов и не работало, пока не залез внутрь TSE и не разобрался - что и куда надо подключать.
|
|
|
|
|
Jan 15 2015, 12:50
|
Группа: Новичок
Сообщений: 3
Регистрация: 28-10-13
Пользователь №: 78 932

|
А ни у кого нету примера с работающим приемом?
|
|
|
|
|
Mar 11 2015, 18:20
|
Группа: Новичок
Сообщений: 8
Регистрация: 11-11-13
Из: Москва
Пользователь №: 79 146

|
Цитата(doom13 @ Dec 23 2014, 10:02)  А какие у Вас вопросы? Я свой проект с TSE v14.0 запускал, счас уже всё работает. Основная проблема оказалась в неправильном подключении TSE. После изменения его интерфейса подключения неправильно понял назначение портов и не работало, пока не залез внутрь TSE и не разобрался - что и куда надо подключать. Взял готовый проект с сайта AlteraWiki. Собрал все в qsys. При компиляции в Eclipse выдаёт следующие ошибки. Цитата Код Description Resource Path Location Type make: *** [tut_app.elf] Error 1 tut_app C/C++ Problem undefined reference to `install_menu' demo_control.c /tut_app line 96 C/C++ Problem undefined reference to `stooges' tut_app line 0 C/C++ Problem http://www.alteraforum.com/forum/showthread.php?t=30536http://www.alteraforum.com/forum/showthread.php?t=45601В чём может быть проблема?
Сообщение отредактировал everest - Mar 11 2015, 18:23
|
|
|
|
|
Mar 14 2015, 08:52
|
Группа: Новичок
Сообщений: 8
Регистрация: 11-11-13
Из: Москва
Пользователь №: 79 146

|
Цитата(doom13 @ Mar 13 2015, 21:47)  Уберите из проекта всё лишнее, оставте сам процессор, память, TSE, SgDMA TX, SgDMA RX, descriptor_memory. Разберитесь с работой SgDMA (выше в теме был пример) и конфигурацией TSE. Спасибо за ответ. Как раз таки это все заработало на 11-ой версии Quartus на примере веб-сервера. (UCOS + NicheStack) Затем и lwip прикрутил без ос. Правда lwip + FreeRTOS так и не запустился, но это уже другая история... Интересовала именно аппаратная реализация UDP с кучей второстепенных блоков. Не очень понятна разница между данной версией на сайте альтеры и реализацией UDP у уважаемого vadimuzz, ужатого в один блок. Вроде бы и все ветки на форуме перечитал, посвящённые аппаратной реализацией udp протокола. Видимо я не очень-то хорошо разобрался , пойду дальше изучать.
Сообщение отредактировал everest - Mar 14 2015, 08:55
|
|
|
|
|
Mar 14 2015, 11:14
|
Группа: Новичок
Сообщений: 8
Регистрация: 11-11-13
Из: Москва
Пользователь №: 79 146

|
Цитата(doom13 @ Mar 14 2015, 13:26)  Формирование UDP-пакета (аппаратное) реализует один блок - udp_offload, всё остальное вспомогательные модули. На udp_offload подаются данные, он добавляет UDP-шапку и выдаёт на TSE, если работает несколько передатчиков - тогда на MAC заводятся через мультиплексор. Я его (udp_offload) допиливал под себя, чтобы была возможность посылать фрагментированный пакет. Стало более яснее, то есть по идее можно сделать на примере alterawiki и примера vadimuzz такой же блок (например udp_rx_offload) , но для приёма и обработки UDP пакета и при необходимости добавить демультиплексор. Естественно придётся писать драйвер.
|
|
|
|
|
Mar 14 2015, 12:04
|
Группа: Новичок
Сообщений: 8
Регистрация: 11-11-13
Из: Москва
Пользователь №: 79 146

|
Цитата(doom13 @ Mar 14 2015, 14:42)  Пример vadimuzz достаточен, чтоб запустить аппаратное формирование UDP и выдачу в сеть. По поводу приёма не понял, Вам нужен приёмник на логике? Да именно, было бы интересно сделать(переделать) аппаратный приём и обработку UDP пакетов на основе того же примера с сайта альтеры_вики.
|
|
|
|
|
Apr 7 2015, 11:48
|
Группа: Участник
Сообщений: 7
Регистрация: 7-04-15
Пользователь №: 86 104

|
Здравствуйте!) А каким образом задать для ПЛИС MAC и IP адрес. Cyclone III (Triple Speed Ethernet)
|
|
|
|
|
Aug 7 2015, 10:53
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932

|
Уважаемые гуру, помогите, пожалуйста, с проблемкой =) Имеется кит на Stratix 3 с 88е1111. В идеале нужно сделать UDP с обменом по SGMII. Что получилось: Конфиг через MDIO, связь через MII. Проблем нет, пакеты отправляются, принимаются. Т. к. я раньше не имел дело с SGMII решил использовать TSE. В перспективе в Qsys, но т.к. с SGDMA опять же не встречался, решил сначала запустить TSE без NIOS. И тут затык =( TSE сконфигуринован на small 10/100MAC. На входы вроде подаю правильно, а он молчит. В какую сторону копать?
clock - 50 МГц
Сообщение отредактировал Unfog - Aug 7 2015, 10:53
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|