Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МПСиС / lab_m1_vt_vt_ampsis_230100.62_niy06

.pdf
Скачиваний:
71
Добавлен:
18.02.2017
Размер:
3.26 Mб
Скачать

Лабораторная работа № 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в папке МПСиС