mirror of
https://github.com/MPSU/APS.git
synced 2025-09-16 17:40:41 +00:00
63 lines
4.6 KiB
Markdown
63 lines
4.6 KiB
Markdown
# Проверка работы регистрового файла на ПЛИС
|
||
|
||
Если вы не понимаете, что лежит в этой папке, или если надо вспомнить, как прошить ПЛИС, можно воспользоваться [`этой инструкцией`](../../../Vivado%20Basics/How%20to%20program%20an%20fpga%20board.md)
|
||
|
||
> [!NOTE]
|
||
> ## Список подключенной периферии
|
||
>
|
||
> - _Переключатели_ — установки адреса, данных.
|
||
> - `BTND` — запись
|
||
>
|
||
> ...
|
||
|
||
## Описание используемой периферии
|
||
|
||
- ### Переключатели и кнопки.
|
||
|
||
Для работы с регистровым файлом, необходимо выставлять сигналы адресов и данных.
|
||
У платы недостаточно переключателей для такого количества входов регистрового файла, поэтому адреса и данные задаются одним источником ввода:
|
||
|
||
1. Ввод **адресов** (`read_address1_i`/`read_address2_i`/`write_address_i`) регистрового файла осуществляется через переключатели `SW[14:0]`. Соответствие следующее:
|
||
|
||
- `SW[ 4: 0]` — `write_address_i`
|
||
- `SW[ 9: 5]` — `read_address2_i`
|
||
- `SW[14:10]` — `read_address1_i`
|
||
|
||
Для того чтобы выставить введенные адреса на входные порты регистрового файла, необходимо нажать кнопку `BTND`. Таким образом, происходит запоминание адресов в элемент памяти.
|
||
1. Ввод **данных** (`write_data_i`) регистрового файла осуществляется через переключатели `SW[15:0]`. Таким образом, можно выставить только нижние 16 бит данных. Для записи введенных данных по адресу `write_address_i` используется кнопка `BTNR`.
|
||
- ### Светодиоды
|
||
|
||
Светодиоды `LED[14:0]` отображают адреса (`read_address1_i`/`read_address2_i`/`write_address_i`), которые выставлены в данный момент на порты регистрового файла:
|
||
|
||
- `LED[ 4: 0]` — `write_address_i`
|
||
- `LED[ 9: 5]` — `read_address2_i`
|
||
- `LED[14:10]` — `read_address1_i`
|
||
|
||
- ### Семисегментные индикаторы
|
||
|
||
На левом блоке семисегментных индикаторов (индикаторы 7-4) отображаются нижние 16 бит порта `read_data1_o`, а не правом блоке семисегментных индикаторов (индикаторы 3-0) отображаются нижние 16 бит порта `read_data2_o`.
|
||
|
||
Управление регистровым файлом.
|
||
|
||

|
||
|
||
Ниже показан пример последовательности действий для работы с платой.
|
||
|
||
Установка значения `5'b10101` на входы `A1`,`A2`,`A3`.
|
||
|
||

|
||
|
||
Запись информации по адресу А3.
|
||
|
||

|
||
|
||
Чтение по адресам А1 и А2.
|
||
|
||

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

|
||
|
||
Попробуйте записать информацию в нулевой регистр, затем по другим адресам, после чего считайте записанную информацию и убедитесь, что она соответствует той, которую вы записывали (с учетом особенностей регистрового файла RISC-V).
|