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

Sb96713

.pdf
Скачиваний:
3
Добавлен:
13.02.2021
Размер:
901.25 Кб
Скачать

4.1. Реализация арифметической функции

Требуется реализовать арифметическую функцию двумя способами: табличным с использованием внутрикристальной блочной памяти и логическим в базисе библиотечных элементов и мегафункций САПР Quartus II.

Порядок выполнения работы:

1.Создать проект, используя команду File/New/Memory File/Memory Initialization File подготовить файл *.mif, содержимое которого соответствует значениям заданной функции (табл. 4.1) для трехразрядных аргументов, разрядность хранимых данных определяется видом реализуемой функции.

2.Подготовить исходный файл проекта, в который включить блок памяти, на адресные линии блока подать аргументы A и B, значения функции считывать из ячеек. Блок памяти необходимо инициализировать созданным файлом *.mif.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 4.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант

 

Функция

Вариант

 

Функция

Вариант

 

Функция

Вариант

 

Функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

A + B*A

3

 

A B * A

5

 

 

 

 

 

7

 

 

 

 

 

 

 

A B * A

 

A B * A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

4

 

 

 

6

 

 

 

 

 

8

 

 

 

 

 

 

 

A* B A

 

A B * A

 

A B * A

 

 

 

 

 

 

 

 

A B * A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.В этом же проекте реализовать заданную функцию с использованием библиотечных элементов, выполнить совместное моделирование устройств. Сравнить результаты работы схем на полном наборе входных данных, оценить временные характеристики преобразователей.

4.Добавить в проект элементы, обеспечивающие выдачу результатов на семисегментные индикаторы, выполнить имплементацию проекта, подключив входные сигналы к движковым переключателям, результаты работы наблюдать на светодиодных индикаторах.

4.2. Разработка устройства междоменной синхронизации

Устройство представляет собой буфер и работает по принципу FIFO. При обращении к нему по записи выполняется запись в первую свободную ячейку, при отсутствии свободных ячеек формируется сигнал «Буфер заполнен». Считывание выполняется из первой занятой ячейки с последующим сдвигом значений, содержащихся в буфере на одну позицию. Если все данные из буфера прочитаны, то вырабатывается сигнал «Буфер пуст». Тактирование обращений по чтению и записи осуществляется синхросигналами, отличающимися по частоте.

11

Варианты заданий

Вариант

Объем

Изменение

Тактиро-

Разрядность данных

Вариант

Объем

Изменение

Тактирова-

Разрядность данных

 

буфера,

адресов

вание

 

 

буфера,

адресов

ние чтения

 

 

чтения

 

 

 

 

слов

при записи

 

 

слов

при записи

/записи

 

 

/записи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

10

↓/↑

8

5

10

↓/↑

11

 

 

 

 

 

 

 

 

 

 

2

11

↓/↑

9

6

11

↓/↑

10

 

 

 

 

 

 

 

 

 

 

3

12

↑/↓

10

7

12

↑/↓

9

 

 

 

 

 

 

 

 

 

 

4

13

↑/↓

11

8

13

↑/↓

8

 

 

 

 

 

 

 

 

 

 

Содержание отчета

Отчет по частям 4.1 и 4.2 должен содержать следующую информацию: задание на работу; исходные файлы проектов; RTL-описание, оценки по затратам оборудования; результаты моделирования в виде временных диаграмм с комментариями; описание результатов макетирования по части 1; выводы по работе.

Лабораторная работа 5 ПРОЕКТИРОВАНИЕ ПРОЦЕССОРНОЙ СНК

НА БАЗЕ SOFT-ЯДРА

Цель работы состоит в освоении маршрута проектирования микропроцессорной системы с использованием открытого кода процессорного soft-ядра и получении навыков управления индикацией в статическом и динамическом режимах.

Краткие теоретические сведения

Процессорное soft-ядро – это набор файлов, определяющих конфигурирование некоторой области кристалла таким образом, что в ней создается процессор определенного типа [3]. Выделяют ядра с закрытым кодом, в которых нельзя изменять архитектуру и отдельные элементы, и ядра с открытым кодом, который можно корректировать самостоятельно и интегрировать в описание проектируемого устройства на языках HDL.

