Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

LabVIEW FPGA. Реконфигурируемые измерительные и управляющие системы

Покупка
Артикул: 616041.01.99
К покупке доступен более свежий выпуск Перейти
В книге представлено описание нового модуля графической среды проектирования LabVIEW. С помощью этого модуля, расширяющего концепцию виртуальных инструментов в область разработки аппаратных средств, можно создавать собственные каналы ввода-вывода и устройства обработки данных, функциональность и характеристики которых определяются не на заводе изготовителе, а инженером-разработчиком прикладных систем автоматизации экспериментальных исследований, испытаний и управления. Рассмотрены архитектурные особенности реконфигурируемых систем, изложен порядок и основные приемы их проектирования, приведены описания и характеристики технических компонентов, а также некоторые примеры практической реализации технологии реконфигурированного ввода-вывода. Издание предназначено для специалистов в области разработки информационно-измерительных и управляющих систем, может использоваться в процессе обучения студентов соответствующих специальностей.
Баран, Е. Д. LabVIEW FPGA. Реконфигурируемые измерительные и управляющие системы [Электронный ресурс] / Е. Д. Баран. - Москва : ДМК Пресс, 2009. - 448 с. - ISBN 978-5-94074-494-8. - Текст : электронный. - URL: https://znanium.com/catalog/product/408061 (дата обращения: 29.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
LabVIEW FPGA.

Реконфигурируемые

измерительные и

управляющие системы

Москва

Е. Д. Баран

УДК 621.38
ББК 32.973.26108.2

Б24

Баран Е. Д.

Б24
LabVIEW FPGA. Реконфигурируемые измерительные и управляющие
системы. – М.: ДМК Пресс. – 448 с.

ISBN 9785940744948

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

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

УДК 621.38
ББК 32.973.26108.2

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой

бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

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

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

© Баран Е. Д.

ISBN 9785940744948
© Оформление, ДМК Пресс

СОДЕРЖАНИЕ

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

 1

Программируемые логические интегральные схемы ........................15

1.1. Простые программируемые логические устройства – SPLD.....16

1.2. Технологии программирования ПЛИС ........................................21

1.3. Сложные программируемые логические устройства – CPLD .... 25

1.4. Оперативно программируемые логические матрицы – FPGA ....30

1.5. Сравнение архитектур  ПЛИС.......................................................37

1.6. Средства проектирования цифровых устройств на ПЛИС ........39

1.7. Применение ПЛИС ........................................................................47

 2

Многофункциональные устройства вводавывода .............................56

2.1. 2.1. Основные узлы модулей вводавывода. Модули
стандартной архитектуры .....................................................................57

2.1.1. Блок аналогового ввода.............................................................59

2.1.2. Блок аналогового вывода...........................................................62

2.1.3. Блок цифрового вводавывода ..................................................63

Содержание
4

2.1.4. Блок таймерного вводавывода ................................................ 66

2.1.5. Функционирование модуля вводавывода ................................ 66

2.2. Реконфигурируемые модули вводавывода................................ 69

 3

Виртуальные измерительные приборы и программное
обеспечение National Instruments .........................................................76

3.1. Об истории появления LabVIEW ...................................................77

3.2. Основные свойства LabVIEW ........................................................78

3.3. Как развивались технологии виртуальных инструментов…........ 82

3.4. Measurement and Automation eXplorer (MAX) ............................. 84

3.4.1. Конфигурирование технических средств в MAX........................86

3.4.2. Тестирование технических средств в MAX ................................ 88

3.4.3. Создание задачи ....................................................................... 90

3.4.4. Создание симуляторов устройств вводавывода .......................97

3.4.5. Конфигурирование программного обеспечения ................... 100

3.4.6. Конфигурирование сетевого окружения ................................ 103

 4

Организация среды проектирования LabVIEW ................................ 106

4.1. Запуск LabVIEW. Начало работы ................................................ 108

4.2. Создание проекта ........................................................................115

4.3. Редакторы для проектирования программ LabVIEW ................ 117

4.4. Инструменты редакторов программ ........................................ 119

4.4.1. Инструментальные линейки кнопок ........................................ 119

4.4.2. Палитра инструментов Tools Palette ........................................ 122

