ЛР2. Обновление изображений, указание источников

Перерисованы изображения, взятые из Цифровой схемотехники, и добавлена
ссылка в конце лабы.
This commit is contained in:
Andrei Solodovnikov
2024-01-26 15:42:59 +03:00
parent 0fdc5f8f7f
commit d0bf82df6c
7 changed files with 10 additions and 6 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

View File

@@ -26,9 +26,9 @@
Обычно АЛУ представляет собой комбинационную схему (то есть без элементов памяти), на входы которой поступают информационные (операнды) и управляющие (код операции) сигналы, в ответ на что на выходе появляется результат заданной операции. АЛУ бывает не комбинационной схемой, но это скорее исключение.
![../../.pic/Labs/lab_02_alu/fig_01.png](../../.pic/Labs/lab_02_alu/fig_01.png)
![../../.pic/Labs/lab_02_alu/fig_01.drawio.png](../../.pic/Labs/lab_02_alu/fig_01.drawio.png)
*Рисунок 1. Структурное обозначение элемента АЛУ*
*Рисунок 1. Структурное обозначение элемента АЛУ[1, стр.305].*
На рис. 1 изображен пример АЛУ, используемый в книге "Цифровая схемотехника и архитектура компьютера" Харрис и Харрис. На входы `A` и `B` поступают операнды с разрядностью *N*. На трехбитный вход `F` подается код операции. Например, если туда подать `000`, то на выходе `Y` появится результат операции *логическое И* между битами операндов `A` и `B`. Если на `F` подать `010`, то на выходе появится результат сложения. Это лишь пример, разрядность и коды могут отличаться в зависимости от количества выполняемых операций и архитектуры.
@@ -38,15 +38,15 @@
К одному из входов этих операционных устройств подключен `A` без изменений, а ко второму подключен выход двухвходового мультиплексора, управляемого оставшимся битом *F*. То есть `F[2]` определяет, что будет вторым операндом: `B` или `~B`. Вдобавок `F[2]` подается на входной перенос сумматора, то есть, когда `F[2] == 1` на выходе сумматора появляется результат операции `A + ~B + 1`, что (с учетом [дополнительного кода](https://ru.wikipedia.org/wiki/Дополнительный_код)) эквивалентно `A  B`.
![../../.pic/Labs/lab_02_alu/fig_02.png](../../.pic/Labs/lab_02_alu/fig_02.png)
![../../.pic/Labs/lab_02_alu/fig_02.drawio.png](../../.pic/Labs/lab_02_alu/fig_02.drawio.png)
*Рисунок 2. Структурная схема АЛУ MIPS*
*Рисунок 2. Структурная схема АЛУ MIPS[1, стр.305].*
Посмотрим, что произойдет, если на вход `F` такого АЛУ подать `111`. Будет выполняться операция `SLT`(сокращение от `Set Less Then`) выдать `1`, если `A` меньше `B`, в противном случае — выдать `0`. Биты `F[1:0]` переключат мультиплексор на выход блока Zero Extend. На вход Zero Extend поступает старший бит выхода сумматора, этот бит отвечает за знак результата. Так как `F[2] == 1`, сумматор вычисляет `A + ~B + 1`, то есть `A  B`, значит, если `A < B`, то результат вычитания будет отрицательный, а старший бит `Y[N-1] == 1`. Если `A` не меньше `B`, то разность будет неотрицательна, а `Y[N-1] == 0`, как и требуется от этой операции.
![../../.pic/Labs/lab_02_alu/fig_03.png](../../.pic/Labs/lab_02_alu/fig_03.png)
![../../.pic/Labs/lab_02_alu/fig_03.drawio.png](../../.pic/Labs/lab_02_alu/fig_03.drawio.png)
*Рисунок 3. Пример исполнения операции АЛУ*
*Рисунок 3. Пример исполнения операции АЛУ.*
Преимущество такой организации АЛУ в его простой модификации, настройке под нужные коды операций, читаемости кода и масштабируемости. Можно легко добавить или убрать требуемые операции. Подумайте, как бы вы обновили данную схему, если бы от вас потребовалось расширить её функционал операциями XOR (Исключающее ИЛИ) и (SGE операция "больше либо равно")?
@@ -288,3 +288,7 @@ endmodule
5. Добавьте в проект модуль верхнего уровня ([nexys_alu.sv](board%20files/nexys_alu.sv)), соединяющий АЛУ с периферией в ПЛИС. Описание модуля находится [здесь](board%20files)
6. Подключите к проекту файл ограничений ([nexys_a7_100t.xdc](board%20files/nexys_a7_100t.xdc), файл ограничений, добавленный в первой лабораторной содержит другие данные, вам необходимо вставить содержимое файла для текущей лабы).
7. Проверьте работу АЛУ в ПЛИС.
## Список использованной литературы
1. Д.М. Харрис, С.Л. Харрис / Цифровая схемотехника и архитектура компьютера / пер. с англ. Imagination Technologies / М.: ДМК Пресс, 2018.