Реализация взаимодействия с устройством на ПЛИС через PCI

Нашим коллективом разрабатывается сопроцессор для операций разреженной линейной алгебры. Необходимо "подружить" его с основной системой посредством PCI. Для начала предлагается реализовать демонстрационное приложение, позволяющее выполнять какие-нибудь простые действия на ПЛИС под управлением программы, запущенной на компьютере. Например, передать два числа на ПЛИС, сложить их там, получить результат обратно. Благо, начать можно с готового примера от производителя (для других интересующих нас ПЛИС ситуация аналогичная). Далее нужно будет аккуратно реализовать работу с PCI для разрабатываемого сопроцессора. Для этого, в частности, необходимо будет разобраться в деталях соответствующего протокола.

Требования к студенту
  • Хорошее знание языка Си и сопутствующего инструментария: сборка, отладка, тестирование, линтеры, и т.д.
  • Понимание архитектуры ЭВМ: подключение периферии, взаимодействие с ней, шины и протоколы (в частности, PCI)
  • Понимание основ System Verilog и навыки работы с соответствующим инструментарием.
  • Понимание основ разработки драйверов.
  • Знание Haskell будет плюсом.
Уровень

2 курс, 3 курс


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