Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ethernet+RGMII+Marvel+Terasic DE2+1GB data transfer rate
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
iiv
Всем привет,

озадачился написать минимально возможную и простую в эксплуатации корку для RGMII c 1GB Ethernetом. Место тренировки, Терасиковская борда ДЕ2-115, должна быть у меня на столе уже в понедельник. Хочу поставить такой эксперимент, и, очень прошу всех покритиковать то ли я делаю, и правильно ли я мыслю.

Железо: терасиковская борда, соединенная по етернет кабелю с линукс компом.

На борде хочу генерить кадры вида

Код
8'b10101010 (7 раз)
8'b10101011
48'h... адреса получателя 48 бит
48'h... придумываю какой-то адрес отправителя
16'h05dc длина сообщения, которая соответствует 1500 байтам
1500'h... сами байты сообщения
32'h... crc сумма
96'h0 ожидание перед следующей посылкой


Правильно ли я понимаю, что если я подам клок в 125МГц на
Код
output                      ENET0_GTX_CLK;


а вот сюда
Код
output           [3:0]      ENET0_TX_DATA;

по двум фронтам буду скармливать с этим клоком сгенеренные мной данные, в все остальное
Код
input                      ENET0_INT_N;
input                      ENET0_LINK100;
output                      ENET0_MDC;
inout                      ENET0_MDIO;
output                      ENET0_RST_N;
input                      ENET0_RX_CLK;
input                      ENET0_RX_COL;
input                      ENET0_RX_CRS;
input           [3:0]      ENET0_RX_DATA;
input                      ENET0_RX_DV;
input                      ENET0_RX_ER;
input                      ENET0_TX_CLK;
output                      ENET0_TX_EN;
output                      ENET0_TX_ER;
input                      ENETCLK_25;

вообще трогать не буду, то tcpdump на приемном компьютере должен начать собирать получившиеся пакеты.

Пожалуйста, поправьте меня, если я где-то не прав!

Использовать готовую корку, похоже не смогу, все остальное у меня сожрало все ресурсы, оставив для игр 2к лутов и 4 х м9к блочной памяти, поэтому мне надо делать свою корку, которую я сам смог бы встроить в алгоритм генерации данных, тем самым съэкономив ресурсы.

Спасибо

ИИВ
kst
Подсказать, не подскажу, но нафлудить нафлудю sm.gif
А это что за сигналы у вас перечислены, контакты ПЛИС которые на Marvell уходят?
А что за пакет формируете, MAC-уровня?
А программа tcpdump, что делает, ловит пакеты TCP?
iiv
Цитата(kst @ Aug 5 2011, 01:52) *
Подсказать, не подскажу, но нафлудить нафлудю sm.gif

И на том - спасибо, во влуде рождается истина!

Цитата(kst @ Aug 5 2011, 01:52) *
А это что за сигналы у вас перечислены, контакты ПЛИС которые на Marvell уходят?

ага, они самые, могу марвел тех док выложить, если так проще, и, распиновку что куда воткнуто.

Цитата(kst @ Aug 5 2011, 01:52) *
А программа tcpdump, что делает, ловит пакеты TCP?

ага, вроде так

Цитата(kst @ Aug 5 2011, 01:52) *
А что за пакет формируете, MAC-уровня?
А программа tcpdump, что делает, ловит пакеты TCP?


мне главное ловить данные, все остальное - не важно. Проверку ошибочности сам могу реализаовать, мне это не сложно. Никто в этот момент на это етернет подключение ничего посылать не будет. Моя задача - достичь максимальной скорости передачи данных с плиски на комп, а потом научиться еще таскать даннные с компа на плиску, но пока самое актуальное - именно что-то близкое к гигабиту в секунду с плиски на комп. Комп мощный 6 ядер + 6ой Radeon + PCIx8 SSD, так что, словить, сохранить и обработать в реал тайм мой поток эмоций, думаю, что сможет.

Счастливо

ИИВ
vadimuzzz
Цитата(iiv @ Aug 5 2011, 00:04) *
все остальное
вообще трогать не буду, то tcpdump на приемном компьютере должен начать собирать получившиеся пакеты.

не факт, что удастся обойтись без MDC и MDIO. возможно PHY необходимо предварительно сконфигурировать, чтобы включить RGMII. по крайней мере на альтеровской борде это так. как на вашей - не в курсе.
Timmy
Цитата(iiv @ Aug 4 2011, 21:04) *
Всем привет,

озадачился написать минимально возможную и простую в эксплуатации корку для RGMII c 1GB Ethernetом. Место тренировки, Терасиковская борда ДЕ2-115, должна быть у меня на столе уже в понедельник. Хочу поставить такой эксперимент, и, очень прошу всех покритиковать то ли я делаю, и правильно ли я мыслю.

GTX_CLK должен быть отражением TX_CLK, который определяется 88E1111 и находится в независимом тайм домене. Причём необходимо уложиться в допуск на сдвиг фазы, не помню сколько.
Между фреймами необходимо сбрасывать TX_EN. TX_ERR установить в 0.
Начать отладку советую в MII режиме, тогда не нужен GTX_CLK, и вообще проще будет.

bark
вообще-то в Altera TSE есть вариант "1000 Small MAC" и "10/100 Small МАС". откройте документацию.
у меня сейчас вроде и полная версия занимает около 2К лутов(голый МАС), а объем использованной памяти настраивается довольно в больших пределах. (начиная от 4К бит и до 2*65536*32 бит).
весь проект с протоколами (ICMP, ARP, UDP) командами и ещё там чем-то занимал вроде около 7К.. но там дофига всего было.
(полный удалённый доступ к регистрам МАС и PHY с чтением записью и резервом на два канала МАС, необязательный расчет чексумм для UDP, набор пользовательских внутренних регистров RW, ещё пианино на 3 октавы =) т.к. присутствовал спикер)
облегченная наверняка влезет в ваш проект, при этом минимум геморроя.

судя по документации вариант 1000 Small MAC с RGMII с 2048x32-bit FIFO кушает:(!!пардон данные укзаны для стратикса)
843 Comb.ALUT
1,329 LogicRegs
22/0/128 Memory(M9K /M144K/ MLAB)


вот для циклонаIII:
1,655 Comb.ALUT
1,279 LogicRegs
24 Memory(M9K)

ещё можно отказаться от встроенного FIFO в МАС
iiv
Цитата(bark @ Aug 8 2011, 13:05) *
вообще-то в Altera TSE есть вариант "1000 Small MAC" и "10/100 Small МАС". откройте документацию.

вот для циклонаIII:
1,655 Comb.ALUT
1,279 LogicRegs
24 Memory(M9K)

ещё можно отказаться от встроенного FIFO в МАС


Вы правы, Барк, и огромное спасибо Вам за Ваш совет, а также всем остальным участникам тоже огромное спасибо за помощь!

Сожмотить пару тысяч регистров и несколько блоков памяти в моем же алгоритме для меня оказалось гораздо проще, чем разбираться с интерфейсом RGMII!

Я как-то листал этот мануал, но почему-то у меня сложилось впечатление, что оно только с ниосом нормально работает, а, при внимательном прочтении, все оказалось совсем не так.

Счастливо

ИИВ
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.