Kostochkin 0 13 ноября, 2018 Опубликовано 13 ноября, 2018 (изменено) · Жалоба Здравствуйте. У меня стоит задача поднять ядро 10G pcs/pma base-r на fpga xilinx xc7k70t fbg484-2. В vivado 2017.2 я это сделал без MDIO, собрал проект, тайминг проходит. При коротких пакетах прием и передача идут нормально. Но при большой длине пакета начинает не совпадать CRC32. При длине пакета 1.5 kB, CRC32 не совпадает в 60% пакетах... Возможно дело в синхронизации... Какой клок использовать для приема по шине xgmii, а какой для передачи? Я работаю от клока c ядра "coreclk", прием и передача. Спасибо. Изменено 13 ноября, 2018 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 13 ноября, 2018 Опубликовано 13 ноября, 2018 (изменено) · Жалоба Я на альтере делал. Вообще 10G xgmii (ddr) работает на частоте 156.25. Каким клоком запитывать само ядро наверное лучше в мануале почитать. Потому что в альтере это 322.265625 или 644.xxx Изменено 13 ноября, 2018 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 13 ноября, 2018 Опубликовано 13 ноября, 2018 (изменено) · Жалоба ядро 64bits. По мануалу "coreclk", 156.25... Изменено 13 ноября, 2018 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 13 ноября, 2018 Опубликовано 13 ноября, 2018 · Жалоба 5 минут назад, Kostochkin сказал: ядро 64bits. По мануалу "coreclk", 156.25... Стабильность клока проверяйте. На длинных пакетах набегает ошибка. Если пакет короткий то нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vacikL 0 13 ноября, 2018 Опубликовано 13 ноября, 2018 · Жалоба 1. Какая версия ядра 10G? 2. Не напутали в названии плис, вроде fbg до 6 Гбит. 3. В 6.0 версии ядра я работал с coreclk_out. Пакеты до 8кбайт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 14 ноября, 2018 Опубликовано 14 ноября, 2018 · Жалоба версия - 6.0. fbg поддерживает 10g начиная с vivado 2017.1. буду дальше у себя копать.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 14 ноября, 2018 Опубликовано 14 ноября, 2018 (изменено) · Жалоба Кое-что нашел в ILA. В некоторых случаях ядро шлет мне пакеты без паузы, сразу один за другим. Как я понял, 1 такт полного состояния IDLE должен быть обязательно... Надо где-то покопаться в настойках ядра? Изменено 14 ноября, 2018 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 14 ноября, 2018 Опубликовано 14 ноября, 2018 · Жалоба CRC проверяется на MAC-уровне, ядро PCS/PMA этого не делает Клок coreclk (coreclk_out) - это верно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 14 ноября, 2018 Опубликовано 14 ноября, 2018 · Жалоба Стандарт 10G предусматривает паузу между пакетами минимум 12 байт. А у меня 6 байт, а должно быть минимум 12... Подскажите, как быть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vacikL 0 14 ноября, 2018 Опубликовано 14 ноября, 2018 (изменено) · Жалоба Вопрос, а откуда данные идут? Схему соединения и суть эксперимента. Я начинал с работы с сетевой картой. FLOOD: CRC - можно и самому посчитать. Изменено 14 ноября, 2018 пользователем vacikL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 14 ноября, 2018 Опубликовано 14 ноября, 2018 · Жалоба 6 часов назад, Kostochkin сказал: Подскажите, как быть? Вы даете информацию очень маленькими кусочками и предлагаете угадать, что и где не так. Что за CRC бьется, кто его считает на приеме? Откуда идут пакеты, как часто (много), и кто обеспечивает им верный CRC - все это совершенно непонятно. 6 часов назад, Kostochkin сказал: Стандарт 10G предусматривает паузу между пакетами минимум 12 байт. В линии - да. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 15 ноября, 2018 Опубликовано 15 ноября, 2018 (изменено) · Жалоба Извините. Бьется CRC32 mac уровня, считаю ее я сам. Пакеты идут от сетевой карты intel x250-lr1, оптика SFP+. Для отправки udp пакетов использую iperf. Задаю скорость 10g и длину datagram - 64k. Я выяснил, что когда ко мне по шине xgmii от ядра 10g pcs/pma приходят пакеты c паузой меньше 8 байт, я воспринимаю это как один пакет и соответственно CRC32 не совпадает. В принципе это можно исправить, я только не пойму, почему такой маленький ipg между пакетами, это же не по стандарту... И можно как-то настроить ядро или сетевую карту, чтобы выровнять ipg ? Спасибо. Изменено 15 ноября, 2018 пользователем Kostochkin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 15 ноября, 2018 Опубликовано 15 ноября, 2018 · Жалоба 5 часов назад, Kostochkin сказал: Я выяснил, что когда ко мне по шине xgmii от ядра 10g pcs/pma приходят пакеты c паузой меньше 8 байт, я воспринимаю это как один пакет и соответственно CRC32 не совпадает. В принципе это можно исправить, я только не пойму, почему такой маленький ipg между пакетами, это же не по стандарту... Это и есть ответ на вопрос - MAC-уровень неправильно разделяет пакеты. Из-за разницы частот PCS/PMA ядро может как уменьшить, так и увеличить количество idle-символов, для этого они и нужны. Картина в линии и картина на шине xgmii после приведения частот конечно не будет одинаковой. Чтобы увидеть реальную картину на приемной линии (например, для проверки передатчика) потребовалось бы отключить elastic buffer и работать на приеме по восстановленной частоте. При этом rx clock и tx clock стали бы разными. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kostochkin 0 15 ноября, 2018 Опубликовано 15 ноября, 2018 · Жалоба 27 minutes ago, Flood said: Это и есть ответ на вопрос - MAC-уровень неправильно разделяет пакеты. Из-за разницы частот PCS/PMA ядро может как уменьшить, так и увеличить количество idle-символов, для этого они и нужны. Картина в линии и картина на шине xgmii после приведения частот конечно не будет одинаковой. Чтобы увидеть реальную картину на приемной линии (например, для проверки передатчика) потребовалось бы отключить elastic buffer и работать на приеме по восстановленной частоте. При этом rx clock и tx clock стали бы разными. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться