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

 

261

копировать из программы в программу

при помощи текстового редактора, в

котором Вы пишете программы. Однако это может привести к некоторым неудобствам. Прежде всего, разрастается исходный текст программы, и в нем становится трудно ориентироваться при написании и редактировании программы. Кроме того, при обнаружении ошибок в отлаженном ранее участке кода или при переходе к работе с другими устройствами приходится искать включенные ранее участки кода и заменять их новыми.

Это трудоемкая работа, которая приводит к ошибкам и, в конечном счeте, замедляет написание и отладку программ. Намного удобнее использовать хранить исходную программу в нескольких файлах, предоставляя работу по соединению этих файлов в единую программу транслятору.

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

INCLUDE.

При использовании этой директивы в исходный текст программы добавляется содержимое включаемого файла и только после этого производится трансляция исходного текста программы в объектный или исполняемый код программы. Иными словами содержимое исходного файла программы и включаемого файла объединяются препроцессором во временном файле и только после этого производится трансляция полученного временного файла. Пример использования директивы INCLUDE на языке программирования ASM-51:

$include (stdio.asm) ;Файл стандартного ввода-вывода

$include (reg51.inc) ;Файл описания регистров специальных функций микроконтроллера

... ;Остальная часть программы

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

262

несколькими программистами, которым намного легче работать со своей программой, оформленной в виде отдельного файла.

3.3.12. Отладка программ.

После того, как программные модули были успешно оттранслированы, размещены по конкретным адресам и связаны между собой, для отладки программы можно воспользоваться любым из следующих методов:

внутрисхемным эмулятором

встроенным программным отладчиком

внешним программным отладчиком

отлаживаемым устройством с записанным в память программ двоичным кодом программы

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

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

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

 

263

Сигналы, которые должна подавать на

микроконтроллер аппаратура задаются

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

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

При написании достаточно простых программ иногда для отладки программ используют только этот последний этап тестирования. Однако обнаружение, поиск и устранение ошибок при использовании только этого метода очень трудоемок! Это то же самое, что пытаться настроить аппаратуру без использования приборов!

3.3.13. Способы отладки программ.

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

 

264

неправильным пониманием работы

аппаратуры, подключенной к портам

микроконтроллера.

 

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

Для отладки программ обычно применяют три способа:

1.Пошаговая отладка программ с заходом в подпрограммы;

2.Пошаговая отладка программ с выполнением подпрограммы как одного оператора;

3.Выполнение программы до точки останова.

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

Если в программе имеются уже отлаженные подпрограммы, то подпрограмму можно рассматривать, как один оператор программы и воспользоваться вторым способом отладки программ.

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

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

265

4. Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы

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

Стандартные БИС/СБИС лидируют по уровню интеграции, т. к. высокая стоимость проектирования оптимизированных по плотности кристаллов, достигающая сотен миллионов доларов, оказывается в данном случае приемлемой, поскольку такие микросхемы выпускаются массово.

Нестандартные схемы используются для управления блоками системы, обеспечения сопряжения и т. п., где требуется высокое быстродействие. Реализация нестандартной части систем исторически была связана с использованием микросхем малого и среднего уровней интеграции. При этом резко увеличиваются габариты устройства, усложняется монтаж, снижается надежность и повышается стоимость. В то же время проектирование и изготовление заказных БИС/СИС связано с большими экономическими и временными затратами.

Возникшие проблемы привели к появлению БИС/СБИС с программируемой и ре программируемой структурой.

Первыми представителями указанного направления явились программируемые логические матрицы ПЛМ (Programmable Logic Array PLA), программируемая матричная логика ПМЛ (Programmable Array Logic PAL) и базовые матричные кристаллы БМК, называемые также вентильными матрицами ВМ (Gate Array GA). Микросхемы PLA и PAL за рубежом объединяются термином SPLD (Simple Programmable Logic Devices) или PLD(Programmable Logic Devices).

