Files
APS/Labs/02. Arithmetic-logic unit/board files
BROsandr a01446eb43 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>
2024-02-20 17:09:37 +03:00
..
2024-02-20 17:09:37 +03:00
2024-02-20 17:09:37 +03:00
2024-02-20 17:09:37 +03:00

Проверка работы арифметико-логического устройства в ПЛИС

После того, как вы проверили на моделировании АЛУ, вам необходимо проверить его работу на прототипе в ПЛИС.

Инструкция по реализации прототипа описана здесь.

На рис. 1 представлена схема прототипа в ПЛИС.

../../../.pic/Labs/board%20files/nexys_alu_structure.drawio.svg

Рисунок 1. Структурная схема модуля nexys_alu, где блоки SEзнакорасширители.

Модуль nexys_alu позволяет подавать данные на входы a_i, b_i, alu_op_i, а также управлять интерпретацией знака операндов/результата с помощью переключателей.

Переключатели sw[15:0] и сигналы, ими задаваемые, соотносятся следующим образом:

  • sw[15:11] — операнд a_i.
  • sw[10:6] — операнд b_i.
  • sw[5]sign_on (назначение этого сигнала подробнее описано дальше по тексту).
  • sw[4:0]alu_op_i.

Сигнал sign_on — определяет интерпретацию (знаковый/беззнаковый) операндов a_i, b_i и результата result_o:

  • Если сигнал принимает значение 1 ("верхнее" положение переключателя), то операнды и результат интерпретируются и отображаются как знаковые числа.
  • Если сигнал принимает значение 0 ("нижнее" положение переключателя), то операнды и результат интерпретируются и отображаются как беззнаковые числа.

Таким образом, область допустимых значений операндов:

  • При знаковой интерпретации: [-16:15]
  • При беззнаковой интерпретации: [0:31]

Числа на семисегментных индикаторах отображаются в десятичной системе счисления.

Блок результата отображает знак и 3 наименее значимые цифры (разряды сотен, десятков, единиц) результата с учетом его интерпретации как знаковое/беззнаковое число. Например, результат операции вычитания 0 - 1 при знаковой интерпретации отобразится как -1 на семисегментых индикаторах, а при беззнаковой интерпретации как 295 (3 наименее значимые цифры числа 4294967295).

Светодиоды, расположенные над переключателями, отображают 15 бит результата и флаг. То есть led[15] соединен с flag_o сигналом alu, а led[14:0]с result_o[14:0].

На рис. 2 показан пример сложения 12 + (-16) = -4.

../../../.pic/Labs/board%20files/nexys_alu_12_plus_minus_16.drawio.svg

Рисунок 2. Использование АЛУ для вычисления выражения 12 + (-16) в ПЛИС.

Попробуйте выставить на переключателях различные операции (сложение, вычитание, сдвиг и сравнения), посмотрите различие между знаковыми/беззнаковыми операциями, убедитесь, что все работает исправно, и сдавайте работу.