diff --git a/.pic/Labs/board files/nexys_rf_riscv_read.drawio.svg b/.pic/Labs/board files/nexys_rf_riscv_read.drawio.svg index 4d54979..22eaae1 100644 --- a/.pic/Labs/board files/nexys_rf_riscv_read.drawio.svg +++ b/.pic/Labs/board files/nexys_rf_riscv_read.drawio.svg @@ -1,4 +1,4 @@ -
addr_en
1
1
0
1
1
0
0
0
0
0
ra2
ra1
\ No newline at end of file +
addr_en
1
0
1
1
1
0
0
0
0
0
ra2
ra1
\ No newline at end of file diff --git a/.pic/Labs/board files/nexys_rf_riscv_write_addr_6.drawio.svg b/.pic/Labs/board files/nexys_rf_riscv_write_addr_6.drawio.svg new file mode 100644 index 0000000..875907f --- /dev/null +++ b/.pic/Labs/board files/nexys_rf_riscv_write_addr_6.drawio.svg @@ -0,0 +1,4 @@ + + + +
addr_en
1
0
1
\ No newline at end of file diff --git a/.pic/Labs/board files/nexys_rf_riscv_write_data_5678.drawio.svg b/.pic/Labs/board files/nexys_rf_riscv_write_data_5678.drawio.svg new file mode 100644 index 0000000..346f5a1 --- /dev/null +++ b/.pic/Labs/board files/nexys_rf_riscv_write_data_5678.drawio.svg @@ -0,0 +1,4 @@ + + + +
0
1
1
1
1
0
0
1
1
0
1
0
1
0
we
0
0
\ No newline at end of file diff --git a/Labs/03. Register file and memory/board files/README.md b/Labs/03. Register file and memory/board files/README.md index 1aba354..d9f5c8c 100644 --- a/Labs/03. Register file and memory/board files/README.md +++ b/Labs/03. Register file and memory/board files/README.md @@ -51,30 +51,47 @@ _Рисунок 2. Описание периферии, доступной пр - ### Запись - Рассмотрим последовательность действий, которые надо осуществить для записи в регистровый файл, на примере. Запишем значение `0x1234` в регистр `5`. + Рассмотрим последовательность действий, которые надо осуществить для записи в регистровый файл, на примере. - 1. Сразу после прошивки, как видно по негорящим светодиодам, на портах регистрового файла выставлены нулевые адреса. Нам нужно изменить адрес записи, поэтому выставим на переключателях значение `5` и нажмем кнопку `BTND` (см. _рис. 3_). + 1. Запишем значение `0x1234` в регистр `5`. - ![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_5.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_5.drawio.svg) + 1. Сразу после прошивки, как видно по негорящим светодиодам, на портах регистрового файла выставлены нулевые адреса. Нам нужно изменить адрес записи, поэтому выставим на переключателях значение `5` и нажмем кнопку `BTND` (см. _рис. 3_). - _Рисунок 3. Выставление адреса `5` на порт `write_addr_i` регистрового файла._ + ![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_5.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_addr_5.drawio.svg) - Обратите внимание: на светодиодах сразу после нажатия кнопки отображается адрес `5`. - 1. Чтобы записать данные в указанный (пятый) регистр, выставим на переключателях значение `0x1234` и нажмем кнопку `BTNR` (см. _рис. 4_). + _Рисунок 3. Выставление адреса `5` на порт `write_addr_i` регистрового файла._ - ![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_1234.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_1234.drawio.svg) + Обратите внимание: на светодиодах сразу после нажатия кнопки отображается адрес `5`. + 1. Чтобы записать данные в указанный (пятый) регистр, выставим на переключателях значение `0x1234` и нажмем кнопку `BTNR` (см. _рис. 4_). - _Рисунок 4. Запись `0x1234` в регистр `5`._ + ![../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_1234.drawio.svg](../../../.pic/Labs/board%20files/nexys_rf_riscv_write_data_1234.drawio.svg) + + _Рисунок 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`._ Обратите внимание на то, что для чтения достаточно выставить нужный адрес на порт регистрового файла, и содержимое регистра оказывается считанным.