Появление ПЛМ, ПМЛ, и БМК ознаменовало собою начало важнейшего направления развития цифровой элементной базы. Разработка БИС/СБИС с программируемой и репрограмируемой структурой оказалась чрезвычайно перспективным направлением и привела к созданию нового типа цифровых микросхем, таких как CPLD (Complex

266

Programmable Logic Devices), FPGA (Field Programmable Gate Array), SOPC (System On Programmable Chip).

4.1. Программируемые логические матрицы и программируема матричная логика

Программируемые логические матрицы появились в середине 70-х годов прошлого века. Их основой служат последовательно включенные программируемые матрицы элементов И и ИЛИ (рис. 4.1.). В ПЛМ входят также блоки входных и выходных буферных каскадов.

Рис. 4.1. Базовая структура ПЛМ

Основными параметрами ПЛМ является число входов m, число термов L, и число выходов n.

Схема ПЛМ на вентильном уровне показана на рис. 2. Программируемые точки связей (ПТС) на рисунке обозначены «х».

Рис.4.2 Схема ПЛМ на вентильном уровне

Как следует из рис. 4.2, ПЛМ реализует дизъюнктивную нормальную форму воспроизводимых функций. Какие именно термы будут выработаны, и какие

 

267

комбинации этих термов составят

выходные функции, определяется

программированием ПЛМ.

 

Выпускаются ПЛМ как на основе биполярной, так и МОПтехнологии. ПТС реализуются на основе пережигаемых перемычек. В последнее время все чаще ПТС реализуются на МОП транзисторах с плавающим затвором, т. е. ПЛМ получается электрически перепрограммируемой.

Во многих случаях, например, при реализации большинства типичных для практики переключательных функций ПЛМ обладает излишней «логической мощностью», поэтому используют более простую логическую структуру, называемую программируемой матрицей логики (ПМЛ), которая представлена на рис. 3.

Рис. 4.3. Структура ПМЛ

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

За рубежом ПМЛ получили широкое распространение. Примером может служить микросхема PAL 22V10. У этой микросхемы 10 выходов, различающихся числом подключенных к ним конъюкторов. Причем разные выходы имеют от 8 до16 конъюнкторов. Выходные функции вырабатываются не просто дизъюнкторами, а более сложными схемами, называемыми макроэлементами (макроячейками).

 

268

Схема каждого микроэлемента

содержит D-триггер. Програми сование

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

4.3. Базовые матричные кристаллы

Первые образцы базовых матричных кристаллов (БМК) появились в 1975 г. как средство реализации нестандартных схем высокопроизводительной ЭВМ без применения микросхем малого и среднего уровней интеграции. Разработка БМК позволила выполнить и нетиповые части машины на БИС.

Стоимость проектирования БИС/СБИС велика и достигает десятков или даже сотен миллионов долларов. Поэтому производство таких микросхем становится рентабельным только при достаточно большом объеме их потребления. Хорошее решение было найдено на путях разработки БИС, функционирование которых может быть приспособлено к решению той или иной задачи на заключительных этапах их изготовления. При этом полуфабрикаты производятся массово без ориентации на конкретного заказчика. Такие БИС/СБИС называются полузаказными.

Основа БМК первого поколения – совокупность регулярно расположенных на кристалле базовых ячеек (БЯ), между которыми имеются свободные зоны для создания соединений – каналы. Такая архитектура называется канальной. Базовые ячейки занимают внутреннюю область БМК, в которой они расположены по строкам и столбцам, и содержат группы нескоммутированных схемных компонентов (транзисторов, резисторов и т. п.). В периферийной области кристалла размещены ячейки ввода/вывода, набор схемных компонентов которых ориентирован на реализацию связей БМК с внешними цепями.

Таким образом, БМК является заготовкой, которая преобразуется в требуемую схему путем выполнения необходимых соединений.

