Листинг 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
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