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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> ETH1000MAC, Проект 10/100/1000 MAC
BSACPLD
сообщение Oct 7 2011, 12:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Написал тут недавно Ethernet MAC. Теперь хочу провести небольшое тестирование. Приглашаю всех желающих.
Характеристики проекта:
1. Поддержка 10/100/1000 Full-Duplex.
2. Автоматическое определение типа пакета: broadcast, multicast, unicast.
3. Аппаратная проверка IP заголовка и контрольных сумм для IPv4 (ICMP, UDP).
4. Аппаратная генерация контрольных сумм для ICMP и UDP.
5. Отдельный контроллер MDIO с поддержкой автоматического определения скорости подключения (10/100 или 1000) для M88E1111.
Во вложении исходные коды и краткое описание портов и регистров.
Прикрепленные файлы
Прикрепленный файл  ETH1000MAC.rar ( 285.54 килобайт ) Кол-во скачиваний: 169
 
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Oct 8 2011, 06:44
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



А Jumbo оно у Вас поддерживает?
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 8 2011, 07:22
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(Koluchiy @ Oct 8 2011, 10:44) *
А Jumbo оно у Вас поддерживает?

Да. Я не ставил ограничение на размер пакета.
Размер приёмного буфера задаётся здесь:
Код
ETH1000RXFIFO            #(
                        .WIDTH (10),
                        .SIZE (8192),
                        .DEVICE_FAMILY (DEVICE_FAMILY),
                        .RAM_TYPE (RAM_TYPE),
                        .NUM_SYNC (3)
                        )
Go to the top of the page
 
+Quote Post
x736C
сообщение Oct 11 2011, 06:07
Сообщение #4


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

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Здравствуйте.
Поддерживает ли ядро pause или backpressure? И вообще что произойдет в случае переполнения буфера?
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 11 2011, 11:54
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(x736C @ Oct 11 2011, 10:07) *
Поддерживает ли ядро pause или backpressure?

А что это такое?
Цитата(x736C @ Oct 11 2011, 10:07) *
И вообще что произойдет в случае переполнения буфера?

Если свободного места в буфере недостаточно для хранения принимаемого пакета, то данный пакет выкидывается, а указатель приёмного FIFO возвращается на конец последнего принятого пакета.
Go to the top of the page
 
+Quote Post
des00
сообщение Oct 11 2011, 11:57
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(BSACPLD @ Oct 11 2011, 05:54) *
А что это такое?

pause фреймы для аппаратного flow_control


--------------------
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 15 2011, 07:57
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Коллеги, кто-нибудь уже успел протестировать? Очень прошу писать здесь о результатах.
Я нашёл ошибку в расчёте контрольной суммы для UDP. Исправленный вариант во вложении.
Прикрепленные файлы
Прикрепленный файл  ETH1000MAC.rar ( 12.2 килобайт ) Кол-во скачиваний: 80
 
Go to the top of the page
 
+Quote Post
almost
сообщение Oct 27 2011, 12:08
Сообщение #8


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

Группа: Свой
Сообщений: 199
Регистрация: 27-05-09
Из: Москва
Пользователь №: 49 648



А CRC как считаете? По всем правилам или по "кандовому" одним вычитанием?)
Какая связь с PHY - RGMII?

Сообщение отредактировал almost - Oct 27 2011, 12:09
Go to the top of the page
 
+Quote Post
SFx
сообщение Oct 27 2011, 20:25
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Поглядел код, чуточку, сразу бросилось в глаза жесткая привязка к месту CRC в UDP. Что же будет с пакетом, у которого в IP заголовке поля Options вдруг появятся ?
(хотя, может быть я конечно не до конца "воткнул" в код, но все равно над таким вопросом стоит задуматься хоть раз))) )
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 28 2011, 06:43
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(almost @ Oct 27 2011, 16:08) *
А CRC как считаете? По всем правилам или по "кандовому" одним вычитанием?)
Какая связь с PHY - RGMII?

CRC32 считаю с помощью http://www.easics.be/webtools/crctool
Checksum считаю суммированием с учетом циклического переноса (взято из RFC1071).
Связь с PHY через MII/GMII (переключается с помощью сигнала set_1000).

Цитата(SFx @ Oct 28 2011, 00:25) *
Поглядел код, чуточку, сразу бросилось в глаза жесткая привязка к месту CRC в UDP. Что же будет с пакетом, у которого в IP заголовке поля Options вдруг появятся ?
(хотя, может быть я конечно не до конца "воткнул" в код, но все равно над таким вопросом стоит задуматься хоть раз))) )

Привязка действительно жёсткая. Просто в большинстве применений поле Options отсутствует. Если придёт пакет с опциями, т.е. с длиной не равной 0x45, то он будет отброшен. Если нужно принимать пакет с опциями, то аппаратную проверку придётся отключить и проверять пакеты программно.

P.S. Нашёл ещё несколько ошибок. Исправление во вложении.
Прикрепленные файлы
Прикрепленный файл  ETH1000MACv3.rar ( 282.81 килобайт ) Кол-во скачиваний: 127
 
Go to the top of the page
 
+Quote Post
SFx
сообщение Oct 29 2011, 11:03
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(BSACPLD @ Oct 28 2011, 10:43) *
Привязка действительно жёсткая. Просто в большинстве применений поле Options отсутствует. Если придёт пакет с опциями, т.е. с длиной не равной 0x45, то он будет отброшен. Если нужно принимать пакет с опциями, то аппаратную проверку придётся отключить и проверять пакеты программно.

А что мешает вам брать второй нибл из первого байта IP Заголовка и делать в соответствии с ним поправку ? ( если 0x45 то +20, если 0ч46 то +24 и так далее... или просто брать и сдвигать налево на два бита...)
Кстати, а как дела обстоят с VLANами?

P.S. очень рад что Вы делаете это проект и делитесь исходниками. это безусловно кому то когда то поможет!
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 31 2011, 11:51
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(SFx @ Oct 29 2011, 15:03) *
А что мешает вам брать второй нибл из первого байта IP Заголовка и делать в соответствии с ним поправку ? ( если 0x45 то +20, если 0ч46 то +24 и так далее... или просто брать и сдвигать налево на два бита...)
Кстати, а как дела обстоят с VLANами?

P.S. очень рад что Вы делаете это проект и делитесь исходниками. это безусловно кому то когда то поможет!

Просто сразу не подумал о такой возможности.
С VLAN дела пока никак.
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Dec 17 2011, 19:38
Сообщение #13


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Очень интересно. Жаль написано на SV и под Альтеру...
Вот бы под Xilinx....
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Dec 18 2011, 07:27
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(AlphaMil @ Dec 17 2011, 23:38) *
Очень интересно. Жаль написано на SV и под Альтеру...
Вот бы под Xilinx....

По поводу Xilinx:
SV - используйте Synplify
Модули, сделанные с помощью мегафункций, замените на такие же сгенерённые Core Generator'ом.
Go to the top of the page
 
+Quote Post
AlphaMil
сообщение Dec 18 2011, 11:09
Сообщение #15


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

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



К сожалению опыта использования Synplify нет. Да и Ethernet - это только капля всего проекта. Основная и главная часть совсем в другом...
Пока мучаюсь и пишу свой контроллер с урезанными функциями.
Go to the top of the page
 
+Quote Post

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

 


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


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