Feat(03/board):Доб-ие записи в регистр 6

This commit is contained in:
alexkharl
2024-03-06 13:25:13 +03:00
parent 505dfa1ee9
commit 7857c351db
4 changed files with 37 additions and 12 deletions

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.0 MiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

@@ -51,7 +51,9 @@ _Рисунок 2. Описание периферии, доступной пр
- ### Запись
Рассмотрим последовательность действий, которые надо осуществить для записи в регистровый файл, на примере. Запишем значение `0x1234` в регистр `5`.
Рассмотрим последовательность действий, которые надо осуществить для записи в регистровый файл, на примере.
1. Запишем значение `0x1234` в регистр `5`.
1. Сразу после прошивки, как видно по негорящим светодиодам, на портах регистрового файла выставлены нулевые адреса. Нам нужно изменить адрес записи, поэтому выставим на переключателях значение `5` и нажмем кнопку `BTND` (см. _рис. 3_).
@@ -66,15 +68,30 @@ _Рисунок 2. Описание периферии, доступной пр
_Рисунок 4. Запись `0x1234` в регистр `5`._
1. Запишем значение `0x5678` в регистр `6`.
1. Выставим на блок переключателей, отвечающих за порт записи, значение `6` и нажмем кнопку `BTND` (см. _рис. 5_).
![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_6.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_6.drawio.svg)
_Рисунок 5. Выставление адреса `6` на порт `write_addr_i` регистрового файла._
Обратите внимание: на светодиодах сразу после нажатия кнопки отображается адрес `6`.
1. Чтобы записать данные в указанный (шестой) регистр, выставим на переключателях значение `0x5678` и нажмем кнопку `BTNR` (см. _рис. 6_).
![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_5678.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_5678.drawio.svg)
_Рисунок 6. Запись `0x5678` в регистр `6`._
- ### Чтение
Рассмотрим последовательность действий, которые надо осуществить для чтения из регистрового файла, на примере. Прочитаем из регистра 5 заранее записанное значение `0x1234` и выведем его на оба блока семисегментных индикаторов 7-0 и 3-0.
Рассмотрим последовательность действий, которые надо осуществить для чтения из регистрового файла, на примере. Прочитаем из регистров `5` и `6` заранее записанные значения `0x1234` и `0x5678` соответственно и выведем его на оба блока семисегментных индикаторов 7-0 и 3-0.
Выставим значение `5` на блоки переключателей `ra1` и `ra2` (см. _рис. 2_), и нажмем кнопку `BTND`, чтобы обновить адрес значением с переключателей (см. _рис. 5_).
Выставим значение `5` и `6` на блоки переключателей `ra1` и `ra2` (см. _рис. 2_) соответственно, и нажмем кнопку `BTND`, чтобы обновить адрес значением с переключателей (см. _рис. 7_).
![../../../.pic/Labs/board%20files/nexys_rf_riscv_read.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_read.drawio.svg)
_Рисунок 5. Чтение из регистра 5._
_Рисунок 7. Чтение из регистров `5` и `6`._
Обратите внимание на то, что для чтения достаточно выставить нужный адрес на порт регистрового файла, и содержимое регистра оказывается считанным.