4.4.3. Объекты программ LabVIEW. Пример программы ..................123

4.4.4. Оценка сложности программ LabVIEW................................... 130

Содержание

4.4.5. Палитра объектов лицевой панели Controls Palette ..................133

4.4.6. Палитра объектов блокдиаграммы Functions Palette .............. 141

4.4.6.1. Субпалитра Programming ..................................................... 144

4.4.6.2. Базовые конструкции языка G. Субпалитра Structures .......... 146

4.4.6.3. Работа с однородными совокупностями данных.
Массивы. Субпалитра Array .............................................................. 149

4.4.6.4. Работа с неоднородными совокупностями данных.
Кластеры. Субпалитра Cluster, Class & Variant .................................... 150

4.4.6.5. Простейшие математические операции. Субпалитра
Numeric.............................................................................................152

4.4.6.6. Логические операции. Субпалитра Boolean .........................154

4.4.6.7. Операции сравнения. Субпалитра Comparison ....................154

4.4.6.8. Операции со строками. Субпалитра String .......................... 156

4.4.6.9. Функции системного таймера. Субпалитра Timing ................157

4.4.6.10. Сохранение и воспроизведение данных.
Субпалитра File I/O ............................................................................ 158

 4.4.6.11. Организация взаимодействия с техническими
средствами. Субпалитра Measure I/O ............................................... 160

4.4.6.12. Субпалитра DAQmx – Data Acquisition............................... 161

 5

Техника программирования в графической среде LabVIEW ......... 164

5.1. Разработка лицевой панели и настройка объектов
лицевой панели................................................................................... 164

5.1.1. Настройка свойств объекта из контекстного меню ................ 168

5.1.2. Задание свойств объекта в окне Properties............................. 170

5.1.3. Массивы и кластеры на лицевой панели.................................. 172

5.2. Разработка блокдиаграммы .......................................................175

5.2.1. Соединение узлов блокдиаграммы. Первая программа ........ 176

Содержание
6

5.2.2. Техника проектирования программ. VI генератора
сигналов ........................................................................................... 179

5.2.3. Разработка пиктограммы VI .................................................... 180

5.2.4. Вызов подпрограмм subVI. Цикл While. Ошибки
проектирования ................................................................................184

5.3. Техника отладки программ в LabVIEW ........................................188

5.3.1. Устранение ошибок до компиляции,
или Почему в LabVIEW мало грубых ошибок .....................................188

5.3.2. Отладка с помощью пробников и контрольных точек..............189

5.3.3. Средства пошаговой отладки программ. Анимация
выполнения программы ....................................................................193

5.3.4. Кластер ошибок. Интерпретация ошибок выполнения
программы....................................................................................... 194

5.3.5. Помощь в среде проектирования LabVIEW ............................ 196

5.4. Разработка блокдиаграммы – продолжение............................198

5.4.1. Цикл While. Туннели и регистры сдвига, массивы ................... 199

5.4.2. Структура выбора – Case ....................................................... 201

5.4.3. Работа со свойствами объектов ............................................. 202

5.4.4. Цикл For и другие структуры................................................... 204

5.4.5. Объявление и использование переменных ............................ 206

5.4.6. Программирование операций вводавывода......................... 208

5.5. Типы данных и терминалы блокдиаграммы ...............................215

 6

Реконфигурируемые системы и среда
проектирования LabVIEW FPGA .......................................................... 217

6.1. Типовые архитектуры систем реконфигурируемого
вводавывода .......................................................................................218

6.1.1. Системы на основе модуля Rсерии ........................................218

6.1.2. Системы на основе контроллера реального времени ............ 221

Содержание

6.2. Состав и особенности среды проектирования
реконфигурируемых систем ..............................................................224

6.2.1. Особенности среды LabVIEW FPGA ........................................225

6.2.2. Как получается код, загружаемый в FPGA?.............................. 226

6.3. Палитры LabVIEW FPGA .............................................................. 227

6.3.1. Субпалитра арифметических операций ................................. 230

6.3.2. Субпалитра функций математической обработки
данных...............................................................................................232

6.3.2.1. Субпалитра функций управления ..........................................233

6.3.2.2. Субпалитры Utilities и Generation ..........................................237

6.3.2.3. Другие экспрессфункции субпалитры Math & Analysis .........239

6.3.3. Субпалитра вводавывода FPGA I/O .........................................243

6.3.4. Субпалитра узлов для работы с памятью FPGA.........................245

6.3.5. Субпалитра функций тактирования FPGA ................................ 247

6.3.6. Субпалитра функций синхронизации задач в FPGA..................248

6.3.6. Субпалитра Advanced ............................................................ 250

6.4. Методы и средства отладки FPGAприложений ....................... 250

 7

Разработка реконфигурируемых систем в LabVIEW .......................254

7.1. Этапы разработки реконфигурируемых систем .......................254

7.1.1. Создание проекта системы на основе модуля Rсерии ...........255

7.1.2. Программирование целевой платформы. Разработка
программы FPGA VI...........................................................................259

7.1.2.1. Аналоговый вводвывод........................................................259

7.1.2.2. Реализация счетчиков/таймеров .......................................... 264

7.1.3. Тактирование и синхронизация в FPGA................................... 266

7.1.3.1. Тактирование с использованием структуры Single Cycle
Timed Loop....................................................................................... 267

Содержание
8

7.1.3.2. Синхронизация и обмен данными между параллельными
структурами ..................................................................................... 270

7.1.4. Параллелизм выполнения операций в FPGA ........................... 277

7.1.5. Разделяемые ресурсы .............................................................281

7.2. Оптимизация FPGA VI...................................................................284

7.2.1. Оптимизация ресурсов FPGA ..................................................284

7.2.2. Оптимизация быстродействия FPGA ........................................286

7.2.3. Оценка результатов оптимизации ........................................... 292

7.3. Компиляция FPGA VI .....................................................................293

 8

Управление FPGA VI. Разработка Host VI ...........................................298

8.1. Программный обмен данными через элементы лицевой
панели. Субпалитра FPGA Interface ................................................... 301

8.2. Функция Invoke Method................................................................311

8.3. Функция Up Cast............................................................................314

8.4. Синхронизация обмена данными между Host VI и FPGA VI ..... 316

8.4.1. Синхронизация Host VI и FPGA VI методом поллинга...............317

8.4.2. Синхронизация Host VI и FPGA VI с использованием
прерывания.......................................................................................319

8.4.3. Обмен данными с использованием канала прямого
доступа к памяти................................................................................321

 9

Расширение возможностей систем, выполненных
на модулях Rсерии ................................................................................329

9.1. Краткая характеристика модулей вводавывода Ссерии ........331

9.2. Конфигурирование систем с шасси расширения
и модулями Ссерии............................................................................337

9.3. Программирование модулей Ссерии. FPGA VI и Host VI .......342

Содержание

 10

Автономные и распределенные системы
с реконфигурируемыми каналами вводавывода .............................352

10.1. Оборудование систем Compact RIO .......................................354

10.2. Проектирование систем на платформе cRIO..........................359

10.2.1. Конфигурирование среды проектирования ..........................359

10.2.2. Разработка системы реального времени ..............................364

10.2.2.1. Краткая характеристика объекта и структура
проектируемой системы ...................................................................365

10.2.2.2. Создание и конфигурирование проекта ............................ 366

10.2.2.3. Разработка FPGA VI.............................................................368

10.2.2.4. Проектирование программы для контроллера
реального времени ...........................................................................372

10.2.2.5. Разработка Host VI .............................................................. 375

 11

Примеры применения технологий
реконфигурируемого вводавывода ..................................................379

11.1. Контроллеры стандартных
и пользовательских интерфейсов ......................................................380

11.1.1. Разработка интерфейса SPI в FPGA ........................................382

11.1.2. Разработка интерфейса I2C в FPGA .......................................386

11.1.3. О реализации протоколов и некоторых особенностях
проектирования интерфейсов в FPGA...............................................389

11.2. Цифровые фильтры в FPGA .......................................................392

11.3. Применение FPGA в системах радиосвязи............................. 404

11.3.1. Цифровые генераторы радиосигналов ................................ 405

11.3.2. Цифровые анализаторы радиосигналов ............................... 408

11.3.3. Усилители и коммутаторы радиосигналов. Программные
средства .......................................................................................... 409