Включение процессорного ядра в проект на ПЛИС. Включение в про-

ект процессора рассмотрим на примере открытого ядра MC8051 IP Core Oregano System по системе команд совместимого с микроконтроллерами

12

8051. Это ядро имеет особенности: немультиплексируемые порты вводавывода, внутреннюю оперативную память – 256 байт, средства для работы с внешними ПЗУ и ОЗУ по 64 Кбайт, а также настраиваемое количество таймеров/счетчиков и блоков последовательного интерфейса. Имена и назначение внешних контактов модуля ядра приведены в таблице.

 

Имя контакта

 

Описание

 

 

 

 

 

clk

 

Тактовый сигнал

 

reset

 

Сброс

 

rom_data_i

 

Вход данных, считываемых из ПЗУ

 

ram_data_i

 

Вход данных для внутреннего ОЗУ

 

int0_i , int1_i

 

Входы внешних прерываний

 

all_t0_i , all_t1_i

 

Входы внешних таймеров/счетчиков

 

all_rxd_i

 

Вход последовательного порта

 

p0_i, p1_i, p2_i, p3_i

 

Входы портов Р0–Р3

 

p0_o,p1_o, p2_o, p3_o

 

Выходы портов Р0–Р3

 

rom_adr_o

 

Адрес ПЗУ

 

ram_data_o

 

Выход данных внутреннего ОЗУ

 

ram_adr_o

 

Адрес ОЗУ

 

ram_wr_o

 

Сигнал чтение (0) / запись (1)

 

ram_en_o

 

Сигнал выборки ОЗУ

 

datax_i

 

Вход данных внешнего ОЗУ

 

datax_o

 

Выход данных внешнего ОЗУ

 

adrx_o

 

Адрес внешнего ОЗУ

 

wrx_o

 

Разрешение записи внешнего ОЗУ

 

Микропроцессорное ядро представлено следующими исходными файлами:

декларации entity

entity-name_.vhd

архитектурные тела для модулей

с поведенческим описанием

entity-name_rtl.vhd

архитектурные тела для модулей

со структурным описанием

entity-name_struc.vhd

декларации конфигурации

entity-name_rtl_cfg.vhd

 

 

 

entity-name_struc_cfg.vhd

Для включения процессора в графический проект требуется добавить в проект исходные файлы vhdl описаний за исключением файлов конфигураций *_cfg.vhd и создать символьный файл для языкового описания процессора, содержащегося в файле mc8051_core.vhd.

Память программ реализуется на встроенном блоке памяти при помощи мегафункции параметризованной ROM – lpm_rom. Разрядность данных устанавливается равной 8 бит, а разрядность адреса определяется объемом про-

13

граммы, загружаемой в память. При настройке модуля памяти в нее загружается исполняемый файл программы в hex-формате.

Подключение памяти программ к микроконтроллеру осуществляется в соответствии с назначением линий, приведенном в таблице.

Разработка устройства индикации. В несложных системах контроля и управления для отображения информации обычно используются простейшие устройства индикации – светодиоды и цифровые или знаковые индикаторы.

Светодиодный индикатор состоит из набора расположенных в определенном порядке и конструктивно объединенных светодиодов. Включая определенные комбинации светодиодов, можно формировать изображения цифр и некоторых символов. Индикаторы различаются типом соединения светодиодов (общий анод, общий катод), количеством отображаемых разрядов (од- но-, двухразрядные и т. д.), цветом. При управлении несколькими индикаторами можно выделить два режима: статический и динамический.

Статическая организация индикации предполагает постоянное подключение каждого индикатора к собственному источнику информации. Выводимые на индикаторы коды однократно записываются в регистры и сохраняются до тех пор, пока не потребуется их изменение. Фрагмент текста программы, обеспечивающей такой вывод информации, приведен в листинге 5.1. Вызов этого программного блока осуществляется только тогда, когда необходимо изменить выводимую на индикаторы информацию.

