* Feat(labs/03/board):Переписывание топа
* Ref(labs/03/board/top):Уд-ие лишнего условия в we
* Repo(labs/03/board/top):Изм-кредита
* Repo(pic/03/struct):Доб-ие начального drawio
* Feat(pic/03/board/struct):Нарисовка картинки
* Feat(pic/03/board/struct):Доб-ие цветов в схему
* Ref(pic/03/board/struct):Различные улучшения
* Ref(pic/03/board/struct):Выделение wa
* Ref(pic/03/board/struct):Различные улучшения
* Ref(pic/03/board/struct):Подвижка nexys_rf_riscv
* Ref(pic/03/board/struct):Изм-ие цвета шины
* Ref(pic/03/board/struct):Утолщение шины
* Ref(pic/03/board/struct):Изм-ие цветов, выд кнопок
* Ref(pic/03/board/struct):Изм-ие цвета ra2
* Feat(pic/03/board/control):Начальный комит
* Ref(pic/03/board/control):Обрезка пикчи платы
* Ref(03/board):Выпиливание старой пикчи контроля
* Ref(03/board/md):Некоторые испр-ия
* Ref(03/board/md):Доб-ие описание остальной периф
* Ref(03/board/md):Выделеине в заголовки перефирии
* Fix(03/board/nexys_rf):Испр-ие мапинга кнопок
* Ref(pic/03/board/write_addr):Перерисовка пикчи
* Ref(pic/03/board/write_data):Перерисовка пикчи
* Ref(pic/03/board/read):Перерисовка пикчи
* Ref(03/board/md):Переписывание
* Feat(03/board/md):Доб-ие рисунка структуры
* Ref(03/board/md):Улучшение
* Ref(03/board/nexys_rf_riscv):Уд-ие reg wd
Тк не нужно и усложняет схему
* Ref(03/board/md):Испр-ие содержимого note
* Fix(03/board):Apply suggestions from code review
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
* Ref(03/board/md):Замена нижние->младшие
* Ref(03/board):Ren картинок
* Ref(pic/03/board/wa_5):Crop image
* Feat(03/board):Доб-ие записи в регистр 6
* Ref(pic/03/board/struct):Вырав-ие портов rf
* Ref(03/board/md):Изм-ие подписи рис. 2
* Ref(03/board/md/control):Доб-ие обводки
* Revert "Ref(03/board/md/control):Доб-ие обводки"
This reverts commit d55735e859.
* Ref(pic/03/board/struct):Улуч-ие разрядности рег
* Ref(pic/03/board):Выделение фона у текстов
* Fix(pic/03/board/control):Испр-ие фона теста
---------
Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
Проверка работы регистрового файла на ПЛИС
После того, как вы проверили на моделировании регистровый файл, вам необходимо проверить его работу на прототипе в ПЛИС.
Инструкция по реализации прототипа описана здесь.
На рис. 1 представлена схема прототипа в ПЛИС.
Рисунок 1. Структурная схема модуля nexys_rf_riscv.
Описание используемой периферии
Периферия показана на рис. 2.
Рисунок 2. Периферия, доступная прототипу.
-
Переключатели и кнопки.
Для работы с регистровым файлом необходимо выставлять сигналы адресов и данных. У платы недостаточно переключателей для такого количества входов регистрового файла, поэтому адреса и данные задаются одним источником ввода:
-
Ввод адресов (
read_addr1_i/read_addr2_i/write_addr_i) регистрового файла осуществляется через переключателиSW[14:0]. Соответствие следующее:SW[ 4: 0]—write_addr_iSW[ 9: 5]—read_addr2_iSW[14:10]—read_addr1_i
Для того чтобы выставить введенные адреса на входные порты регистрового файла, необходимо нажать кнопку
BTND(addr_enна рис. 2). Таким образом, происходит запоминание адресов в элемент памяти. -
Ввод данных (
write_data_i) регистрового файла осуществляется через переключателиSW[15:0]. Таким образом, можно выставить только младшие 16 бит данных. Для записи введенных данных по адресуwrite_addr_iиспользуется кнопкаBTNR(weна рис. 2).
-
-
Светодиоды
Светодиоды
LED[14:0]отображают адреса (read_addr1_i/read_addr2_i/write_addr_i), которые выставлены в данный момент на порты регистрового файла:LED[ 4: 0]—write_addr_iLED[ 9: 5]—read_addr2_iLED[14:10]—read_addr1_i
-
Семисегментные индикаторы
На левом блоке семисегментных индикаторов (индикаторы 7-4) отображется значение младших 16-ти бит порта
read_data1_o, а на правом блоке семисегментных индикаторов (индикаторы 3-0) отображается значение младших 16-ти бит портаread_data2_o.Числа отображаются в шестнадцатеричном формате.
Выполнение операций с регистровым файлом на прототипе
Доступные операции: запись, чтение.
-
Запись
Рассмотрим последовательность действий, которые надо осуществить для записи в регистровый файл, на примере.
-
Запишем значение
0x1234в регистр5.-
Сразу после прошивки, как видно по негорящим светодиодам, на портах регистрового файла выставлены нулевые адреса. Нам нужно изменить адрес записи, поэтому выставим на переключателях значение
5и нажмем кнопкуBTND(см. рис. 3).Рисунок 3. Выставление адреса
5на портwrite_addr_iрегистрового файла.Обратите внимание: на светодиодах сразу после нажатия кнопки отображается адрес
5. -
Чтобы записать данные в указанный (пятый) регистр, выставим на переключателях значение
0x1234и нажмем кнопкуBTNR(см. рис. 4).Рисунок 4. Запись
0x1234в регистр5.
-
-
Запишем значение
0x5678в регистр6.-
Выставим на блок переключателей, отвечающих за порт записи, значение
6и нажмем кнопкуBTND(см. рис. 5).Рисунок 5. Выставление адреса
6на портwrite_addr_iрегистрового файла.Обратите внимание: на светодиодах сразу после нажатия кнопки отображается адрес
6. -
Чтобы записать данные в указанный (шестой) регистр, выставим на переключателях значение
0x5678и нажмем кнопкуBTNR(см. рис. 6).Рисунок 6. Запись
0x5678в регистр6.
-
-
-
Чтение
Рассмотрим последовательность действий, которые надо осуществить для чтения из регистрового файла, на примере. Прочитаем из регистров
5и6заранее записанные значения0x1234и0x5678соответственно и выведем его на оба блока семисегментных индикаторов 7-0 и 3-0.Выставим значение
5и6на блоки переключателейra1иra2(см. рис. 2) соответственно, и нажмем кнопкуBTND, чтобы обновить адрес значением с переключателей (см. рис. 7).Рисунок 7. Чтение из регистров
5и6.Обратите внимание на то, что для чтения достаточно выставить нужный адрес на порт регистрового файла, и содержимое регистра оказывается считанным.
Note
Кнопка сброса
CPU_RESETNне сбрасывает содержимое регистрового файла, т.к. сигнал сброса не заведен в модуль регистрового файла, а модульnexys_rf_riscvсамостоятельно его не сбрасывает. Для сброса можно осуществить перепрошивку ПЛИС.
Попробуйте записать информацию в нулевой регистр, затем по другим адресам. После чего считайте записанную информацию и убедитесь, что она соответствует той, которую вы записывали (с учетом особенностей регистрового файла RISC-V).