Содержание
10

11.4. Применение технологии cRIO при разработке
прототипов систем измерения и управления ...................................418

11.4.1. Модель процесса проектирования приложений
и ее реализация ................................................................................418

11.4.2. Программнотехническое моделирование датчиков ............428

11.4.2.1. Датчик линейных перемещений..........................................428

11.4.2.2. Датчик температуры – термопары......................................431

Заключение ............................................................................................ 440

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

Введение

Автоматизация испытаний объектов или управления процессами в промышленности, равно как и автоматизация экспериментальных исследований, требует решения ряда задач, связанных с приобретением типового или с разработкой и изготовлением нестандартного оборудования, разработкой программ нижнего уровня
для управления этим оборудованием. Кроме того, должно быть спроектировано и
программное обеспечение верхнего уровня, предназначенное для объединения
всех программных и технических компонентов в единую систему, которую может
контролировать и которой должен управлять человек.
Решением каждой из этих достаточно специфичных и сложных задач занимаются специалисты соответствующего профиля – разработчики аналоговых или цифровых устройств, разработчики прикладных программ нижнего уровня или программисты системного программного обеспечения. Все они используют различные
инструментальные средства, овладение которыми требует специальной подготовки, а для получения с их помощью качественных результатов необходимы определенный уровень квалификации и опыт. Нужны также специалисты, способные
грамотно сформулировать задание для каждого из разработчиков, с тем чтобы минимизировать потери времени на интеграцию полученных результатов.
Заметно упрощается решение большинства этих задач, когда в качестве среды
проектирования применяют все более широко распространяющуюся систему графического программирования LabVIEW, разработанную корпорацией National
Instruments. Главные и принципиальные отличия LabVIEW от классических языков программирования – графический способ проектирования программ и потоковое их исполнение – позволяют реализовать совершенно новые возможности, а
в ряде случаев получить качественно лучшие результаты. При этом удается существенно облегчить сам процесс разработки новых программнотехнических комплексов.
LabVIEW – Laboratory Virtual Instrument Engineering Workbench – среда
проектирования виртуальных измерительных приборов для инженеров – исключительно проста в освоении, не требует квалификации профессионального
программиста для комплексного решения всей совокупности упомянутых задач,
естественным образом реализуя интеграцию технических средств и программного обеспечения разного уровня.

Введение
12

Линейка предлагаемых вместе с базовой системой LabVIEW проблемно ориентированных библиотек функций высокого уровня, модулей, наборов и комплектов разработчика недавно пополнилась модулем программирования программируемых логических интегральных схем (ПЛИС), а точнее одной из самых
сложных разновидностей ПЛИС – FPGA (Field Programmable Gate Array – матрицы логических вентилей, программируемых в условиях эксплуатации). Этот
модуль – LabVIEW FPGA – предназначен для разработки систем, каналы вводавывода которых, а также встроенные специализированные устройства обработки
данных выполняются реконфигурируемыми, причем алгоритм их функционирования реализуется на аппаратном уровне.
С появлением LabVIEW FPGA у инженеров появилась уникальная возможность – в одной среде и с помощью одних и тех же инструментов проектировать
программное обеспечение, предварительно сконструировав необходимые электронные устройства. Эта концепция, названная специалистами National Instruments
технологией реконфигурируемого вводавывода, позволяет на основе соответствующих технических средств быстро и эффективно создавать самые разнообразные и гибкие измерительные, тестовые и управляющие приложения с весьма
высокими характеристиками по производительности, необходимыми при решении многих задач сбора и обработки данных, контроля и управления.
Главная цель настоящей книги – дать представление о принципах и технике
проектирования реконфигурируемых систем. При этом для тех, кто незнаком
с возможностями ПЛИС и средой графического программирования LabVIEW,
автор счел необходимым привести некоторый минимальный объем сведений
о программируемых логических интегральных схемах, об организации среды проектирования LabVIEW и основных приемах работы в этой среде.
Материал изложен в следующей последовательности.
В первой главе рассматриваются основные разновидности архитектур программируемых логических интегральных схем, сравниваются их характеристики, дается представление о средствах проектирования ПЛИС, приводятся некоторые
примеры применения этих компонентов в специализированных устройствах обработки информации.
Принципы построения и функциональные возможности средств получения
информации и выдачи управляющих воздействий – модулей вводавывода, предназначенных как для измерения, так и для генерации аналоговых электрических
величин, сбора и формирования цифровых сигналов, – обсуждаются в главе 2.
Здесь рассматриваются типовые, встраиваемые в персональные и промышленные
компьютеры многофункциональные устройства, выполненные на основе традиционных схем, а также модули Rсерии, реализующие новую концепцию реконфигурируемого вводавывода – Reconfigurable Input/Output (RIO). В этих
устройствах, выпускаемых корпорацией National Instruments, используются ПЛИС,
программируемые разработчиком на этапе создания прикладных систем, что
обеспечивает возможность определять состав, функциональность и технические
характеристики каналов вводавывода, а также устройств обработки данных не
при изготовлении модулей на заводе, а в процессе их интеграции в системы.

