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

Terasic de2(eth0) соединить с Линукс компом, чтобы таскать туда-сюда данные

Всем привет,

 

в моем проекте есть одна незадача, которую я уже несколько раз пытался сам решить, но по нехватке времени откладывал. Есть терасиковская борда с Марвеллом 88E1111 на борту. Хочется, попользовав минимум плисологики, иметь возможность посылать туда-сюда БЫСТРО пакеты данных через этот етернет канал в произвольный линукс компьютер, который подключен с другой стороны. Соответственно с другой стороны на линуксе тоже нужен какой-то минимум, типа правильно организованный tcpdump. Важна скорость при посылке больших пакетов. Размеры пакетов - подстроюсь. Нужны нормальные исходники, или путевое руководство как мне это сделать. Ниосы и иже с ними очень не хотелось бы туда вкрячивать. Скорость нужна от 300мбит при непрерывной посылке данных, латентность - хз, сколько получится, но не секунда конечно. Очень желательно использовать минимум логики и внутренней памяти.

 

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

 

Сколько это может мне стоить? Мое начальство видя, что я с наскоку сам эту тему не смог решить, готово сколько-то кому-то заплатить, чтобы ускорить процесс, или, если это будет дорого, оставить меня самого долбить эту тему.

 

Спасибо

 

ИИВ

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


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

Могу заняться, вопрос - сроки, уточнение задачи, размер оплаты.

Можно на v.tatischev[собака]yahoo[точка ]com.

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


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

Чтобы всем одно и то же не писать, напишу здесь что я хочу получить:

 

модуль на SystemVerilog для Квартуса, с объяснениями (хоть усно, хоть письменно) как он работает до полного моего вникновения. На входе этого модуля должно быть что-то типа

 

output ClkOut; // не больше 100МГц

input DataReady;

input DataOut[0:<сколько надо, но, желательно не больше 63>];

 

так, что при posedge ClkOut, который будет генерить этот модуль я залью туда порцию данных на посылку или напишу, что данных еще нет.

 

В обратную сторону - аналогично:

 

output ClkIn; // не больше 100МГц, а лучше, чтобы совпадало с ClkOut и была дополнительно output DataInReady;

output DataIn[0:<сколько надо, но желательно не больше 63>];

 

так, что при posedge Clkin этот модуль будет сохранять в DataIn порцию данных с компа.

 

На линукс компе мне также желательно иметь три функции, которые бы работали очень аналогично:

 

int If_Read_FPGA_Data_Ready();

void Read_FPGA_Data(int buffer[<сколько надо, но желательно не больше 1М>]);

void Write_FPGA_Data(int Len, int buffer[Len]);

 

были бы переданы мне в исходниках и мне бы полностью объяснили как и почему они работают.

 

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

 

Скорость должна быть минимум 300МБит/с на длинных передачах, но очень желательно, получать большие и близкие к аппаратному пику значения.

 

Доки по терасиковской борде и Аляске можно скачать напрямую от Терасика бесплатно зарегистрировавшись по адресу http://www.terasic.com.tw/cgi-bin/page/arc...02&PartNo=4

 

Сроки, размер и способы оплаты, и способы научения меня как это сделать - это к Вам. Можно здесь, можно в личку, а можно на i_i_v зверек лист ру.

 

С уважением

 

ИИВ

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


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

Скорость должна быть минимум 300МБит/с на длинных передачах, но очень желательно, получать большие и близкие к аппаратному пику значения.

Какой, с Вашей точки зрения, "аппаратный пик" пропускной способности на гигабитном Ethernet-канале ?

Начните с простого - соедините два линукс-компьютера кросс-кабелем и запустите передачу большого файла, посмотрите скорость передачи, потом поговорим о 300 МБит/c...

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


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

Какой, с Вашей точки зрения, "аппаратный пик" пропускной способности на гигабитном Ethernet-канале ?

 

Если Вам интересно, максимальная пропускная способность ( пользовательских данных ) 1G Ethernet:

(frame_size) / ( frame_size + 12 + 8 ) * 1000 Мбит/c

для пакетов, в котором есть только IFG, преамбула и пользовательские данные.

 

И, соответственно:

(frame_size) / ( frame_size + 12 + 8 + 6 + 6 + 2 + 4 ) * 1000 Мбит/c

для пакетов, в котором есть IFG, преамбула, MAC-адреса, Ethertype, CRC и пользовательские данные.

 

 

К примеру, для пакета размером 64 байта ( размер пакета указывается без учета IFG и преамбулы ) в первом случае пропускная способность 762 Мбит/c, во втором - 627 Мбит/c.

Для пакета размером 1518 байт в первом случае пропускная способность 987 Мбит/c, во втором - 975 Мбит/c.

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


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

Какой, с Вашей точки зрения, "аппаратный пик" пропускной способности на гигабитном Ethernet-канале ?

Начните с простого - соедините два линукс-компьютера кросс-кабелем и запустите передачу большого файла, посмотрите скорость передачи, потом поговорим о 300 МБит/c...

90МБайт/с то есть 720МБит/с я в этом случае всегда достигаю, но, думаю, это больше из-за того, что есть накладные расходы по ssh и tcp протоколам и оверхедам работы с диском. Мне не нужны все эти протоколы, у меня просто битстрим в память, так что 982МБит/c, показанные Барком в http://electronix.ru/forum/index.php?showt...=100396&hl= очень хотелось бы увидеть.

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


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

90МБайт/с то есть 720МБит/с я в этом случае всегда достигаю, но, думаю, это больше из-за того, что есть накладные расходы по ssh и tcp протоколам и оверхедам работы с диском. Мне не нужны все эти протоколы, у меня просто битстрим в память, так что 982МБит/c, показанные Барком в http://electronix.ru/forum/index.php?showt...=100396&hl= очень хотелось бы увидеть.

То есть обнаружение и исправление ошибок при передаче по сети Вам не требуются? Это существенно меняет дело:).

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


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

http://www.alterawiki.com/wiki/Nios_II_UDP_Offload_Example

 

Хардварный UDP-upstream.

В проекте используется 4-потокая хардварная udp-отдача + софтовый TCP (tse_mac).

Живой пример с выгрузкой с платы на скорости 1ГБит/с.

Довольно быстро портируется на любые другие платы.

 

В свое время красиво разрисовал блок-схему sopc-проекта (есть на той странице), так что разобраться несложно.

Изменено пользователем spectr

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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