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

План работы:

  1. Чтение/понимание требований: понять в общем виде, что требуется сделать.
  2. Уточнение требований: задать уточняющие вопросы, дополнить требования.
  3. Написание спецификации: решение основных вопросов релиазции.
  4. Ревью спецификации.
  5. Проверка частей реализации:
    • Что-то можно смоделировать программно (python/matlab ...)
    • Какие-то части попробовать сделать на Verilog
  6. Разработка отдельных частей/блоков (модулей) и их верификация
  7. Сборка и отладка IP-core целиком