Введение

В главе 3 рассматриваются концепция виртуальных измерительных приборов
и особенности графического языка программирования G, на котором базируется
система LabVIEW, приводится краткий обзор программного обеспечения National Instruments, подробнее изложены вопросы конфигурирования и тестирования
технических и программных средств с помощью утилиты Measurement and Automation eXplorer (MAX).
Вопросам организации среды проектирования LabVIEW, методике разработки и отладки программного обеспечения посвящены главы 4 и 5. Здесь дается
информация об инструментах, предоставляемых разработчику графических
программ, назначении и составе основных палитр объектов, используемых при
«рисовании» программ, на конкретных примерах показываются приемы проектирования. Необходимо отметить, что затронуты далеко не все возможности LabVIEW,
в частности поверхностно или совсем не рассмотрены средства визуализации данных в графических форматах, функции коммуникаций, управления приложениями и ряд других. При этом автор полагает, что, если потребуется, читатели смогут
найти соответствующую информацию в книгах по общим принципам программирования в LabVIEW, их издано в России уже около десятка.
В то же время литературы о LabVIEW FPGA и системах с реконфигурируемыми каналами вводавывода, насколько известно автору, пока еще мало не
только на русском языке, но и на языке разработчиков этого нового и, безусловно,
перспективного направления системотехники. Можно добавить, что основными
источниками информации, использованными при написании этой книги, послужила справочная система LabVIEW FPGA, а также ряд опубликованных в Интернете материалов, авторами которых являются сами разработчики LabVIEW
FPGA и разработчики технических средств, созданных для реализации реконфигурируемых систем. Поэтому приведенный в конце книги список цитируемых источников содержит в основном ссылки на электронные документы, большинство
из которых поставляется вместе с программным обеспечением или аппаратурой
или опубликовано на сайтах корпорации National Instruments.
Основным содержанием главы 6 является описание особенностей архитектур реконфигурируемых систем, технологии их проектирования и тех специальных дополнительных средств LabVIEW, с помощью которых эти системы создаются. Затем,
в главе 7, детально рассматривается процесс разработки FPGA VI – программ, код
которых реализует на аппаратном уровне в FPGA типовые задач измерения и генерации сигналов. Особое внимание уделяется возникающим при этом проблемам синхронизации и взаимодействия параллельно исполняемых структур, корректного разрешения коллизий при использовании разделяемых ресурсов. Изложены также
способы оптимизации кода FPGA VI, позволяющие повысить быстродействие приложений или/и уменьшить объем расходуемых логических элементов FPGA.
Вопросам разработки программ, исполняемых на главном компьютере и предназначенных для управления функционированием FPGA VI, посвящена глава 8.
Сравниваются различные способы организации обмена данными между управляющей программой – Host VI и FPGA VI, обсуждаются их достоинства и недостатки, даются рекомендации по их применению.

Введение
14

