mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
brosandr.01_Adder (#59)
* Ref(01_Adder):Уд-ие лога о результатых симуляции * Ref(01_Adder):Улучш-ие логирования * Ref(01_Adder_32):Доб-ие timeunit * Fix(01_Adder):Доб-ие #1 для ожидания line_dump * Ref(01_Adder):Доб-ие инфы в тб для 32 битного сумматора * Ref(01_Adder):Дополнение информацией board файла * Ref(01_Adder):Итализация названия рисунка 3 * Ref(01_Adder):Испр-ие грамматических ошибок в board файле * Revert "Ref(01_Adder):Доб-ие инфы в тб для 32 битного сумматора" This reverts commit96380b56dc
. * Revert "Fix(01_Adder):Доб-ие #1 для ожидания line_dump" This reverts commit34670f21f8
. * Revert "Ref(01_Adder_32):Доб-ие timeunit" This reverts commit11c97ac431
. * Revert "Ref(01_Adder):Улучш-ие логирования" This reverts commit92147fa303
. * Revert "Ref(01_Adder):Уд-ие лога о результатых симуляции" This reverts commit33c8dda06c
. * Ref(01_Adder):Испр-ие грамматики в README board files * Ref(01_Adder): Применение правок по MD bordfiles после ревью Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru> * Ref(01_Adder):Замена рисунка в MD board_files * Ref(01_Adder):Замена текста на ссылку по прошивке плис в board_files * Style(01_Adder):Испр-ие названия рисунков * Ref(01_Adder):Доб-ие ссылки на source window в board files * Ref(01_Adder):Испр-ие орфографии в md board_files * Style(01_adder_board):Разбивка длинных строк в md * Ref(01_Adder_board_md):Доб-ие номеров в кругах * Style(01_Adder_board_md):Доб-ие диапазонов в блок кода * Ref(01_Adder_board):Переименование файлов рисунков * Ref(01_Adder_board_md):Замена html color на latex Тк mardown не поддерживает html цвета * Revert "Ref(01_Adder_board_md):Замена html color на latex" This reverts commit90762590f7
. * Fix(01_Adder):Применение правок из ревью к md board files Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru> * Ref(01_Adder):Уд-ие лишней ссылки на инструкцию прошивки * Ref(01_Adder):Изм-ие номера рисунка * Ref(01_Adder):Переделка рисунка с 48 + 18 * Ref(01_Adder):Улучшение читаемости структурной схемы * Repo((.pic/labs/board files):Уд-ие неиспользуемых пикч * Repo(board_files):Возврат program_device * Repo:Перемещение пикчи how_to_program в соотв папку --------- Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
This commit is contained in:
@@ -1,23 +1,38 @@
|
||||
# Проверка работы Полного 32-битного сумматора на ПЛИС
|
||||
# Проверка работы полного 32-битного сумматора в ПЛИС
|
||||
|
||||
После того, как вы создали свой сумматор и проверили его на прохождение тестирующего модуля, вы можете использовать предложенный модуль окружения [`nexys_adder.sv`](nexys_adder.sv), который позволяет связать вашу логику с периферией, расположенной на плате `Nexys-A7`. Для его подключения, скачайте и добавьте файл в проект, либо скопируйте содержимое в новый `.sv` файл вашего проекта. В окне `Sources` нажмите на него ПКМ и выберите `Set as Top`, после чего в иерархии он станет главным, подключив ваш собственный модуль сумматора. Для того, чтобы дизайн мог физически подключиться к периферии, нужно в проекте выбрать `Add or create constraints` и подключить файл [`nexys_a7_100t.xdc`](nexys_a7_100t.xdc).
|
||||
После того, как вы создали проверили на моделировании 32-разрядный сумматор,
|
||||
вам необходимо проверить его работу на прототипе в ПЛИС.
|
||||
|
||||
После этого наше устройство будет выглядеть так:
|
||||
Инструкция по реализации прототипа описана [здесь](../../../Vivado%20Basics/How%20to%20program%20an%20fpga%20board.md).
|
||||
|
||||

|
||||
|
||||
Подключенное окружение позволяет производить ввод входных значений (А, В и Pin) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. Операнд А задается переключателями 15-8, В: 7-0, Pin: тактовая кнопка BTND (нижняя из 5-ти, расположенных вместе в форме крестовины). Семисегментные индикаторы в шестнадцатеричном формате отображают на левом блоке слагаемые А и В, а на правом - результат сложения. На светодиодах, расположенных над переключателями отображается результат в двоичном формате.
|
||||
|
||||
Управление сумматором через плату
|
||||
|
||||

|
||||
На _рис. 1_ представлена схема прототипа в ПЛИС.
|
||||
|
||||
Для прошивки ПЛИС подключите утройство через USB, включите питание переключателем, выполните синтез и имплементацию вашего дизайна и сгенерируйте битстрим. Если на этом этапе у вас возникают ошибки, постарайтесь исправить из с помощью [`инструкции по работе с ошибками синтеза`](../../../Vivado%20Basics/Elaboration%20failed.md). После этого выберите в левом меню `Open Target` - `Auto Connect`, затем `Program Device` и ваше устройство прошьется.
|
||||

|
||||
|
||||
Генерация битстрима
|
||||

|
||||
_Рисунок 1. Структурная схема модуля `nexys_adder`._
|
||||
|
||||
Прошивка ПЛИС
|
||||

|
||||
Модуль `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 младших бит каждого из операнда.
|
||||
|
||||
Старшие биты дополняются нулями, это значит что на нашем прототипе можно складывать числа в
|
||||
диапазоне `[0:255]` (плюс можно прибавлять входной бит переноса),
|
||||
а значит диапазон результатов будет `[0:511]`.
|
||||
|
||||
Семисегментные индикаторы <span style="color:#FF6666;">❸</span> отображают на левом блоке значение операндов `a_i` и `b_i`
|
||||
в шестнадцатеричном формате, а на правом — результат сложения. Светодиоды <span style="color:#FF6666;">❹</span>,
|
||||
расположенные над переключателями, дублируют сумму, представляя ее в двоичном формате.
|
||||
|
||||
На _рис. 2_ показан пример сложения `0x48 + 0x18 = 0x60` при нулевом входном переносе.
|
||||
(нулевом, т.к. не нажата кнопка `BTND`)
|
||||
|
||||

|
||||
|
||||
_Рисунок 2. Использование сумматора для вычисления выражения `0x48 + 0x18` в ПЛИС._
|
||||
|
Reference in New Issue
Block a user