Игра «Жизнь» на FPGA Altera Cyclone IV

Игра Жизнь — всем известный клеточный автомат, изобретенный Джоном Конвеем в 1970 году. Суть игры заключается в симуляции «вселенной», в нашем случае реализованной на квадратной матрице 8×8 с замкнутыми краями.
В начале от игрока требуется задать первое поколение клеток, используя встроенные в FPGA кнопки. После этого начинается процесс симуляции, где поколения сменяются по нажатию кнопки.

Игра реализована на языке проектирования Verilog и состоит из четырех базовых модулей: модули ввода/вывода, алгоритма игры и основной модуль, соединяющий имеющиеся. Игровое поле в коде представлено в виде сдвигового регистра на 64 элемента, переход к новому поколению реализован с помощью последовательной логики.

Модуль вывода работает со стандартной светодиодной матрицей 8×8 с 16 управляющими пинами. Отображение ведется по рядам. Модуль ввода представляет собой три кнопки — кнопка обновления экрана, установления позиции и кнопка изменения текущей позиции (сдвиг на позицию вправо), а также из переключателя режимов, позволяющего переходить к процессу симуляции от выбора первого поколения.

Пример работы:

image

→ Исходный код

© Habrahabr.ru