В главе 9 приводится краткий обзор нового семейства модулей вводавывода
Compact RIO (cRIO), описываются основные этапы программирования систем,
скомпонованных из встраиваемых в компьютеры модулей Rсерии, функциональные возможности которых расширены, а количество каналов увеличено путем подключения модулей cRIO.
Архитектура автономных (встраиваемых) и распределенных систем реального
времени с реконфигурируемыми каналами вводавывода, а также особенности
разработки программного обеспечения подобных систем изложены в главе 10.
Наконец, в 11й главе рассматриваются примеры использования технологии
реконфигурируемого вводавывода при решении ряда практически важных прикладных задач: цифровой фильтрации результатов измерений в темпе их получения, реализации различных, в том числе специализированных, интерфейсов и
протоколов, тестирования и исследования современных систем связи, работающих в диапазоне СВЧ, разработки прототипов сложных систем управления.
Представляется, что информации, предлагаемой читателю, будет достаточно
для ускоренного освоения новой перспективной технологии проектирования информационноизмерительных и управляющих систем.
Книга может быть рекомендована инженерам, начинающим применять LabVIEW
FPGA в своей практической деятельности, а в качестве учебного пособия – студентам соответствующих специальностей.

Программируемые
логические
интегральные схемы
1

По мере развития микроэлектронных технологий и возрастания степени интеграции элементов на кристалле все очевиднее становилось противоречие между потребностями создавать компактные специализированные устройства из наименьшего количества компонентов и нерентабельностью расширения номенклатуры
выпускаемых массовым тиражом типовых логических элементов и блоков. Действительно, уже с конца 60х гг. прошлого века стало возможным на одном кристалле размещать десятки и сотни логических вентилей, но чем насыщеннее становился каждый новый кристалл, тем больше возрастала его специализация и тем
меньше становилась относительная доля объема его выпуска.
Появление универсальных логических устройств, микропроцессоров, конечная функция которых определялась загружаемой в них программой, казалось,
сблизило возможности изготовителей микросхем, владеющих высокотехнологичными средствами производства, с одной стороны, потребности и возможности
разработчиков прикладных устройств и систем – с другой. Однако инженеры попрежнему вынуждены были для решения своих задач использовать компоненты
высокой (по меркам того времени) степени интеграции – в качестве основного
функционального блока (например, процессора) и десятки логических элементов
малой степени интеграции – для того, чтобы состыковать между собой микросхемы разных классов и типов, реализовать на аппаратном уровне специфические
для каждого конкретного случая узлы.
Например, контроллер выполнялся на основе 4или 8разрядного микропроцессора и нескольких микросхем памяти, содержащих тысячи логических вентилей, и до десятка и более интегральных схем низкой степени интеграции – дешифраторов, регистров, простейших логических элементов, с помощью которых
реализовывалась системная шина, каналы вводавывода и т. п. При этом для изготовления такого контроллера требовалась печатная плата с площадью, достаточной для установки нескольких микросхем повышенной степени интеграции
(микропроцессор, память) и десятка, а то и более, микросхем малой степени интеграции, размещения всех необходимых печатных проводников. Сборка относительно несложных логических узлов контроллера проводилась с помощью паяльника,  в то время как существенно более сложные микропроцессор и блоки памяти

Программируемые логические интегральные схемы
16

поступали «в собранном виде», готовые. Очевидно, что и стоимость монтажа оказывалась непропорциональной сложности узлов, а надежность устройства в целом определялась надежностью элементов малой степени интеграции, количеством их выводов и соединительных проводников на печатной плате.
Таким образом, разработчики цифровой аппаратуры, получив возможность
использовать достаточно мощные и универсальные процессорные компоненты,
вынуждены были попрежнему применять простые и тоже универсальные элементарные логические схемы, собирая их в специализированные блоки, без которых
невозможно было спроектировать и изготовить устройство, решающее специальную задачу измерений и обработки информации, управления или тестирования.
Назревала необходимость усовершенствования технологии проектирования и
производства конечных изделий, приближения ее к технологии проектирования
и производства микроэлектронных компонентов. Безусловно, передовой являлось массовое производство микросхем, где связи между элементами в кристалле
создавались с помощью масок. Однако использовать эту технологию в многочисленных лабораториях разработчиков цифровых устройств невозможно, так как
изготовление масок – весьма трудоемкий и дорогой процесс. Необходимо было
придумать более доступный механизм произвольного соединения элементов
кристалла между собой и с внешними выводами микросхемы, а разместить на
кристалле необходимый набор типовых логических элементов (десятки или сотни) к тому времени проблемой уже не являлось.
Другими словами, разработчику надо было предоставить возможность более
простыми и в то же время более эффективными средствами создавать собственную микросхему, которая могла бы заменить горсть универсальных микросхем
малой степени интеграции, объединяемых в устройстве в специализированный
узел. Такая возможность была реализована в программируемых логических интегральных структурах – ПЛИС  (PLD – Programmable Logic Device). На кристалле ПЛИС размещались простые логические вентили различных типов и
объединяющие их регулярные шины проводников. Подобная микросхема представляла собой некоторую универсальную заготовку, в которой разработчик доступными средствами может удалить ненужные связи между вентилями, изменяя
тем самым логическую функцию ПЛИС и, по существу, создавая уникальное, необходимое только ему логическое устройство, сохраняя почти все качества интегрального исполнения.

