Skip to content

Problem 08: CPU v2

Viktor Prutyanov edited this page Apr 15, 2019 · 2 revisions

Подготовка

Перейдите в каталог problems/08_cpu_v2 в вашей локальной копии репозитория. Для синхронизации локального репозтория используется команда git pull.

Задача №1

С помощью симулятора архитектуры набора команд RISC-V посмотрите, как должна работать тестовая программа test_v2.s.

Задача №2

В модуль control добавьте логику обработки инструкции SW и управления сигналом разрешения записи в память mem_we.

В модули core и cpu_top добавьте логику управления шинами адреса mem_addr и данных mem_data. Не забудьте также про mem_we.

Подсказка:

Задача №3

С помощью Icarus Verilog проверьте правильность значений на шинах mem_addr, mem_data, mem_we в модуле cpu_top.

Задача №4

В модуле mem_ctrl опишите отображение выходного регистра data_out на адрес 0x20. Другими словами, в этот регистр должны записываться нижние 16-бит данных, сохраняемых по адресу 0x20.

Подсказка:

Соедините шины mem_addr, mem_data, mem_we с модулем mem_ctrl.

С помощью Icarus Verilog проверьте, что данные остаются в регистре data_out после выполнения инструкции SW.

Задача №5

В модуле top соедините микропроцессор с драйвером 7-сегментного дисплея.

Запустите получившийся код на FPGA, проверьте что отображается правильное число.