internship
June 10, 2021 · View on GitHub
Задание для стажировки "Генератор Ethernet трафика. Часть 1."
Требования:
Необходимо разработать и реализовать RTL-часть генератора Ethernet кадров.
Генератор должен обеспечивать последовательную отправку кадров заданного размера с заданной скоростью.
Содержание кадра целиком задается пользователем, задача генератора отправлять этот один кадр циклично в течении заданной длительности.
Проект должен быть выполнен в виде FPGA IP-core:
- набора RTL-модулей,
- набор файлов для верификации (testbench),
- документация,
- примеры прикладного ПО для управления и настройки IP-core.
Реализация генератора (ПО и RTL код совместно) должны предоставлять возможность генерировать трафик со следующими параметрами:
- Скорость генерации: настраиваемая. От 0 до 1Gb/s на уровне L1, минимальный шаг 1 Мб/c (можно точнее, зависит от реализации)
- Размер кадров: настраиваемый. 2 варианта:
- случайный размер в диапазоне от минимального до максимального,
- постоянный заданный размер.
- Наполнение кадров: задается вручную перед стартом генерации.
- Длительность: настраиваемая. 2 варианта:
- в количестве пакетов,
- в секундах.
- Режим работы: только 1000 Mbps full duplex. Режимы 10/100 Mb/s и half duplex поддерживать не нужно.
Детали реализации:
Разрабатываемая IP-core должна быть совместима с Triple-Speed Ethernet Intel FPGA IP-core (https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_ethernet.pdf) в режиме "10/100/1000 Ethernet MAC".
Также частью работы является описание параметров Triple-Speed Ethernet Intel FPGA IP-core, при которых эта IP-core будет совместима с разрабатываемым генератором.
Управление разрабатываемым генератором должно осуществляться через интерфейс Avalon-MM. Карта регистров должна быть описана в документации.
Основные цели работы:
- Изучить стандарт IEEE 802.3 (Ethernet) в объеме достаточном, для реализации IP-core.
- Изучить форматы кадров уровней L2, L3, L4.
- Научится анализировать требования:
- До этапа реализации разработать архитектуру проекта, определить её будущие параметры, оценить выполнимость требований.
- Оценить параметры, не указанные в требованиях, но возможно критически важные, которые необходимо обсудить заранее, до реализации.
- Научится писать тестбенч для верификации модулей потоковой генерации на интерфейсе Avalon-ST.
- Знакомство с IP-core от вендоров, в частности с IP-core Triple-Speed Ethernet
План работы:
- Чтение/понимание требований: понять в общем виде, что требуется сделать.
- Уточнение требований: задать уточняющие вопросы, дополнить требования.
- Написание спецификации: решение основных вопросов релиазции.
- Ревью спецификации.
- Проверка частей реализации:
- Что-то можно смоделировать программно (python/matlab ...)
- Какие-то части попробовать сделать на Verilog
- Разработка отдельных частей/блоков (модулей) и их верификация
- Сборка и отладка IP-core целиком