1.1. Простые программируемые логические
устройства – SPLD

Первые кристаллы, структуру и функции которых мог определять пользователь, –
программируемые постоянные запоминающие устройства ППЗУ (PROM – Programmable Read Only Memory). ППЗУ состоит из двух матриц логических элементов – матрицы элементов «И» и матрицы элементов «ИЛИ». Входы элементов
«И» соединяются с внешними входами микросхемы через повторитель, или ин17

вертор, а входы элементов «ИЛИ» – с выходами элементов «И» [1]. Таким образом, на выходах элементов «ИЛИ», являющихся внешними выходами микросхемы, формируется логическая сумма произведений входных переменных.
В показанной на рис. 11 схеме переменные, подаваемые на входы адреса, в дешифраторах строк образуют все возможные конъюнкции – функции «И» от всех
входных переменных. Объединением выходов конъюнкторов в столбцах матрицы
элементов памяти реализуются логические функции «ИЛИ». Именно отключением определенных строк от столбцов определяются конечные логические функции ППЗУ.

Рис. 11. Структура ППЗУ

От изготовителя ППЗУ поступало «чистым» – подключены все входы всех
элементов «И» и «ИЛИ», однако пользователь мог удалять ненужные соединения,
адресно разрушая их в специальном режиме. В качестве разрушаемых соединений
(перемычек) использовались выжигаемые током проводники или пробиваемые
pnпереходы (диоды), сохраняемые же связи и являлись собственно запоминающими элементами и определяли логическую функцию для каждого выхода
ППЗУ. Следует отметить, что использовались и иные способы программирования
ППЗУ – не удалением ненужных из предварительно созданных межсоединений,
а наоборот – созданием нужных соединений. Однако подобные технологические
нюансы для разработчика прикладных устройств непринципиальны.

Простые программируемые логические устройства – SPLD

Программируемые логические интегральные схемы
18

Различают ППЗУ двух основных типов:
• в микросхемах, получивших название PROM, изменять можно только подключения входов элементов «ИЛИ», матрица связей элементов «И» фиксирована (пример на рис. 11);
• в микросхемах типа PAL/GAL (Programmable/Generic Array Logic) – программируются связи элементов «И», а соединения элементов «ИЛИ» изменению не подлежат.
Набор из N произвольных логических функций от k входных переменных
может быть реализован в одной микросхеме ППЗУ с N выходами емкостью 2k

вентилей, достаточно записать эти функции в совершенной дизъюнктивной
нормальной форме и ввести их таблицы истинности в программатор.
Очевидно, что в программируемых ПЗУ площадь кристалла расходуется неэкономно – для всех возможных конъюнкций и дизъюнкций входных и промежуточных переменных должны быть зарезервированы входы элементов «И» и
«ИЛИ», значительная часть которых при программировании отключается.
Более рационально логические функции реализуются на базе ПЛМ – программируемых логических матриц (PLA – Programmable Logic Array) [2, 3]. В ПЛМ
могут быть запрограммированы обе матрицы логических элементов – «И» и
«ИЛИ», при этом количество входов конъюнкторов и дизъюнкторов может быть
уменьшено без существенных потерь сложности реализуемых логических функций (рис. 12).

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

ПЛИС, рассмотренные выше, – PROM, PAL, GAL, PLA – предоставили разработчикам определенную свободу в реализации проектов, обеспечили возможность уменьшения количества компонентов, повышения надежности изделий и
снижения их стоимости. Стало возможным создавать вычислительные устройства не только на основе микропроцессоров с жесткой системой команд, но и
с использованием микропроцессорных секций с микропрограммным управлением, причем набор команд уже определялся самим разработчиком, который запи19

