brosandr.lab_02_alu (#62)

* Feat(02_Alu):Перепиcывание board модуля

* Fix(02_Alu):Замена .v->.sv в board файле

* Feat(pic/labs/board):Доб-ие пикчи alu_structure

* Ref(pic/labs_board):Обн-ие nexys_alu_structure

* Ref(pic/labs/board):Улуч-ие nexys_alu_struct

* Ref(02_Alu/board):Замена назв-ий переменных в nexys_alu

* Fix(02_Alu/board):Доб-ие @negedge arstn_i в регистр an

* Ref(02_Alu/board):Переписывание форм-ия operand_* на assign

* Ref(pic/labs/board):Rename ...svg->...drawio.svg

* Ref(labs/02_Alu/nexys_alu):Перевод на bcd

* Fix(labs/02_alu/nexys):Испр-ие вывода operand_a

* Fix(labs/02_alu/nexys):Изм-ие разряд-ти bcd на 42

* Fix(.pic/labs/board/nexys_alu):Обн-ие разрядности

* Ref(labs/02_alu/board):Обн-ие README

* Ref(02_Alu/board):Дополнение описания оболочки

* Ref(labs/02_alu_board):Различные улучшения md

* Ref(labs_02_alu/board):Доб-ие точки в md

* Repo(pic/labs/board):Уд-ие лишних картинок

* Fix(labs/02_alu/board/md):Испр-ие alt названия

* Ref(labs/02_alu/board):Перевод тире на юникод симв

* Style(02_alu/board):Доб-ие абзаца после картинки

* Fix(02_alu/board):Apply suggestions from code review

Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>

* Ref(02_alu/board):Уд-ие переносов внутри абзаца

* Style(02_alu):Доб-ие блейма

* Fix(pic/02_alu):Поворот SE

* Ref(pic/02_alu):Вырав-ие разярдностей и их цвета

* Fix(02_alu/nexys):Испр-ие блейма

* Ref(labs/02_alu/board):Переписывание bin2bcd

* Fix(02_Alu):Apply suggestions from code review

Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>

* Ref(pic/02_alu/alu_struct):Испр-ие шрифтов

* Ref(pic/02_alu):Экспорт в svg

* Ref(pic/02_alu/board):Обн-ие экспозиции nexys_alu

* Ref(02_alu):Переделка маппинга свитчей в список

* Ref(pic/02_alu/board):Подвижка боксов A,B,Sum

* Ref(pic/02_alu/board):Замен цветов

* Style(01_adder/board):Склеивание строк в абзацах

* Ref(pic/02_alu/board):Испр-ие nexys_alu_struct

* Fix(02_alu/board):Apply suggestions from code review

Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>

* Repo(02_alu/board):Доб-ие шапки создателя

---------

Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
This commit is contained in:
BROsandr
2024-02-20 17:09:37 +03:00
committed by GitHub
parent 4ddcfb40f3
commit a01446eb43
9 changed files with 272 additions and 166 deletions

View File

@@ -1,37 +1,24 @@
# Проверка работы полного 32-битного сумматора в ПЛИС
После того, как вы создали проверили на моделировании 32-разрядный сумматор,
вам необходимо проверить его работу на прототипе в ПЛИС.
После того, как вы создали проверили на моделировании 32-разрядный сумматор, вам необходимо проверить его работу на прототипе в ПЛИС.
Инструкция по реализации прототипа описана [здесь](../../../Vivado%20Basics/How%20to%20program%20an%20fpga%20board.md).
На _рис. 1_ представлена схема прототипа в ПЛИС.
![../../../.pic/Labs/board%20files/nexys_adder_structure.drawio.svg](../../../.pic/Labs/board%20files/nexys_adder_structure.drawio.svg)
_Рисунок 1. Структурная схема модуля `nexys_adder`._
Модуль `nexys_adder` позволяет подавать данные с переключателей <span style="color:#FF6666;"></span> на входы `a_i`, `b_i`,
а так же передавать входной бит переноса с помощью кнопки <span style="color:#FF6666;"></span> `BTND` на вход `carry_i`.
Модуль `nexys_adder` позволяет подавать данные с переключателей <span style="color:#FF6666;"></span> на входы `a_i`, `b_i`, а так же передавать входной бит переноса с помощью кнопки <span style="color:#FF6666;"></span> `BTND` на вход `carry_i`.
Переключатели делятся пополам между операндами `a_i`, `b_i` (переключатели `sw[7:0]` относятся к
операнду `b_i`, переключатели `sw[15:8]` относятся к операнду `a_i`). Так как переключателей
всего 16, каждому операнду достается только по 8. Таким образом, с переключателей можно ввести
8 младших бит каждого из операнда.
Переключатели делятся пополам между операндами `a_i`, `b_i` (переключатели `sw[7:0]` относятся к операнду `b_i`, переключатели `sw[15:8]` относятся к операнду `a_i`). Так как переключателей всего 16, каждому операнду достается только по 8. Таким образом, с переключателей можно ввести 8 младших бит каждого из операнда.
Старшие биты дополняются нулями, это значит что на нашем прототипе можно складывать числа в
диапазоне `[0:255]` (плюс можно прибавлять входной бит переноса),
а значит диапазон результатов будет `[0:511]`.
Старшие биты дополняются нулями, это значит что на нашем прототипе можно складывать числа в диапазоне `[0:255]` (плюс можно прибавлять входной бит переноса), а значит диапазон результатов будет `[0:511]`.
Семисегментные индикаторы <span style="color:#FF6666;"></span> отображают на левом блоке значение операндов `a_i` и `b_i`
в шестнадцатеричном формате, а на правом — результат сложения. Светодиоды <span style="color:#FF6666;"></span>,
расположенные над переключателями, дублируют сумму, представляя ее в двоичном формате.
Семисегментные индикаторы <span style="color:#FF6666;"></span> отображают на левом блоке значение операндов `a_i` и `b_i` в шестнадцатеричном формате, а на правом — результат сложения. Светодиоды <span style="color:#FF6666;"></span>, расположенные над переключателями, дублируют сумму, представляя ее в двоичном формате.
На _рис. 2_ показан пример сложения `0x48 + 0x18 = 0x60` при нулевом входном переносе.
(нулевом, т.к. не нажата кнопка `BTND`)
На _рис. 2_ показан пример сложения `0x48 + 0x18 = 0x60` при нулевом входном переносе (нулевом, т.к. не нажата кнопка `BTND`).
![../../../.pic/Labs/board%20files/nexys_adder_48_plus_18.drawio.svg](../../../.pic/Labs/board%20files/nexys_adder_48_plus_18.drawio.svg)