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

МПСиС_Лабораторный практикум

.pdf
Скачиваний:
297
Добавлен:
05.06.2015
Размер:
16.33 Mб
Скачать

му индикатору, HEX_1 - второму справа и т.д. Управление отдельными сегментами реализовано в модуле OutputModule и ориентировано на отображение шестнадцатеричных цифр, т.е. при HEX_0[3..0] = 0000 на крайнем правом индикаторе будет отображен символ нуля, а при

HEX_0[3..0] = 1111 - символ F. Сигналы hex_0_off, hex_1_off, hex_2_off

и hex_3_off отвечают за засветку семисегментных индикаторов. Например, если hex_0_off выставить в единицу, индикатор HEX_0 погаснет.

С помощью шин LedRed[9..0] и LedGreen[7..0] можно управлять линейками светодиодов, расположенных на плате. Например, подача «1» на LedGreen[0] активирует крайний справа светодиод.

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

Рис.4. Модуль организации тестовых воздействий

Пример проектирования

На рис.5 приведен пример схемы вычислительного устройства с микропрограммным управлением, дополненной модулями ввода/вывода. Данная схема имеет четыре входных порта (clk - тактовый сигнал, reset - сигнал начальной установки, KB - код нажатой клавиши, KP - индикатор нажатой клавиши) и один выходной порт (Indicator - коды для семисегментных индикаторов).

Модули ввода/вывода описаны на Verilog HDL, их листинги представлены на рис.6 и 7 соответственно. Из приведенных описаний видно, что оба модуля имеют регистровую память, адресуемую с помощью шины PortID.

91

92

Рис.6. Модуль ввода данных

Рис.7. Модуль вывода данных на семисегментный индикатор

93

Модуль ввода состоит из двух регистров, доступных для чтения. По нулевому адресу находится регистр готовности данных от клавиатуры, а по первому - сами данные. Таким образом, УМУ должно опрашивать регистр готовности и при наличии в нем «1» считывать данные из первого регистра. Отметим, что регистр готовности сбрасывается при его чтении.

Модуль вывода состоит из четырех адресуемых регистров, каждый из которых соответствует определенному семисегментному индикатору. Так, запись данных в нулевой регистр приводит к отображению этих данных на крайнем правом индикаторе.

В табл.1 представлен пример микропрограммы, реализующей лабораторное задание на примере сложения двух 4-разрядных чисел.

Требования к отчету

В качестве отчета о выполнении лабораторной работы вы должны представить проект Quartus, содержащий схемы, Verilog-описания, тестовые воздействия и результаты моделирования схемы устройства, выполняющей один из вариантов индивидуального задания, а также продемонстрировать его работу на учебном стенде.

94

Таблица 1

Пример микропрограммы

 

 

 

 

 

 

Микрокоманда

 

 

 

 

Действие

 

 

 

 

 

 

 

 

 

 

Код пере-

S[3:0]

M

 

P0

ISR,

A

wr

adr[2:0]

v[3:0]

 

 

 

 

 

 

 

хода

 

 

 

 

ISL

 

 

 

 

 

0

1→РгB

000

0000

0

 

0

01

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

DataIn-0→РгA

000

0000

0

 

0

00

1

0

000

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

РгA– РгB

000

0110

1

 

1

00

0

0

000

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

If R==0 PC=5

100

0000

0

 

0

00

0

0

000

0101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

PC=1

111

0000

0

 

0

00

0

0

000

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

DataIn-1→РгA

000

0000

0

 

0

00

1

0

000

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

РгA→DataOut-0

000

0000

0

 

0

00

0

0

000

1000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

РгA→БРОН-0

000

0000

0

 

0

00

0

1

000

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

DataInput-0→РгA

000

0000

0

 

0

00

1

0

000

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

95

9

РгA– РгB

000

0110

1

 

1

00

0

0

000

0000

 

 

 

 

 

 

 

 

 

 

 

 

96

Продолжение табл.1

 

 

 

 

Микрокоманда

 

 

 

 

Действие

 

 

 

 

 

 

 

 

 

Код перехода

S[3:0]

M

P0

ISR,

A

wr

adr[2:0]

v[3:0]

 

 

 

 

ISL

 

 

 

 

 

 

 

 

 

 

10

If R==0 PC=12

100

0000

0

0

00

0

0

000

1101

 

 

 

 

 

 

 

 

 

 

 

11

PC=8

111

0000

0

0

00

0

0

000

1000

 

 

 

 

 

 

 

 

 

 

 

12

DataIn-1→РгA

000

0000

0

0

00

1

0

001

0001

 

 

 

 

 

 

 

 

 

 

 

13

РгA→DataOut-0

000

0000

0

0

00

0

0

000

1000

 

 

 

 

 

 

 

 

 

 

 

14

РгA→БРОН-1

000

0000

0

0

00

0

1

001

0000

 

 

 

 

 

 

 

 

 

 

 

15

DataIn-0→РгA

000

0000

0

0

00

1

0

000

0001

 

 

 

 

 

 

 

 

 

 

 

16

РгA– РгB

000

0110

1

1

00

0

0

000

0000

 

 

 

 

 

 

 

 

 

 

 

17

If R==0 PC=19

100

0000

0

0

00

0

0

001

0011

 

 

 

 

 

 

 

 

 

 

 

18

PC=15

111

0000

0

0

00