Рассмотренная реализация потребует использования 8 бит для вывода данных на семисегментный индикатор (ССИ) и n линий для управления регистрами n индикаторов. Количество выводов процессора, задействованных для управления записью, может быть минимизировано применением дешифратора.

Листинг 5.1. Вывод информации на индикацию со статическим управлением

mov

p1,#0c0h

; данные в регистр первого индикатора

clr

p3.0

; формирование импульса на линии записи

setb

p3.0

 

mov

p1,#0f9h

; данные в регистр второго индикатора

clr

p3.1

; формирование импульса на линии записи

setb

p3.1

 

mov

p1,#0a4h

; данные в регистр третьего индикатора

clr

p3.2

; формирование импульса на линии записи

setb

p3.2

 

mov

p1,#0b0h

; данные в регистр четвертого индикатора

clr

p3.3

; формирование импульса на линии записи

setb

p3.3

 

14

Для организации динамической индикации могут применяться как отдельные одноразрядные индикаторы, так и многоразрядные блоки. С использованием динамического режима можно управлять и отдельными сегментами.

Вмногоразрядных индикаторах все одноименные сегменты соединены вместе и имеют один общий вывод. Управление свечением какой-либо цифры осуществляется через общий вывод (анод или катод). При реализации динамического режима работы индикации отображаемая информация поступает на входы, подключенные ко всем элементам сразу. При этом сигнал включения активизирует одно определенное знакоместо синхронно с подачей отображаемой информации.

Всхеме (рис. 5.1), реализующей динамический режим для четырех индикаторов, выводимые коды выставляются на линии P1_o, на выходах 1 и 0 порта P3_o фиксируется адрес индикатора, на который выводятся данные, а на выходе 2 порта P3_o формируется сигнал разрешения выдачи, активный уровень которого подключает выходы порта P1_o к выбранному индикатору.

Рис. 5.1. Схемная реализация блока динамической индикации

Мультиплексор dmux1_4, разработан отдельно с использованием языковых средств описания аппаратуры и обеспечивает коммутацию выводимого кода на один из четырех семисегментных индикаторов.

Фрагмент программы, обеспечивающий вывод данных на первые два ССИ приведенной схемы, представлен в листинге 5.2.

15

Листинг 5.2. Вывод информации на индикацию с динамическим управлением

mov

p1,#0c0h

; вывод данных на первый индикатор

mov

p3,#0fch

; код выбора первого индикатора 1111 1100

setb

p3.2

; формирование импульса включения

clr

p3.2

 

mov

p1,#0f9h

; вывод данных на второй индикатор

mov

p3,#0fdh

setb ; код выбора второго индикатора 1111 1101

 

p3.2

; формирование импульса включения

clr

p3.2

 

……

 

……

Чтобы учесть свойство глаза человека избежать мерцания индикации подключение индикаторов производится с частотой 30...50 Гц. При управлении отдельными сегментами потребуется увеличить частоту переключения в 7–8 раз, а для обеспечения нормального свечения индикаторов – увеличить в несколько раз ток, проходящий в импульсе через светодиодные сегменты.

Рассмотренный программный фрагмент должен запускаться через определенные промежутки времени для достижения частоты вывода информации, исключающей мерцание. Как правило, такие режимы реализуются с использованием прерываний от таймера микропроцессора.

Задание на работу

Разработать варианты микропроцессорной системы на кристалле, обеспечивающие вывод данных на семисегментные индикаторы в динамическом и статическом режимах. Способ представления элементов проекта (языковый, графический или смешанный) выбирается студентом самостоятельно. Проект строится по иерархическому принципу, в качестве базовых элементов должны использоваться типовые IP-блоки, в частности микроконтроллер; блоки, построенные на основе LPM-модулей, а также блоки, разработанные самостоятельно.

При разработке и исследовании микропроцессорной системы рекомендуется придерживаться следующей последовательности действий.

1.Спроектировать микропроцессорную систему управления индикацией, создать соответствующий проект, состоящий из ядра 8051 (выдается преподавателем), памяти программ, блока вывода данных на индикацию.

