-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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 commit 96380b5. * Revert "Fix(01_Adder):Доб-ие #1 для ожидания line_dump" This reverts commit 34670f2. * Revert "Ref(01_Adder_32):Доб-ие timeunit" This reverts commit 11c97ac. * Revert "Ref(01_Adder):Улучш-ие логирования" This reverts commit 92147fa. * Revert "Ref(01_Adder):Уд-ие лога о результатых симуляции" This reverts commit 33c8dda. * Ref(01_Adder):Испр-ие грамматики в README board files * Ref(01_Adder): Применение правок по MD bordfiles после ревью Co-authored-by: Andrei Solodovnikov <[email protected]> * 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 commit 9076259. * Fix(01_Adder):Применение правок из ревью к md board files Co-authored-by: Andrei Solodovnikov <[email protected]> * 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 <[email protected]>
- Loading branch information
Showing
9 changed files
with
39 additions
and
22 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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). | ||
|
||
![../../../.pic/Labs/board%20files/nexys_adder1.png](../../../.pic/Labs/board%20files/nexys_adder1.png) | ||
|
||
Подключенное окружение позволяет производить ввод входных значений (А, В и Pin) с помощью переключателей (номер переключателя отображен на самом краю платы), расположенных на плате. Операнд А задается переключателями 15-8, В: 7-0, Pin: тактовая кнопка BTND (нижняя из 5-ти, расположенных вместе в форме крестовины). Семисегментные индикаторы в шестнадцатеричном формате отображают на левом блоке слагаемые А и В, а на правом - результат сложения. На светодиодах, расположенных над переключателями отображается результат в двоичном формате. | ||
|
||
Управление сумматором через плату | ||
|
||
![../../../.pic/Labs/board%20files/nexys_adder2.png](../../../.pic/Labs/board%20files/nexys_adder2.png) | ||
На _рис. 1_ представлена схема прототипа в ПЛИС. | ||
|
||
Для прошивки ПЛИС подключите утройство через USB, включите питание переключателем, выполните синтез и имплементацию вашего дизайна и сгенерируйте битстрим. Если на этом этапе у вас возникают ошибки, постарайтесь исправить из с помощью [`инструкции по работе с ошибками синтеза`](../../../Vivado%20Basics/Elaboration%20failed.md). После этого выберите в левом меню `Open Target` - `Auto Connect`, затем `Program Device` и ваше устройство прошьется. | ||
![../../../.pic/Labs/board%20files/nexys_adder_structure.drawio.svg](../../../.pic/Labs/board%20files/nexys_adder_structure.drawio.svg) | ||
|
||
Генерация битстрима | ||
![../../../.pic/Labs/board%20files/Program_Device1.png](../../../.pic/Labs/board%20files/Program_Device1.png) | ||
_Рисунок 1. Структурная схема модуля `nexys_adder`._ | ||
|
||
Прошивка ПЛИС | ||
![../../../.pic/Labs/board%20files/Program_Device2.png](../../../.pic/Labs/board%20files/Program_Device2.png) | ||
Модуль `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`) | ||
|
||
![../../../.pic/Labs/board%20files/nexys_adder_48_plus_18.drawio.svg](../../../.pic/Labs/board%20files/nexys_adder_48_plus_18.drawio.svg) | ||
|
||
_Рисунок 2. Использование сумматора для вычисления выражения `0x48 + 0x18` в ПЛИС._ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters