МПСиС / lab_m1_vt_vt_ampsis_230100.62_niy06
.pdf
Лабораторная работа № 2 Разработка регистрового арифметико-логического
устройства
Лабораторное задание
Необходимо разработать Verilog-описание и промоделировать работу 4-разрядного регистрового АЛУ (РАЛУ).
Процесс выполнения задания можно разделить на следующие этапы:
1)создание нового проекта в САПР Quartus;
2)разработка Verilog-описания РАЛУ с использованием созданной ранее схемы АЛУ с последовательной организацией арифметического переноса;
3)проверка работы РАЛУ в симуляторе;
4)создание примитива (символа) РАЛУ;
5)выполнение индивидуального задания.
Структура РАЛУ
Структура РАЛУ приведена на рис.1. Блок регистров общего назначения (БРОН) состоит из восьми 4-разрядных регистров. В табл.1 приведены параметры сигналов управления регистрами. При A = 0 на вход Рг1 подается шина от БРОН, при A = 1 – шина от внешних устройств.
Рис.1. Схема РАЛУ
39
|
|
|
|
Таблица 1 |
|
|
Управление Рг1, |
БРОН и Рг2 |
|||
v[0], wr |
Режим Рг1 и БРОН |
|
v[2:1] |
Режим Рг2 |
|
0 |
Чтение/хранение |
|
00 |
Чтение/хранение |
|
1 |
Запись |
|
01 |
Сдвиг влево |
|
|
|
|
10 |
Сдвиг вправо |
|
|
|
|
11 |
Запись |
|
Пример проектирования
Рассмотрим процесс создания Verilog-описания РАЛУ. Из схемы РАЛУ видно, что ее Verilog-описание должно состоять из подключения ранее разработанного модуля АЛУ, описания БРОН, двух регистров и мультиплексора. Для реализации регистров используйте конструкцию always. Описание мультиплексора можно совместить с описанием первого регистра при помощи условной конструкции (? :). Для реализации БРОН используйте массив регистров и конструкцию always.
На рис.2 представлена заготовка Verilog-модуля c подключенным модулем АЛУ и рекомендованным описанием портов модуля РАЛУ, где
clk – тактовый сигнал;
reset – сигнал сброса регистров схемы в нулевое состояние;
DataIn, R – шины от внешнего устройства и к внешнему устройству;
S, M – управляющее слово и модификатор;
A – сигнал управления мультиплексором;
v – сигналы управления режимами чтения/записи первого и второго регистров;
wr – сигналы управления режимами чтения/записи БРОН;
adr – шина адреса БРОН;
ISL, ISR – значение бита, подаваемого на вход второго регистра при сдвиге влево и вправо соответственно;
OSL, OSR – значение бита, снимаемого с выхода второго регистра при сдвиге влево и вправо соответственно;
P4 – выходной бит переноса.
На рис.3 представлены результаты моделирования работы РАЛУ. В данном примере последовательно производится запись в БРОН чисел 4, 6, 3, 2 по адресам 0, 1, 2, 3 соответственно. Далее выполняются операции сложения содержимого БРОН с адресами 0, 2 и 1, 3. Результаты
40
Рис.2. Заготовка Verilog-описания модуля РАЛУ
записываются в БРОН по адресам 0 и 1. Повторите результаты моделирования, приведенные на рис.3, и считайте результаты сложений из БРОН.
Индивидуальное задание
В качестве индивидуального задания предлагается промоделировать работу РАЛУ при выполнении конкретной микропрограммы. В табл.2 приведены варианты операций, которые необходимо представить
41
в виде микропрограммы. Операнды A и B последовательно считываются с шины DataInput.
Требования к отчету
В качестве отчета о выполнении лабораторной работы вы должны представить проект Quartus, содержащий схемы, Verilog-описания, тестовые воздействия и результаты моделирования схемы РАЛУ, выполняющей один из вариантов индивидуального задания.
Таблица 2
Варианты индивидуального задания
№ Операция
1A B A
2A B A
3A B A
4A B B
5A B B
6A B 1 B
7A B B
8A B (A B)
9A B A B A
10A 1 B
11A (B 1) A
12(A 1) B (A B)
13A B (A 2)
14A B (A 3)
15A B A B
№ Операция
16A A B B
17A 1 B
18A B (A B)
19A B A B A
20A 1 B
21A (B 1) A
22A (B 2) 1 B
23(A 1) B A
24A B (A (B 1))
25A B A B
26A A B B
27A 1 (B 1)
28A B (A B)
29A B A B A
30A B B
42
Рис.3. Результаты моделирования работы РАЛУ
43
Лабораторная работа № 3 Разработка устройства с микропрограммным
управлением
Лабораторное задание
Необходимо реализовать устройство с микропрограммным управлением на основе разработанного ранее РАЛУ. Устройство должно выполнять микропрограмму, вычисляющую выражение из табл.2 лабораторной работы № 2. Помимо этого, необходимо организовать выполнение условных переходов по различным признакам. Ваша программа может работать следующим образом: считывает пару чисел A и B с шины DataInput, вычисляет выражение из табл.2 лабораторной работы № 2, сравнивает результат с некоторой константой и в зависимости от результата сравнения и варианта условия (табл.1) либо вновь переходит к считыванию аргументов, либо завершает свое выполнение. Описание устройства необходимо выполнить на Verilog HDL.
|
Варианты индивидуального задания |
Таблица 1 |
|||||
|
|
||||||
№ |
1 - 5 |
6 - 10 |
11 - 15 |
16 - 20 |
21 - 25 |
26 - 30 |
|
|
Не |
|
|
|
Больше |
Меньше |
|
Условие |
Больше |
Меньше |
Равно |
либо |
либо |
||
равно |
|||||||
|
|
|
|
равно |
равно |
||
|
|
|
|
|
|||
Пример проектирования
На рис.1 приведен пример структуры устройства с микропрограммным управлением. Данная структура состоит из известной схемы РАЛУ, устройства управления (УУ), регистра и нескольких логических элементов. Все блоки тактируются и устанавливаются сигналами clk и reset соответственно. УУ формирует необходимые для РАЛУ сигналы управления в зависимости от текущей микрокоманды и признаков нулевого результата и переполнения. Регистр введен в схему для синхронизации работы РАЛУ и УУ. Микропрограмма хранится в ПЗУ, входящем
всостав УУ.
Вданном устройстве реализованы команды обращения к внешним портам на чтение и запись. Для этого формируются сигналы PortRead,
44
clk |
INPUT |
|
VCC |
reset |
INPUT |
|
VCC |
DataIn[3..0] |
INPUT |
|
VCC |
R[3] NOR4
R[2]
R[1]
R[0]
inst
|
|
|
|
|
|
RALU |
|
|
|
|
|
|
|
|
|
|
clk |
|
OSR |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
reset |
|
OSL |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
DataIn[3..0] |
P4 |
|
|
S[3..0] |
|
|
|
|||||
|
|
|
|
S[3..0] |
|
R[3..0] |
|||
|
M |
|
|
|
|
|
|||
|
|
|
|
|
M |
|
|
||
|
P0 |
|
|
|
|
|
|
||
|
|
|
|
|
P0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
||
|
|
|
|
|
A |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
v [3..0] |
|
|
|
|
|
|
||
|
|
|
|
|
v [3..0] |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
wr |
|
|
|
|
|
|
||
|
|
|
|
|
wr |
|
|
||
|
adr[2..0] |
|
|
|
|
||||
|
|
|
adr[2..0] |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
ISR |
|
|
|
|
|
|
||
|
|
|
|
|
ISR |
|
|
||
|
ISL |
|
|
|
|
|
|
||
|
|
|
|
|
ISL |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inst1 |
|
|
|
|
|
|
ControlUnit |
|
|
||||
clk |
|
|
|
|
clk |
ContolBus[16..0] |
|||
|
|
|
|
||||||
|
|
|
|
|
|||||
reset |
|
|
|||||||
|
|
reset |
|
|
|||||
P4 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
||||
|
|
|
|
Carry Flag |
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
ZeroFlag |
|
|
||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inst3 |
|
|
|||
OUTPUT
DataOut[3..0]
P4
|
DFF |
|
|
PRN |
R[3..0] |
clk |
D |
Q |
CLRN inst6 
reset NOT
inst7
A |
AND2 |
v[0] |
PortRead |
OUTPUT |
inst4
S[3..0], M, P0, ISR, ISL, A, wr,adr[2..0], v[3..0]
adr[2..0] WIRE
OUTPUT
inst5
v[3] WIRE
OUTPUT
inst8
Рис.1. Структура устройства с микропрограммным управлением
45
PortRead
PortID[2..0]
PortWrite
PortWrite, PortID. Сигнал PortRead – это результат логического умножения сигнала записи в первый регистр РАЛУ и сигнала управления мультиплексором. Таким образом, логическая «1» в сигнале PortRead появляется, когда в микрокоманде установлены в «1» биты v[0] и A, т.е. производится запись данных из внешнего устройства в первый регистр РАЛУ. Сигналы PortWrite и PortID непосредственно содержатся в микрокоманде, причем шина PortID совмещена с шиной адреса БРОН.
В устройстве реализованы безусловный переход по указанному в микрокоманде адресу и два типа условного перехода по признакам переполнения или нулевого результата. Микрокоманда условного или безусловного перехода содержит в себе код признака перехода и адрес перехода, который располагается в младших разрядах микрокоманды, т.е. вместо битов adr[2:0] и v[3:0]. При этом на все управляющие сигналы УУ выдает неактивные уровни.
На рис.2 представлены результаты моделирования УУ, выполняющего микропрограмму, приведенную в табл.2, где БП, ПП, ПН – это биты безусловного перехода, перехода по переполнению и нулевому результату соответственно. Данная программа состоит из семи микрокоманд. Выполняются последовательное считывание двух операндов с шины DataInput, операция сложения этих операндов и безусловный переход на нулевой адрес, т.е. выполняется бесконечный цикл.
Вы можете предложить и реализовать свою структуру устройства управления.
Требования к отчету
В качестве отчета о выполнении лабораторной работы вы должны представить проект Quartus, содержащий схемы, Verilogописания, тестовые воздействия и результаты моделирования схемы устройства с микропрограммным управлением, выполняющей один из вариантов индивидуального задания.
46
Рис.2. Результаты моделирования устройства управления
47
48
Таблица 2
Пример микропрограммы
№ |
Действие |
|
|
|
|
Микрокоманда |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||
БП |
ПП |
ПН |
S[3:0] |
M |
P0 |
ISR, |
|
A |
wr |
adr[2:0] |
v[3:0] |
||
|
|
|
|||||||||||
|
|
ISL |
|
||||||||||
0 |
DataInput→Рг1 |
0 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
1 |
0 |
000 |
0001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Рг1→БРОН-0 |
0 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
1 |
1 |
000 |
0001 |
DataInput→Рг1 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Рг1→БРОН-1 |
0 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
0 |
1 |
001 |
0000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
БРОН-0→ Рг2 |
0 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
0 |
0 |
000 |
0110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
БРОН-1→ Рг1 |
0 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
0 |
0 |
001 |
0001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Рг1 Рг2 |
0 |
0 |
0 |
1001 |
1 |
0 |
00 |
|
0 |
0 |
000 |
0000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
PC=0 |
1 |
0 |
0 |
0000 |
0 |
0 |
00 |
|
0 |
0 |
000 |
0000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
