Упражнения

  1. Перепишите самые интересные тестбенчи из тех, что мы (или вы) написали ранее. Тут тоже затесалось метапрограммирование. Несложное, но может быть очень удобным.

  2. Напишите (или перепишите, если уже сделали на SystemVerilog) тесты к последним упражнениям на cocotb. Интереснее всего 3 и 5 задания.

  3. Реализуйте операцию свёртки изображения на SystemVerilog.

    • Используйте одномерную свёртку из упражнений к предыдущему модулю. Про идею декомпозиции двумерной свёртки в одномерные можно посмотреть здесь.

    • Интерфейс разрабатываемого модуля должен предусматривать загрузку весов ядра свёртки.

    • Модуль должен быть параметризуем размером ядра. Предполагаем, что ядро квадратное, нечётного размера.

    • На входе k строк входного изображения (каждая подаётся последовательно), на выходе одна строка нового изображения.

    • Заранее определитесь, каким образом будут обрабатываться пиксели на краях.

    • Реализуйте тесты для разработанного модуля с использованием cocotb. Для тестирования (как всего модуля, так и подмодулей) используете наработки из упражнений по свёрткам на Python.