Оглавление:

CPE 133 Final Project Decimal to Binary: 5 шагов
CPE 133 Final Project Decimal to Binary: 5 шагов

Видео: CPE 133 Final Project Decimal to Binary: 5 шагов

Видео: CPE 133 Final Project Decimal to Binary: 5 шагов
Видео: CPE 133 Final Project Presentation and Verification 2024, Июль
Anonim
CPE 133 Конечный проект из десятичного числа в двоичный
CPE 133 Конечный проект из десятичного числа в двоичный

Двоичные числа - одна из первых вещей, которые приходят на ум при мысли о цифровой логике. Однако двоичные числа могут быть сложной концепцией для новичков.

Этот проект поможет тем, кто новичок и имеет опыт работы с двоичными числами, освоить преобразование десятичных чисел. Создавая игру, мы будем проверять у пользователей их навыки конверсии. Эта игра будет выполняться на доске Basys3 и программироваться на Verilog.

Шаг 1. Необходимые материалы

Необходимые материалы
Необходимые материалы

Следующие материалы необходимы, чтобы сделать эту игру преобразования десятичного числа в двоичное:

  • Программное обеспечение Xilinx Vivado Design Suite
  • Плата Digilent Basys3 FPGA
  • Кабель USB - Micro USB

Шаг 2: Настройка LFSR (регистр сдвига с линейной обратной связью)

Настройка LFSR (регистр сдвига с линейной обратной связью)
Настройка LFSR (регистр сдвига с линейной обратной связью)
Настройка LFSR (регистр сдвига с линейной обратной связью)
Настройка LFSR (регистр сдвига с линейной обратной связью)

LFSR (регистр сдвига с линейной обратной связью) - это модуль, используемый для генерации «случайных» чисел.

LFSR не является полностью случайным, поскольку он генерирует псевдослучайные числа, что представляет собой процесс генерации чисел, которые кажутся случайными, но не таковыми.

LFSR - это регистр сдвига, входной бит которого является линейной функцией его предыдущего состояния, что означает, что LFSR будет циклически проходить через конечный набор чисел. Специально для этой игры LFSR будет использовать только 8 бит, чтобы ограничить десятичное число, которое он может генерировать, до 255.

Кнопка L (btnL) используется для сброса номера на LFSR.

Этот модуль LFSR не был создан создателями этой игры. Модуль LFSR был создан профессором Карлтонского университета Джоном Найтом. Ссылка на его модуль приведена ниже.

www.doe.carleton.ca/~jknight/97.478/97.478_…

Шаг 3: Настройка семисегментного дисплея

Настройка семисегментного дисплея
Настройка семисегментного дисплея

Семисегментный дисплей используется на плате Basys3 и на многих других устройствах для отображения буквенно-цифровых символов.

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

При использовании ранее описанного модуля LFSR случайное сгенерированное число будет выводиться на семисегментный дисплей.

Модуль семисегментного дисплея не был создан создателями этой игры. Модуль семи сегментов дисплея был предоставлен профессором Калифорнийского политехнического университета Джозефом Калленес-Слоаном. PDF-файл для модуля прилагается ниже.

Шаг 4: Создание игрового модуля

Создание игрового модуля
Создание игрового модуля
Создание игрового модуля
Создание игрового модуля
Создание игрового модуля
Создание игрового модуля
Создание игрового модуля
Создание игрового модуля

Создать игровой (основной) модуль.

Этот модуль будет использовать модуль LFSR для генерации случайного числа и последующего вывода его на семисегментный дисплей.

Затем модуль использует блок Always, который сбрасывает случайное число. Это работает на положительном фронте кнопки R (btnR), что означает, что он будет работать только при нажатии кнопки R.

Второй всегда блок работает на положительном фронте тактового сигнала (clk). Если нажать кнопку C (btnC), это проверит, совпадает ли номер на семисегментном дисплее с номером ввода с переключателей (sw). Этот блок поднимет флаг (установит регистр флага (flag) в 1) и изменит провод messageVal в зависимости от того, выиграл ли пользователь или проиграл.

Блок «Третий всегда» также работает на положительном фронте тактового сигнала. Если флаг поднят, он установит ssegInputVal на провод messageVal на семисегментном дисплее. Если флаг не поднят, он продолжит выводить случайное число (randomVal).

Шаг 5: Играйте в игру

Играем в игру!
Играем в игру!
Играем в игру!
Играем в игру!
Играем в игру!
Играем в игру!

Инструкции:

  • Пользователь нажмет кнопку R, чтобы создать новую игру, или изменит номер на семисегментном дисплее.
  • Пользователь перевернет первые 8 переключателей вверх (1) или вниз (0), чтобы ввести двоичное число.
  • Кнопка C будет использоваться, чтобы проверить, выиграл ли пользователь или проиграл.
  • Если пользователь выиграл, «111» будет отображаться на семисегментном дисплее.
  • Если пользователь потерял «0», будет отображаться на семисегментном дисплее.
  • Чтобы начать новую игру, кнопку R можно нажать в любой момент.

Рекомендуемые: