iiv 29 13 марта, 2011 Опубликовано 13 марта, 2011 · Жалоба Всем привет, Пожалуйста, посоветуйте, как мне правильнее подступиться к моей незадаче. Коротко о моей задаче: На плиске непрерывно получаются данные (около 50МБайт в секунду), которые я хочу посредством 1ГБитного етернета посылать на компьютер. На компьютере стоит линукс, команду tcpdump уже изучил. С самого компьютера мне надо изредка посылать на плиску некоторые управляющие команды (около 1000 раз в секунду по несколько байт). По задаче хватает жирной плиски типа 4-того циклона с 200 умножителями и более. Опыт программирования альтеровских плисок - имеется, но только на уровне чистого верилога и системверилога. Сам алгоритм для плиски уже есть, на схожей борде я его уже запускал, работает, проблема в выборе борды и программировании быстрого интерфейса с компьютером. Есть желание для этого проекта купить такую борду: http://www.terasic.com.tw/cgi-bin/page/arc...=139&No=502 так как и цена низкая, и в этот циклон все влезает, и два коннектора на гигабит имеются. Скачал я с терасика конфигурационные файлы для борды, засунул туда свой проект, все компилится, но не знаю как мне данные качать по этому гигабитному етернету. Во входе главного модуля етернет выглядит для меня так: //////////// Ethernet 0 ////////// output ENET0_GTX_CLK; 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 [3:0] ENET0_TX_DATA; output ENET0_TX_EN; output ENET0_TX_ER; input ENETCLK_25; и точно такое же на второй етернет коннектор. От того что я в мегавизарде сгенерил PHY и получил около сотни входов и выходов, как Вы догадываетесь, мне тоже легче не стало. У меня сейчас получается несколько альтернатив: 1) освоить ниос (ни разу не пользовал и так до сих пор не понимаю как оно функционгирует хотя и пытался как-то разобраться), прикрутить через него и авалон то, что мне надо, возможно потом платить за всякие мегакорки дополнительные деньги, 2) разобраться с тем, что есть, и заслать UDP пакет, его устройство я немного представляю, по крайней мере я повторял то, что описано в http://www.fpga4fun.com/10BASE-T0.html и на 10 мбит у меня все работало. Посоветуйте, пожалуйста, самый простой и короткий путь для освоения такого гигибитного етернета! ЗЫ: если я в чем-то глообально прокололся, тыкните носом, я еще эту борду не заказал, еще есть время переиграть! Спасибо ИИВ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Посоветуйте, пожалуйста, самый простой и короткий путь для освоения такого гигибитного етернета! какой вариант проще - решать вам. вариант с ниосом тут уже многие сделали, вливайтесь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба вариант с ниосом тут уже многие сделали, вливайтесь Добрый день, Вадим, благодарю Вас за ответ. Я сам бы очень не против влится в стройные ряды ниосопользователей, но, пока есть только негативный опыт, поэтому, пожалуйста, тыкните пальцем что я делал не так: 1. демо примеры Терасика на ниосе на схожей борде (работа с ДДР2 памятью) отожрали почти 50тыс лютов, что, как мне кажется, очень много, мне критично, чтобы весь интерфейс (ниос+етернет) не отожрал бы больше 5К лютов и не более 10 умножителей и не более 5-10 к9м блоков памяти. Если будет больше, то, скорей всего, у меня поплывут констрейны в самом проекте (он на 200 мгц клоке, поэтому маленькое его ухудшение приводит к падению допустимой частоты). 2. можно ли как-то организовать все так, что кроме стоимости борды я не заплачу ничего за ИП корки, то есть если такой ниос, который бы и бесплатный был бы, и 1ГБит етернет бы поддерживал, или это сказки? Если сказки, то сколько надо еще вбить в бюджет денег? 2. с чего начать... Есть ли, например, пример перекачивания небольших 1-10КБайт массивов на фиксированный мак номер из плиски через ниос через гигабитный етернет, а именно для этой борды? Если да, где это для начинающих можно было бы посмотреть. Пожалуйста, посоветуйте! Спасибо ИИВ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба 1. демо примеры Терасика на ниосе на схожей борде (работа с ДДР2 памятью) отожрали почти 50тыс лютов, что, как мне кажется, очень много, мне критично, чтобы весь интерфейс (ниос+етернет) не отожрал бы больше 5К лютов и не более 10 умножителей и не более 5-10 к9м блоков памяти. Если будет больше, то, скорей всего, у меня поплывут констрейны в самом проекте (он на 200 мгц клоке, поэтому маленькое его ухудшение приводит к падению допустимой частоты). вы можете "заморозить" не относящуюся к ниосу часть проекта при помощи LogicLock. 50-60 MHz для ниоса хватит. памяти лучше побольше, если хотите весь софт в on-chip запихать, если есть внешняя память - отлично. 2. можно ли как-то организовать все так, что кроме стоимости борды я не заплачу ничего за ИП корки, то есть если такой ниос, который бы и бесплатный был бы, и 1ГБит етернет бы поддерживал, или это сказки? Если сказки, то сколько надо еще вбить в бюджет денег? бесплатный ниос есть, но он медленный. полный стоит около 500 енотов, у Stewart Little уточните. корка для эзернета есть бесплатная. я, правда, только со 100 Мбитной работал, но есть и гигабитная. в принципе, процы бесплатные есть, но тут сэкономленные деньги приведут к потраченному времени. 2. с чего начать... Есть ли, например, пример перекачивания небольших 1-10КБайт массивов на фиксированный мак номер из плиски через ниос через гигабитный етернет, а именно для этой борды? Если да, где это для начинающих можно было бы посмотреть. посмотрите на alterawiki.com, там много примеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndrewS6 0 14 марта, 2011 Опубликовано 14 марта, 2011 (изменено) · Жалоба Я считаю, что для вашей задачи самый простой способ - прямая генерация и пересылка UDP-пакетов. Рулить процессом может простейший автомат, который: -считывает из РОМ заранее созданный заголовок с посчитанной CRC; -загоняет ваши данные; -вставляет четыре байта CRC-32, которое считалось параллельно с этапами 1 и 2; Кроме того, необходимо грамотно сопрячь ваш блок с микросхемой PHY Ethernet, которая находится на плате. Посмотрите, какой используется интерфейс (GMII, RGMII, SGMII) и реализуйте его. update: судя по этому: input ENET0_TX_CLK; output [3:0] ENET0_TX_DATA; output ENET0_TX_EN; output ENET0_TX_ER; там таки RGMII. Изменено 14 марта, 2011 пользователем AndrewS6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Добрый день, Андрей! очень Вам благодарен за ответ! Я считаю, что для вашей задачи самый простой способ - прямая генерация и пересылка UDP-пакетов. Мне этот путь как-то более понятен! Рулить процессом может простейший автомат, который: -считывает из РОМ заранее созданный заголовок с посчитанной CRC; -загоняет ваши данные; -вставляет четыре байта CRC-32, которое считалось параллельно с этапами 1 и 2; Именно это у меня уже есть для 10МБитного интерфейса, и, тьфу-тьфу, функционирует! Кроме того, необходимо грамотно сопрячь ваш блок с микросхемой PHY Ethernet, которая находится на плате. повидимому мне это и надо было справивать в первом моем топике! Посмотрите, какой используется интерфейс (GMII, RGMII, SGMII) и реализуйте его. update: судя по этому: input ENET0_TX_CLK; output [3:0] ENET0_TX_DATA; output ENET0_TX_EN; output ENET0_TX_ER; там таки RGMII. В доках про RGMII слова есть :) Я правильно понимаю, что вот например такой документ http://www.hp.com/rnd/pdfs/RGMIIv2_0_final_hp.pdf должен решить мою задачу? Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bark 0 14 марта, 2011 Опубликовано 14 марта, 2011 · Жалоба Если будете использовать готовые корки MAC контроллера, то GMII там будут уже реализованы. Вам лишь останется правильно к ногам всё подцепить и проконтроллировать что правильно формируются клоки. о GMII можно вкраце прочитать в вики. RGMII (Reduce Gigabit Media Independent Interface) это уменьшенный по количеству ног GMII (Gigabit Media Independent Interface). Есть карка TSE от альтеры реализующая гигабитный МАС. она подлицензионная, но таблетки есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться