Перейти к содержанию
    

Ethernet+RGMII+Marvel+Terasic DE2+1GB data transfer rate

Всем привет,

 

озадачился написать минимально возможную и простую в эксплуатации корку для 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к блочной памяти, поэтому мне надо делать свою корку, которую я сам смог бы встроить в алгоритм генерации данных, тем самым съэкономив ресурсы.

 

Спасибо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подсказать, не подскажу, но нафлудить нафлудю :)

А это что за сигналы у вас перечислены, контакты ПЛИС которые на Marvell уходят?

А что за пакет формируете, MAC-уровня?

А программа tcpdump, что делает, ловит пакеты TCP?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подсказать, не подскажу, но нафлудить нафлудю :)

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

 

А это что за сигналы у вас перечислены, контакты ПЛИС которые на Marvell уходят?

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

 

А программа tcpdump, что делает, ловит пакеты TCP?

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

 

А что за пакет формируете, MAC-уровня?

А программа tcpdump, что делает, ловит пакеты TCP?

 

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

 

Счастливо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все остальное

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

не факт, что удастся обойтись без MDC и MDIO. возможно PHY необходимо предварительно сконфигурировать, чтобы включить RGMII. по крайней мере на альтеровской борде это так. как на вашей - не в курсе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет,

 

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

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

Между фреймами необходимо сбрасывать TX_EN. TX_ERR установить в 0.

Начать отладку советую в MII режиме, тогда не нужен GTX_CLK, и вообще проще будет.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то в 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 в МАС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообще-то в Altera TSE есть вариант "1000 Small MAC" и "10/100 Small МАС". откройте документацию.

 

вот для циклонаIII:

1,655 Comb.ALUT

1,279 LogicRegs

24 Memory(M9K)

 

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

 

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

 

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

 

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

 

Счастливо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...