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

 
 
> Kintex-7, Сниффер Ethernet
TimeToSleep
сообщение Jun 3 2016, 08:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 13-12-14
Пользователь №: 84 106



Доброго времени суток!

Мне необходимо сделать пассивный сниффер Ethernet'a на плате Kintex-7 (kc705) на приём всех пакетов и отловления определенных широковещательных кадров из потока(VHDL, Xilinx).
Скорость 1Gb\s, протокол tcp подобный (tcp\ip почти что, насколько я понял), GMII.
(На плате имеется PHY, но я честно говоря не понимаю как его подключать)

1) Можно обойтись без процессора (Microblaze'a)?
2) Можно ли просто создать ip-core'ку Three-Mode-Ethernet-Mac с выхода которой сразу получать слова-выход эзернет потока? Или я плохо понимаю структуру решения? (новичок в FPGA с опытом студента, но без опыта работы по сути)
3) Есть разница, если отлавливать сразу через Ethernet вход или через SFP с переходником на эзернет? По схематике после SFP данные сразу идут на fpga, а после эзернет входа идёт микросхемa PHY и уже после на плис.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AndreiUS
сообщение Jun 3 2016, 13:16
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 23-12-08
Из: Тверь
Пользователь №: 42 694



Цитата(TimeToSleep @ Jun 3 2016, 11:16) *
1) Можно обойтись без процессора (Microblaze'a)?
2) Можно ли просто создать ip-core'ку Three-Mode-Ethernet-Mac с выхода которой сразу получать слова-выход эзернет потока? Или я плохо понимаю структуру решения? (новичок в FPGA с опытом студента, но без опыта работы по сути)
3) Есть разница, если отлавливать сразу через Ethernet вход или через SFP с переходником на эзернет? По схематике после SFP данные сразу идут на fpga, а после эзернет входа идёт микросхемa PHY и уже после на плис.


1) Можно, но зависит от того, что вы хотите с этими пакетами дальше делать.
2) Можно и IP-ядро, а можно и самому разбирать пакет. Это не сложно.
3) "SFP с переходником на эзернет" называется Copper SFP. Можно и так сделать, если у вас этот Copper SFP имеется, но это чуть посложнее. Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII - это самый быстрый и проверенный способ. Дальше разбирайте пакеты вручную.
Go to the top of the page
 
+Quote Post
TimeToSleep
сообщение Jul 7 2016, 06:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 13-12-14
Пользователь №: 84 106



Цитата(AndreiUS @ Jun 3 2016, 16:16) *
...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается

Цитата(AndreiUS @ Jun 3 2016, 16:16) *
...Включайте 88E1111, который на плате и запускайте корку Ethernet 1000BASE-X PCS/PMA or SGMII. Дальше разбирайте пакеты вручную.

А подскажите, пожалуйста, Как включить то эту корку? У меня не получается
Go to the top of the page
 
+Quote Post
AndreiUS
сообщение Jul 7 2016, 11:26
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 293
Регистрация: 23-12-08
Из: Тверь
Пользователь №: 42 694



Цитата(TimeToSleep @ Jul 7 2016, 09:50) *
А подскажите, пожалуйста, Как включить то эту корку? У меня не получается


А подскажите, пожалуйста, Как включить то эту корку? У меня не получается


Открываете Core Generator, находите эту корку, выставляете в настройках на 1-ой странице SGMII. На второй странице снимаете галку с "MDIO MANAGEMENT INTERFACE". Все остальное оставляете без изменений. Генерируете корку кнопкой "Finish". После генерации в IP-каталоге у вас появится вериложный топ-модуль с названием что-то типа sgmii_IP_example_design. Его и используйте в своем проекте, там уже все готово и настроено, осталось только подключить в ваш верхний модуль.
Инициализация у меня сделана так:
Код
sgmii_IP_example_design SGMII_MAC (
    .independent_clock(clk200),
    .reset(reset_reg),
    .gt0_qplloutclk_i(),
    .gt0_qplloutrefclk_i(),
    .gtrefclk(GTXQ2_left_i),
    .userclk2(userclk2),
    .txp0(txp0),
    .txn0(txn0),
    .rxp0(rxp0),
    .rxn0(rxn0),

    .gmii_txd0(gmii_txd0),
    .gmii_tx_en0(gmii_tx_en0),
    .gmii_tx_er0(),
    .gmii_rxd0(gmii_rxd0),
    .gmii_rx_dv0(gmii_rx_dv0),
    .gmii_rx_er0(),
    .configuration_vector0(5'b10000),
    .an_interrupt0(),
    .an_adv_config_vector0(),
    .an_restart_config0(),
    .link_timer_value0(9'b000110010),
    .speed0_is_10_100(1'b0),
    .speed0_is_100(1'b0),
    .status_vector0(status_vector0),
    .signal_detect0(1'b1)
)


ВСЁ! Получили человеческий интерфейс GMII (gmii_txd0, gmii_rxd0, gmii_tx_en0, gmii_rx_dv0). С ним и работайте, принимайте/отправляйте пакеты.
Не забудьте только на плате KC705 выставить джамперы, задающие режим работы SGMII для марвела 88E1111.
Фуф...расписался...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 18:27
Рейтинг@Mail.ru


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