0

0

000

1111

 

 

 

 

 

 

 

 

 

 

 

19

15→РгB

000

0000

0

0

01

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

Продолжение табл.1

 

 

 

 

 

Микрокоманда

 

 

 

 

 

Действие

 

 

 

 

 

 

 

 

 

Код перехода

S[3:0]

M

P0

ISR,

A

wr

adr[2:0]

v[3:0]

 

 

 

 

 

 

ISL

 

 

 

 

 

 

 

 

 

 

 

 

20

 

000

0000

0

0

01

0

0

000

0010

 

 

15→РгB

 

 

 

 

 

 

 

 

 

 

21

000

0000

0

0

01

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

DataIn-1→РгA

000

0000

0

0

00

1

0

001

0001

 

 

 

 

 

 

 

 

 

 

 

 

 

23

РгA– РгB

000

0110

1

1

00

0

0

000

0000

 

 

 

 

 

 

 

 

 

 

 

 

 

24

If R==0 PC=29

100

0000

0

0

00

0

0

001

1101

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

000

0000

0

0

00

0

0

000

0100

 

 

 

 

 

 

 

 

 

 

 

 

 

26

1→РгB

000

0000

0

0

00

0

0

000

0100

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

00

0000

0

0

00

0

0

000

0100

 

 

 

 

 

 

 

 

 

 

 

 

 

28

PC=15

111

0000

0

0

00

0

0

000

1111

 

 

 

 

 

 

 

 

 

 

 

 

 

29

БРОН-0→РгB

000

0000

0

0

00

0

0

000

0110

97

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

98

Окончание табл.1

 

 

 

 

Микрокоманда

 

 

 

 

Действие

 

 

 

 

 

 

 

 

 

Код перехода

S[3:0]

M

P0

ISR,

A

wr

adr[2:0]

v[3:0]

 

 

 

 

ISL

 

 

 

 

 

 

 

 

 

 

30

БРОН-1→РгA

000

0000

0

0

00

0

0

001

0001

 

 

 

 

 

 

 

 

 

 

 

31

РгA +

000

1001

1

0

00

0

0

000

1000

РгB→DataOut-0

 

 

 

 

 

 

 

 

 

 

32

 

000

0000

0

0

00

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

33

 

000

0000

0

0

00

0

0

000

0010

 

0→РгB

 

 

 

 

 

 

 

 

 

34

000

0000

0

0

00

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

 

35

 

000

0000

0

0

00

0

0

000

0010

 

 

 

 

 

 

 

 

 

 

 

36

PC=0

111

0000

0

0

00

0

0

000

0000

 

 

 

 

 

 

 

 

 

 

 

Литература

1.Угрюмов А.Л. Цифровая схемотехника. - СПб.: БХВ-Петербург, 2002. - 528 с.

2.IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language (IEEE Std. 1364-1995).

3.IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language (IEEE Std. 1364-2001).

4.IEEE Standard Hardware Description Language Based on the Verilog Hardware Description Language (IEEE Std. 1364-2005).

5.IEEE Standard for Verilog Register Transfer Level Synthesis (IEEE Std. 1364.1-2002).

6.Стемпковский А.Л., Семенов М.Ю. Основы логического синте-

за средствами САПР Synopsys с использованием Verilog HDL: учеб.

пособие. - М.: МИЭТ, 2005. - 140 с.

7. Микропроцессорные средства и системы: курс лекций /

Д.Н. Беклемишев, А.Н. Орлов, А.Л. Переверзев и др.; под ред. Ю.В. Са-

вченко. - М.: МИЭТ, 2013. - 288 с.

99

Оглавление

 

Введение ........................................................................................................

3

Часть 1. Типы и структуры ПЛИС, маршрут проектирования.

 

Основы создания синтезируемых описаний

 

на Verilog HDL ..............................................................................

5

1.1. Основные типы и структуры ПЛИС......................................

5

1.2. Маршрут проектирования cистем на основе ПЛИС ............

9

1.3. Основы разработки синтезируемых описаний

 

на языке Verilog .....................................................................

12

1.4. Примеры синтезируемых Verilog-описаний.......................

23

1.5. Основы разработки несинтезируемых описаний

 

на языке Verilog .....................................................................

27

Часть 2. Интерфейс и основные настройки САПР Quartus II ..........

35

2.1. Навигация по проекту...........................................................

35

2.2. Компиляция проекта.............................................................

39

2.3. Отчет о результатах компиляции ........................................

40

2.4. Сообщения.............................................................................

42

2.5. Дополнительные инструменты разработки ........................

43

2.6. Моделирование проекта.......................................................

45

2.7. Редактор тестовых воздействий...........................................

46

2.8. Отчет о результатах моделирования ...................................

50

2.9. Редактор назначения выводов..............................................

52

2.10. Программирование ПЛИС .................................................

55

Часть 3. Лабораторный практикум........................................................

56

Лабораторная работа № 1. Разработка арифметико-

 

логического устройства........................................................

56

Лабораторная работа № 2. Разработка регистрового

 

арифметико-логического устройства..................................

67

Лабораторная работа № 3. Разработка вычислительного

 

устройства с микропрограммным управлением ................

76

Лабораторная работа № 4. Отладка проекта вычислительного

устройства с микропрограммным управлением

 

на учебном стенде.................................................................

88

Литература..................................................................................................

99

100