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

 
 
 
Reply to this topicStart new topic
> Ethernet+RGMII+Marvel+Terasic DE2+1GB data transfer rate
iiv
сообщение Aug 4 2011, 17:04
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

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

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
kst
сообщение Aug 4 2011, 19:52
Сообщение #2


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

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Подсказать, не подскажу, но нафлудить нафлудю sm.gif
А это что за сигналы у вас перечислены, контакты ПЛИС которые на Marvell уходят?
А что за пакет формируете, MAC-уровня?
А программа tcpdump, что делает, ловит пакеты TCP?
Go to the top of the page
 
+Quote Post
iiv
сообщение Aug 4 2011, 23:16
Сообщение #3


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



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

Счастливо

ИИВ
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Aug 5 2011, 00:29
Сообщение #4


Гуру
******

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



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

не факт, что удастся обойтись без MDC и MDIO. возможно PHY необходимо предварительно сконфигурировать, чтобы включить RGMII. по крайней мере на альтеровской борде это так. как на вашей - не в курсе.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Aug 5 2011, 05:18
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(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, и вообще проще будет.

Go to the top of the page
 
+Quote Post
bark
сообщение Aug 8 2011, 08:05
Сообщение #6


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

Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659



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


--------------------
Работаю 20ns в сутки.
Go to the top of the page
 
+Quote Post
iiv
сообщение Aug 9 2011, 16:42
Сообщение #7


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(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!

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

Счастливо

ИИВ
Go to the top of the page
 
+Quote Post

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

 


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


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