Методические указания для практических занятий по дисциплине мдк. 02. 01
Скачать 7.37 Mb.
|
Варианты заданий В табл.27.2 приведены варианты заданий, где даны обозначения: в записи логической функции: & – логическое “И”, v – логическое “ИЛИ”, ^ – отрицание; уровня сигнала: L – низкий, H – высокий. Таблица 27.2 Номер варианта Логическая функция Уровни сигналов управления разрешение подтверждение 1 X&(^Yv^Z) L L 2 ^X&(Yv^Z) L H 3 X&Yv^Z H L 4 ^XvY&Z H H 5 ^(^X&^YvZ) L L 6 ^X&(^YvZ) L H 7 ^X&(YvZ) H L 8 ^(^X&(YvZ)) H H 9 ^(XvY&^Z) L L 10 ^X&^YvZ L H 11 ^X&Yv^Z H L 12 ^X&^Yv^Z H H 13 ^Xv^Y&Z L L 14 ^XvY&^Z L H 15 Xv^Y&^Z H L 16 ^(Xv^Y&^Z) H H 17 ^X&(^Yv^Z) L L 18 ^(^X&(YvZ)) L H 19 ^Xv^Y&^Z H L 20 X&^YvZ H H 21 X&^Yv^Z L L 22 ^X&YvZ L H 23 ^XvY&Z H L 24 ^(^XvY&Z) H H 25 XvY&^Z L L 146 Номер варианта Логическая функция Уровни сигналов управления разрешение подтверждение 26 X&(^YvZ) L H 27 ^(X&(YvZ)) H L 28 ^(X&Yv^Z) H H 29 ^(X&YvX&^Z) H H Примечание. Функция должна иметь программную реализацию согласно виду, представленному в таблице вариантов, без каких-либо предварительных преобразований. Следует помнить, что при отсутствии скобок приоритет имеет операция логического умножения. Практическая работа №28. Тестирование и отладка микропроцессорных систем при работе с МП. Цель: изучение микропроцессорной системы для тестирования АЛУ. Практическая работа предполагает создание на основе универсального лабораторного стенда микропроцессорной системы, выполняющей тестирование АЛУ из состава процессора тестирование АЛУ, модель которого написана на языке VHDL. МК в составе МПС должен формировать в определённом порядке операнды для операции умножения и короткой операции, подавать их на АЛУ, выдавать сигнал начала операции и после её окончания считывать результат операции, записывая его во внешнюю память или выдавая на индикацию. Тестирование выполняется для каждой операции отдельно. Перед тестированием необходимо составить программу, которая определяет результаты операций, заданных заданием на проектирование процессора, для всех возможных сочетаний операндов. Следует вспомнить, для каких чисел (дробных или целых) выполняются операции и в каком коде числа представлены. Программа должна формировать текстовый файл, содержащий значения операндов, результатов и признаков (если их формирование предусмотрено) для каждой операции. Распечатка предоставляется для просмотра преподавателю и будет служить для проверки результатов тестирования. Программа должна также позволять формировать тестовый файл (со значениями операндов, заданных вариантом) для записи его во внешнюю память МК, если это требуется вариантом задания. Порядок выполнения практикума может быть следующим. Определяется состав схем, размещаемых в ПЛИС, состав регистров и индикаторов, а также состав средств МПС, встроенных в УЛС и используемых для ввода или индикации данных. Параллельно должна быть определена структура программного обеспечения МПС, составлены алгоритмы работы программ МК. Составляются и отлаживаются программы в среде Keil PK51 – Eval. Затем следует в системе Xilinx составить проект, включающий в себя АЛУ со схемами подключения к элементам УЛС и МК. Необходимо взять проект всего разработанного ранее процессора, сохранить его под другим именем, удалить из него всё, кроме АЛУ, и на новом листе создать схему подключения. После тестирования схемного АЛУ оно из проекта удаляется и на его место вставляется схема АЛУ, описанная на языке VHDL. Пример подготовки к выполнению практической работы Схемы подключения АЛУ к элементам стенда зависят от варианта задания. Общим в них является то, что обмен с МК может выполняться только через порт Р4 и через системную шину. Выходы порта Р4 соединяются с контактами ПЛИС, причем с теми же контактами, через которые могут выводиться сигналы на индикаторы А и В. 147 В качестве примера рассмотрим вариант тестирования некоторого АЛУ. Над целыми числами в обратном коде АЛУ выполняет операцию умножения (результат – 8-разрядный) и операцию сложения с формированием признаков: 0 – сумма равна нулю, 1 – сумма меньше нуля, 2 – сумма больше нуля, 3 – переполнение. На ПЛИС размещается схема АЛУ, имеющая внешние входы операндов А и В, вход кода операции (KOP), вход сигнала начала операции (SNO), тактовый вход и вход начальной установки (RESET). Выходами АЛУ кроме результата операции и признаков выполнения операции сложения является также сигнал конца операции (SKO). Порт Р4 используем только для ввода-вывода битовых сигналов. Система будет иметь два режима работы: режим тестирования по периодическому анализу сигнала готовности (запуска) и режим автоматического тестирования. МК должен выдавать на ПЛИС (АЛУ) сигнал SN0, реагировать на сигнал готовности и на сигнал SKO. Особенность создаваемой системы состоит в том, что и схема на ПЛИС, и сам МК – синхронные схемы, работающие от тактового сигнала. Хотя на УЛС обе части системы работают от одного генератора, но в ПЛИС длительность такта равна одному периоду сигнала С с генератора, а в МК частота генератора делится на 12 и длительность такта там равна 12 периодам сигнала С. Сигнал SNO формируется, естественно, в МК битовыми командами setb и clr, и длительность его не может быть меньше одного такта синхронизации МК. А для АЛУ этот сигнал должен по длительности равняться одному такту С и быть активным в момент переднего фронта сигнала С. Для привязки сигнала SNO к таковым сигналам используется готовая схема, показанная на рис. 28.1. При поступлении входного («длинного») сигнала SNOIN (Р4х) от МК триггер Т1, работающий как Т-триггер, по заднему фронту С два раза изменяет свое состояние, формируя на своём выходе сигнал SNO длительностью в 1 такт. Триггер Т2 устанавливается в «1» при наличии этого сигнала в момент заднего фронта С и далее запрещает прохождение входного сигнала через элемент D1 на триггер Т1. Возврат схемы в исходное состояние можно было бы осуществлять сигналом SKO через элемент D3. Однако АЛУ может выработать этот сигнал раньше, чем закончится входной сигнал, или же сигнал SKO на каком-то наборе операндов может не выработаться. Поэтому для сброса схемы следует формировать сигнал в микроконтроллере и выдавать его на ПЛИС через контакт порта Р4. Для сброса можно было использовать и сигнал чтения результата АЛУ. Рис. 28.1. Схема привязки сигнала SNO к тактовым сигналам Результат моделирования схемы приведен на рис. 2.2. 148 Рис. 28.2. Результаты моделирования схемы привязки сигнала SNO Схема привязки сигнала SNO может быть оформлена как подсхема и включена в проект. Чтение результата выполнения операции в АЛУ микроконтроллером по шине должно выполняться после окончания работы АЛУ, т.е. после приёма сигнала SKO. Опрашивать его как сигнал готовности на контакте порта Р4 микроконтроллер не может, так как он не успеет определить момент равенства сигнала «1» или же определить переход «0/1», а затем «1/0» вследствие малой длительности (1 такт) сигнала SKO. Использовать сигнал SKO как сигнал запроса прерывания (при запуске по срезу сигнала) тоже невозможно, так как у сигнала запроса прерывания длительность состояний «1» и «0» должна быть более 1 такта МК (12 периодов С). Можно воспользоваться тем, что длительность выполнения операций в АЛУ не превышает 20 тактов для любой операции и любых операндов. Поэтому можно сделать программную задержку на 2-3 такта работы микроконтроллера и потом считывать уже готовый результат. Ясно, что эта задержка может быть и большей. Если необходимо использовать сигнал готовности (запуска), то к нему сказанное выше тоже применимо. Для реализации этого режима нужно каким-то сигналом (импульсом) устанавливать в «1» триггер готовности, который сбрасываться в «0» будет микроконтроллером. Запуск-установку триггера в «1» проще всего выполнить сигналом с генератора, который работает в одиночном режиме – CLR. Назначение разрядов порта Р4 для рассматриваемого варианта показано в табл. 2.1. Таблица 28.1 Назначение разрядов порта Р4 Разряд P4.i Назначение Индикация 0 1 Режим 1 A0 1 1 Режим 2 A1 2 0 – A2 3 1 Сброс готовности A3 4 0 Сброс SNO B0 5 1 Готовность B1 6 0 Окончание B2 7 0 SNOIN B3 Сигнал «Окончание» может быть использован при необходимости для индикации окончания выполнения микроконтроллером одного или заданного количества тестов. Значение сигнала «Режим 1», равное «1», соответствует режиму периодического анализа сигнала готовности, значение сигнала, равное «0», – автоматическому режиму. Сигнал «Режим 2» – резервный. 149 Не следует точно копировать это распределение сигналов между разрядами порта Р4. Некоторые из сигналов могут не понадобиться, некоторые придется ввести дополнительно. За исключением порта Р4 внешние устройства, входящие в состав УЛС, и дополнительные (требуемые вариантом задания) внешние устройства размещаются в адресном пространстве внешней памяти МК. Такие внешние устройства называются «отображёнными на память». Для внешних устройств, входящих в состав УЛС и подключённых к шине, в адресном пространстве выделен ряд отдельных адресов, а для дополнительных внешних устройств, размещаемых на ПЛИС, отведено всего два адреса – 7FFAh и 7FFBh. На ПЛИС выведены только сигналы дешифрации этих адресов – Х7FFA (контакт P70) и Х7FFB (контакт P68) и сигналы записи или чтения по этим адресам – MKWR (контакт P69) и MKRD (контакт P67). Все эти сигналы имеют нулевые активные уровни. Данные между системной шиной и ПЛИС передаются через восемь внешних контактов (табл. 28.2). Таблица 28.2 Соответствие разрядов системной шины контактам ПЛИС Контакты шины Контакты ПЛИС 0 84 1 83 2 79 3 81 4 78 5 77 6 72 7 80 Схема части проекта (без АЛУ), реализованная на ПЛИС, показана на рис. 28.3. Для выбранного варианта средств МПС, встроенных в УЛС (клавиатуры, семисегментных индикаторов и дисплея на жидкокристаллических индикаторах – ЖКИ), не требуется. В качестве внешних устройств – приемников данных в ПЛИС необходимы два 4-разрядных буферных регистра RG1 и RG2 на входах А и В АЛУ. Они необходимы, так как данные на шине не хранятся. Запись кодов операндов в них может производиться одновременно 8-разрядным словом при обращении по адресу 7FFAh. Так как в тестируемом АЛУ у операндов разряд с индексом 0 – знаковый, то при подключении регистров к шинам А и В разряды приходится менять местами. В качестве внешнего устройства-источника возьмём только регистр результата без признаков. Чтение результата выполняется по адресу 7FFB. 150 Рис .28.3. Схема подключения АЛУ к МК Для подключения регистра результата к шине использованы буферные элементы с «третьим» состоянием выхода – OBUFE. Так как обмен данными по шине осуществляется в двух направлениях (от ПЛИС у МК и от МК к ПЛИС), используются двунаправленные входы-выходы – IOPAD. В этом примере индикация операндов А и В выполняется на индикаторах E и F, результата – на индикаторах C и D. Индикатор окончания тестирования не нужен, так как этот сигнал выдаётся через контакт Р4.6 и будет виден в разряде 1 индикатора В. Далее дан пример программы тестирования АЛУ. Программа работает с внешней памятью, в которой записаны (в режиме редактирования внешней памяти данных или переписаны из файла) наборы операндов и заранее вычисленные результаты. Количество таких наборов – N. Величина N задается в программе. В одиночном режиме («Режим 1» = 1) по сигналу готовности микроконтроллер читает пару операндов из памяти, подает их на АЛУ и результат записывает в ячейку памяти, соседнюю с ранее вычисленным результатом. Далее величина N уменьшается на 1 и МК вновь ожидает сигнала готовности. После перебора всех N наборов зажигается индикатор «Окончание», и программа зацикливается на одной команде. В автоматическом режиме сигнал готовности опрашивается микроконтроллером только один раз. Далее после записи результата в память МК сразу переходит к чтению новой пары операндов. Пример загрузки памяти (для Nmax= 12) для операции умножения приведен в табл. 28.3. Для каждого набора в первой ячейке памяти указаны значения операндов А и В, во второй – результат операции умножения, в следующей – результат второй операции. Значком «*» в таблице отмечены ячейки, в которые записывается результат той или иной операции. Таблица 28.3 Таблица загрузки внешней памяти 151 Адрес 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 8000h 22 04 04 * 24 08 06 * 66 24 OC * 77 21 0E * 8010h 25 0F 07 * 62 0C 08 * 54 14 09 * 65 1E 0B * 8020h DD 04 FB * DB 08 F9 * 99 24 F3 * 88 31 F1 * Четвертый набор – 7х7 имеет результатом 31h, в памяти записан ошибочный результат. В последних четырех наборах записаны те же операнды, что и в первых четырёх наборах, но с другим знаком (в рассматриваемом варианте АЛУ числа представляются в обратном коде). Блок-схема программы показана на рис. 28.4, текст программы – на рис. 28.5. Рис. 28.4. Блок-схема программы 152 Рис. 2.5. Текст программы для тестирования АЛУ Практическая работа №29. Тестирование и отладка микропроцессорных систем при разработке программного обеспечения. Цель: изучение микропроцессорной системы для тестирования АЛУ. Рекомендации по подключению внешних устройств к системной шине и порту р4 микроконтроллера Варианты подключения внешних устройств через системную шину В МПС на основе УЛС все составные части системы подключаются к внешней системной шине. Шина представляет собой набор отдельных линий данных, адресов и сигналов управления. Оказывается, что шину в УЛС системной назвать нельзя, нельзя её называть и шиной данных. При ограниченном количестве задействованных контактов ПЛИС для подключения внешних устройств или средств визуализации используется ограниченный набор сигналов внешней системной шины: восемь разрядов шины данных DMK [7 0], стробы чтения и записи MKRD и MKWR соответственно и два адресных 7FFAh и 7FFBh, формируемых селектором адреса. Четыре последних сигнала – входные. Трехстабильная шина данных – это просто выходы порта Р0 МК, где при выполнении программы или при обмене данными в режиме разделения времени выдаются младшие разряды адреса памяти (старшие в это время передаются через порт Р2), а потом и байт данных. Подключение схем на ПЛИС ко всем этим сигналам осуществляется через контакты ПЛИС, а собственно к контактам подключение осуществляется через IO Buffers – стандартные буферные элементы IBUF, OBUF, OBUFE, OBUFT. Если просто нужно вывести из ПЛИС сигнал, не подключаемый к трёхстабильной шине данных, или ввести в ПЛИС какой-то сигнал с внешнего контакта, то на логической схеме это делается просто с помощью входных и выходных буферов IBUF, OBUF (так же, как это делается 153 при подключении схемы в ПЛИС к порту Р4 МК). Именно так подключаются стробы чтения и записи MKRD и MKWR и два адресных сигнала 7FFAh и 7FFBh. Для трехстабильной двунаправленной шины данных всегда применяются контакты IOPAD. Подключение к внешней шине через контакты ПЛИС одного источника данных обычно никаких затруднений не вызывает. Для этого используются имеющиеся в библиотеке ПЛИС буферные элементы OBUFE с активным «высоким» состоянием разрешающего сигнала, как показано на рис. 28.3, или буферные элементы OBUFTс активным «низким» состоянием разрешающего сигнала. Более сложная задача – подключение к выходным контактам нескольких внешних устройств – источников данных. Первый вариант решения – использование нескольких буферных элементов OBUFE или OBUFT, объединённых у контакта. Для ПЛИС такой вариант непригоден. Один источник подключается к контакту ПЛИС через элементы OBUFE, OBUFT. На схеме проекта эти элементы должны быть представлены, но при загрузке на кристалл они берутся из блока ввода-вывода, придаваемому каждому выводу корпуса ПЛИС. Аналогично элементы берутся из состава блока и в случае использования буферов IBUF, OBUF – минуя блок ввода- вывода выйти за пределы ПЛИС невозможно. Блок ввода-вывода может быть конфигурирован как вход, выход или двунаправленный вывод. На рис. 29.1 показана структура блока ввода-вывода для контакта LOC=P80 (реализация в ПЛИС фрагмента схемы на рис. 29.2). Ни рис. 29.2 пунктиром отмечено, какие элементы и цепи из состава блока были использованы системой для реализации. Рис. 29.1. Структура блока ввода-вывода в ПЛИС УЛС Рис. 29.2. Фрагмент схемы подключения к шине В каждом блоке ввода-вывода может находиться только один выходной и только один входной буферные элементы. К единственному выходному буферному элементу несколько источников могут подключаться по-разному. В ПЛИС необходимо организовать внутреннюю шину данных и подключить её к внешней шине. Можно использовать для этого из библиотеки элементов ПЛИС Tri-States – элементы с тристабильными выходами(BUFE, BUFT). Эти элементы находятся рядом с каждым конфигурируемым логическим блоком и вне него. Они через транзисторы-перемычки могут подключаться к общим шинам, проходящим вдоль всего кристалла. 154 Для подключения к шине, находящейся внутри ПЛИС, проще использовать мультиплексоры. Это позволяет избежать конфликтов и обеспечить более высокое быстродействие. Несмотря на это, в ПЛИС фирмы Xilinx всё-таки широко применяются шины с тремя состояниями, хотя это существенно повышает их себестоимость. Зато, во-первых, проще выполнить переход от проекта схемы на плате к проекту системы на кристалле. Во-вторых, устройство с общими шинами, к которым подключено несколько десятков источников, имеет аппаратные затраты в несколько раз меньше, чем такое же устройство, в котором шины заменены на эквивалентную схему из мультиплексоров. В любом случае в практикуме необходимо делать выбор между реализацией на мультиплексорах или на буферных трёхстабильных элементах и решать вопрос с выбором источника управления буферными элементами или управления мультиплексором с учетом того, что МПС представляет для внешних устройств на ПЛИС ограниченное количество доступных адресов. Рассмотрим различные схемные решения подключения к внешней шине двух и четырёх источников данных. |