сывал микропрограммы в ПЛИС. Таким же образом проектировались специализированные комбинационные устройства – преобразователи кодов, шифраторы и
дешифраторы, а применение ПЛИС совместно с элементами памяти – триггерами, регистрами, счетчиками – позволяло разрабатывать быстродействующие
устройства микропрограммного управления различными объектами.
Дальнейшее развитие технологии ПЛИС позволило включить в них и элементы памяти, так что разработчик смог перейти на качественно новый уровень,
создавая не простые комбинационные устройства, а законченный последовательностный автомат, полностью реализующий требуемую диаграмму состоянийпереходов без использования дополнительных элементов малой и средней степени
интеграции. Достаточно наглядное представление о возможностях, предоставляемых ПЛИС с памятью, дает приведенная на рис. 13 схема популярной микросхемы PAL22V10, клоны которой выпускали и выпускают многие компании [4, 5].

Рис. 13. Структура ПЛИС с памятью

Эта микросхема, относящаяся к классу PAL, содержит программируемую матрицу элементов «И» (Programmable AND Array), на входы которых I1–I11 поданы
11 переменных (или их инверсии) с внешних входов ПЛИС и 10 внутренних переменных (или их инверсии), ассоциируемых с внешними входами/выходами
ПЛИС. Выходы элементов «И» объединяются в линейке из 10 непрограммируемых элементов «ИЛИ» с фиксированным количеством входов – от 8 до 16.
Сигналами с выходов элементов «ИЛИ» управляются выходные макроячейки
(OUTPUT LOGIC MACRO CELL), каждая из которых содержит тактируемый
Dтриггер с входами сброса и установки.
Каждая из 10 макроячеек может быть сконфигурирована для работы в одном
из 4 режимов, выбираемых с помощью программируемых перемычек S0 и S1
(рис. 14).

Простые программируемые логические устройства – SPLD

Программируемые логические интегральные схемы
20

Этими перемычками основной мультиплексор ячейки настраивается таким
образом, что на выходной контакт ПЛИС поступает сигнал, реализуемый комбинационной логикой (матрицей «И» и «ИЛИ»), или тот же сигнал, зафиксированный Dтриггером по приходу синхроимпульса CLK. Выходной сигнал (I/On)
с помощью дополнительного мультиплексора может быть возвращен во входную
комбинационную схему в качестве сигнала обратной связи для текущей макроячейки или в качестве дополнительной логической переменной – для остальных
макроячеек.
Любой выход может быть переведен в высокоимпедансное состояние и использован как вход или двунаправленный вход/выход ПЛИС. Перечень полезных свойств этой микросхемы расширяют возможности сброса элементов памяти
в исходное состояние по включению питания, загрузки в регистр произвольного
кода через выходные контакты (что улучшает тестопригодность создаваемых на
основе этой ПЛИС устройств), а также возможность установки защиты от несанкционированного копирования внутренней структуры ПЛИС – интеллектуальной
собственности (Intellectual Property) разработчика.
Микросхемы типа PAL с элементами памяти вместе с ПЛИС комбинационного типа PROM, PAL, GAL в последующем были отнесены к классу простых
программируемых логических устройств – SPLD (Simple Programmable Logic Device).
Отличительные признаки SPLD:
• каждая макроячейка имеет свой внешний выход и свой собственный триггер;
• в микросхеме SPLD реализовано не менее двух макроячеек;
• обычно все макроячейки выполнены одинаковыми;
• логическая функция макроячейки описывается одним логическим термом;
• логическая функция макроячейки реализуется матрицами элементов «И» и
«ИЛИ».
К достоинствам SPLD обычно относят простоту проектирования специализированных устройств, постоянное и, как правило, одинаковое время прохождения
сигналов со входов на выходы, возможность замены одной или несколькими микросхемами SPLD достаточно большого количества типовых микросхем малой
и средней степени интеграции.

Рис. 14. Макроячейка PAL22V10

К покупке доступен более свежий выпуск Перейти