2.Выполнить моделирование проекта. Оценить аппаратные затраты на его реализацию.

3.Выполнить макетный эксперимент. При исследовании статической индикации наблюдать выводимые на индикатор значения. При исследовании

16

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

Содержание отчета

Отчет должен содержать следующую информацию: задание на работу; исходные файлы проектов; оценки по затратам оборудования; результаты моделирования в виде временных диаграмм с комментариями; описание результатов макетирования; выводы по работе.

Лабораторная работа 6 РАЗРАБОТКА ОПЕРАЦИОННОГО УСТРОЙСТВА

С ИСПОЛЬЗОВАНИЕМ СТОРОННЕЙ САПР HDL DESIGNER SERIES

Цель работы состоит в освоении маршрута проектирования операционных устройств (ОУ) с использованием сторонней САПР с переносом результатов проектирования в САПР Quartus II.

Краткие теоретические сведения

При модульном проектировании в качестве модулей могут использоваться элементы библиотеки имплементирующей САПР и блоки, созданные с применением сторонних САПР и переносимые в проект посредством типовых описаний, например на языках проектирования аппаратуры или на уровне RTL-описаний. Использование сторонних систем объясняется дополнительными возможностями, которые они предоставляют разработчику.

Рассмотрим маршрут проектирования операционного устройства с подготовкой отдельных блоков с использованием графических средств САПР

HDL Designer Series компании Mentor Graphics. Финальная компиляция и за-

грузка проекта выполняются с помощью САПР Quartus II.

Операционное устройство (рис. 6.1), реализующее подсчет количества единиц во входном n-разрядном коде, включает в себя мультиплексор выбора анализируемого бита 1, счетчик единиц 2, преобразователь двоичного кода в код семисегментного индикатора 3, индикатор 4, счетчик циклов 5, управляющий автомат 6.

17

Din[n..0]

 

 

 

 

 

 

 

D MUX

&

En

CT

Q

 

 

 

 

 

R

 

Conv

Ind

 

 

 

 

 

A

1

 

Clk

2

 

3

4

 

 

 

Start

 

 

 

 

 

 

 

 

En

CT

Q

Start

State

Enable

Ready

 

R

 

 

End

 

 

 

 

 

 

 

 

 

 

Ready

Buzy

R

Clk

5

OF

R

 

 

 

 

Clk

 

 

 

Clk

6

Buzy

 

 

 

 

 

 

 

 

Рис. 6.1. Функциональная схема операционного устройства

Устройство работает под управлением конечного автомата, временная диаграмма работы приведена на рис. 6.2, а. По сигналу R устройство переходит в начальное состояние S0, которое сохраняется до тех пор, пока не поступит сигнал Start, запускающий его работу. По этому сигналу автомат перейдет в состояние S1 и выработает сигнал занятости устройства Buzy. По спаду сигнала Start автомат перейдет в состояние S2, в котором будет выработан сигнал Enable, разрешающий работу других блоков устройства, реализующих анализ заданного количества бит входного кода Din.

Состояние S2 будет сохраняться до тех пор, пока счетчик бит не выработает сигнал End, переводящий автомат в состояние S3. В этом состоянии работа блоков устройства блокируется сбросом сигнала Enable, также сбрасывается сигнал Buzy и устанавливается сигнал Ready, указывающий на окончание работы ОУ. По следующему сигналу Clk автомат переходит в начальное состояние.

Используя предложенное описание работы и временную диаграмму (рис. 6.2, а), можно построить граф переходов автомата (рис. 6.2, б).

Генерация языкового описания автомата в САПР HDL Designer Series выполняется с использованием следующей последовательности действий:

1.Открыть пакет HDL Designer Series. Создать новый проект командой New Project, указав при этом имя и размещение проекта.

2.Создать файл графического описания автомата в редакторе State Diagram, воспользовавшись командой File/New/Graphical View/State Diagram.

18

 

 

 

 

 

Enable=0

 

Clk

 

 

 

 

Ready=0

 

R

 

 

 

 

Buzy=0

 

Start

 

 

 

 

S0

Start=1

State

S0 S1