Первые БМК (фирмы Amdahl Corp., США) выполнялись посхемотехнике ЭСЛ, для которо полный процесс изготовления включал 13 операций с фотошаблонами. Соответственно сроки и стоимость проектирования получались в 3-5 раз меньше, чем для полностью заказных БИС/СБИС. Плата за сокращение – не оптимальность результата, т. к. часть их элементов оказывается избыточной, взаимное расположение элементов и их соединения не являются оптимальными.

269

Промышленное производство БМК широко развернулось с начала 80-х годов прошлого века. Применяются технологии КМОП, ТТЛШ, ЭСЛ и др. В настоящее время уровень интеграции БМК достиг десятков миллионов вентилей на кристалле.

При проектировании БМК стремятся наилучшим образом сбалансировать число базовых ячеек, трассировочные ресурсы кристалла и число контактных площадок для подключения внешних выводов. Для современных БМК может потребоваться до 500…1000 внешних выводов.

При описании БМК существуют следующие основные понятия и определения:

-базовая ячейка (БЯ) как некоторый набор схемных компонентов, регулярно повторяющийся на определенной площади кристалла. Базовые ячейки внутренней области БМК именуются матричными базовыми ячейками (МБЯ), ячейки периферийной зоны – периферийными базовыми ячейками (ПБЯ). Применяются два способа организации ячеек БМК:

1) из компонентов МБЯ может быть сформирован один логический элемент, а для реализации более сложных функций используется несколько ячеек;

2) из компонентов МБЯ может быть сформирован любой функциональный узел,

асостав компонентов ячейки определяется схемой самого сложного узла.

-функциональная ячейка (ФЯ) – функционально законченная схема, реализуемая путем соединения компонентов в пределах одной или нескольких БЯ.

-библиотека ФЯ – совокупность ФЯ, используемых при проектировании схемы на основе БМК (МАБИС).

Параметры БМК можно разделить на четыре группы:

-функциональные возможности (число эквивалентных вентилей, тип БЯ, число МБЯ и ПБЯ, состав библиотеки ФЯ и т. п.);

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

-конструктивно-технологические (тип корпуса, число выводов, число уровней металлизации, площадь кристалла и др.)

-эксплуатационные характеристики.

В мире изготавливаются БМК с десятками миллионов эквивалентных вентилей, обладающих задержками не более 0,1…0,2 нс.

 

270

Изготовление БМК можно разделить на

следующие семь укрупненных этапов:

-исходное описание проекта;

-формирование базы данных и карты заказа;

-моделирование и верификация;

-предварительный просмотр проекта;

-проектирование топологии и верификация;

-окончательный просмотр проекта;

-изготовление опытных образцов.

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

Verilog Hardware Description Languages (VHDL).

Среди СБИС БМК в настоящее время наиболее распространены микросхемы программируемой логики, выпускаемые фирмами Xilinx, Altera, Actel.

4.4. БИС/СБИС с программируемыми структурами (CPLD, FPGA, смешанные структуры)

Микросхемы ПМЛ и БМК положили начало двум основным ветвям дальнейшего развития логических схем с программируемими структурами. Продолжением линии ПМЛ стали БИС/СБИС сложных программируемых логических устройств CPLD, а продолжением линии БМК – программируемые пользователем вентильные матрицы FPGA. Стремление объединить достоинства обеих линий привело к созданию БИС/СБИС смешанной архитектуры, для которых не выработано общепринятое название (фирма Altera, первой выпустившая такие схемы, назвала их FLEX (Flexible Logic Element Matrix). Сложность таких микросхем соответствует целым системам. В разработке интегральных схем с программируемой структурой (ИСПС) в настоящее время участвуют десятки фирм, ведущими среди них являются Xilinx, Altera, Acctel, Atmel, Lattic Semiconductor.

Сфера применения ПЛИС чрезвычайно широка, на них могут строиться не только отдельные блоки систем, но и системы в целом, включая процессоры и память. Классификация ПЛИС по типу программируемых элементов представлена на рис. 4.4.

Соседние файлы в папке Алаев А.Н