S2

S3 S0

Enable=0

 

End

 

 

 

Ready=1

 

S1 Buzy=1

 

 

 

Buzy=0

 

Enable

 

 

 

 

 

 

 

 

 

 

 

 

 

S3

 

Ready

 

 

 

 

 

 

 

 

 

S2

 

Buzy

 

 

 

 

Start=0

 

 

 

 

 

End=1

 

 

 

 

 

 

Enable=1

 

 

а

 

 

б

 

Рис. 6.2. Описание работы автомата:

а– временная диаграмма работы; б – граф переходов и выходов

3.Ввести состояния и дуги переходов командами меню Add/State и Add/ Transition соответственно, задать их свойства. Свойства задаются непосредственно в текстовых полях элементов графа, командами контекстного меню или в окне Object Properties, вызваемом двойным щелчком на соответствующем объекте. Сигналы clk и reset добавляются с использованием средств на панели пиктограмм или через пункты меню Add/Reset и Add/Clock. Файл сохраняется командой File/Save, указанное при этом имя является именем созданного элемента, который сразу помещается в библиотеку.

4.Создать интерфейс элемента, воспользовавшись редактором Inerface,

запускаемым командой File/New/Graphical View/Inerface. В редакторе

Inerface необходимо указать имена и типы входных и выходных сигналов, воспользовавшись для этого, например, табличным способом на закладке Inerface. Сохранить файл интерфейса с тем же именем, что и имя графа.

5.Вернуться к редактору State Diagram, задать свойства автомата, вос-

пользовавшись командой Diagram/State Machine Properties.

6.Выполнить операцию Generate. Результаты действий проконтролировать в Log окне. При успешной компиляции будет создан соответствующий VHDL файл, помещенный в папку hdl, созданную в рабочей библиотеке.

Генерация языкового описания преобразователя двоичного кода в код семисегментного индикатора (ССИ) выполняется средствами редактора Truth Table выполнением следующих действий.

1.Создать новый файл, воспользовавшись командой File/New/Graphical View/Truth Table.

2.Скорректировать таблицу в соответствии с необходимым количеством строк и столбцов и ввести значения входных a и выходных b сигналов. Пример заполнения таблицы приведен на рис. 6.3.

19

Рис. 6.3. Фрагмент таблицы преобразователя Conv

3.Сохранить файл, указав имя, под которым созданный элемент появится в библиотеке. Подготовить описание интерфейса аналогично тому, как это делалось при создании элемента с использованием редактора State Diagram.

4.Выполнить операцию Generate. При успешной компиляции будет создан соответ-

ствующий VHDL-файл, описывающий работу преобразователя.

На этом работа в HDL Designer Series может быть завершена, сгенерированные файлы описания устройств используются при сборке основного проекта в имплементирующей САПР.

Задание на работу

Разработать устройство, которое за n + 1 такт выполняет анализ входного кода. Работа устройства запускается сигналом Start, результат анализа представляется двоичном числом, которое преобразуется в код ССИ и в шестнадцатеричной форме выводится на индикаторы. Сигналы управления Start и R формируются кнопками учебного стенда, а входной код – переключателями. Результат отображается на семисегментном индикаторе, выходные сигналы Ready и Buzy выводятся на светоизлучающие диоды.

Для выполнения задания следует проделать следующее:

1.Разработать схему ОУ, подготовить описание блоков, входящих в его состав. Управляющий автомат и конвертер двоичного кода в код ССИ разрабатываются средствами САПР HDL Designer Series. При генерации автомата необходимо реализовать альтернативные варианты, отличающиеся количеством процессов в результирующем файле. Сравнить результаты генерации. Остальные блоки ОУ могут быть созданы инструментами Quartus II, в качестве альтернативы можно использовать библиотечные элементы.

2.Создать проект в САПР Quartus II, включив в него файлы с описанием блоков, подготовить описание проекта верхнего уровня.

3.Выполнить моделирование проекта; проанализировать RTL-описание; определить временные характеристики проекта.

4.Провести имплементацию проекта в учебную плату, наблюдать его работу.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]