Ростислав Грушвицкий Александр Мурсаев Евгений Угрюмов
ПРОЕКТИРОВАНИЕ СИСТЕМ НА МИКРОСХЕМАХ ПРОГРАММИРУЕМОЙ ЛОГИКИ
Сан...
33 downloads
418 Views
4MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Ростислав Грушвицкий Александр Мурсаев Евгений Угрюмов
ПРОЕКТИРОВАНИЕ СИСТЕМ НА МИКРОСХЕМАХ ПРОГРАММИРУЕМОЙ ЛОГИКИ
Санкт -Петербург «БХВ -Петербург» 2002
УДК 681.3(075.8) ББК 32.973 -02я73 Г91
Г91
Грушвицкнй Р. И., Мурсаев А. X., Угрюмое Е. П. Проектирование систем на микросхемах программируемой логики. — СПб.: БХВ -Петербург, 2002. — 608 с.: ил. ISBN 5 -94157 -002 -3 В книге систематически изложены основные архитектурные и схемотехнические особенности современных больших интегральных схем с программируемой структурой (ИСПС) всех ведущих производителей, в том числе особенности реконфигурируемых систем на кристалле. Рассмотрены методология, маршруты проектирования и специфика основных этапов создания проектов на ИСПС с ориентацией на использование систем автоматизированного проектирования. Представлены наиболее распространенные языки описания цифровых устройств и их место в процессе проектирования. Для студентов, аспирантов, преподавателей профильных специальностей, а также инженеров -разработчиков вычислительных, управляющих, радиотехнических и телекоммуникационных систем УДК 681.3(075.8) ББК 32.973 -02я73
Группа подготовки издания: Главный редактор Зав. редакцией Редактор Компьютерная верстка Корректор Дизайн обложки Зав. производством
Екатерина Кондукова Анна Кузьмина Григорий Добин Ольги Сергиенко Зинаида Дмитриева Игоря Цырульникова Николай Тверских
Лицензия ИД № 02429 от 24.07.00. Подписано печать 10.08.02. Формат 70x100 1/10. Печать офсетная. Усл. печ. л. 48. Тираж 3000 экз. Заказ NB 2 7 3 "БХВ -Петербург -, 198005, Санкт -Петербург, Измайловский пр.. 29. Гигиеническое заключение на продукцию, товар № 77.99.02.953.Д.001537.03.02 от 13.03.2002 г. выдано Департаментом ГСЭН Минздрава России. Отпечатано с готовых диапозитивов в Академической типографии "Наука" РАН 199034, Санкт -Петербург, 9 линия, 12.
I S B N 5 94157 -002 -3
° Грушвицкий Р. И., Мурсаев А. X., Угрюмое Е. П., 2002 о оформление, издательство "БХВ -Петербур!', 2002
Содержание
Предисловие
Введение
9
13
Глава 1. Элементная база электронных устройств и систем. Архитектура и схемотехника интегральных схем с программируемой структурой 1.1. Общие сведения. Предшественники. Классификация 1.1.1. Вводные замечания. Историческая справка 1.1.2. Базовые матричные кристаллы (вентильные матрицы) 1.1.3. Классификация логических микросхем программируемой логики 1.1.4. Общие (системные) свойства микросхем программируемой логики 1.2. CPLD — сложные программируемые логические устройства .2.1. Структура CPLD .2.2. Программируемая матрица соединений .2.3. Функциональные блоки CPLD .2.4. Блоки ввода/вывода CPLD 1.3. FPGA — программируемые пользователем,вентильные матрицы .3.1. Основные сведения .3.2..Функциональные блоки FPGA . .3.3. Блоки ввода/вывода FPGA 1.3.4. Системы межсоединений 1.4. ПЛИС с комбинированной архитектурой 1.4.1. Структура микросхем семейства FLEX 1.4.2. Логические элементы 1.4.3. Встроенные блоки памяти 1.5. Основные сведения о СБИС типа "система на кристалле" 1.6. СБИС типа "система на кристалле" с однородной структурой (с полностью синтезируемыми блоками) 1.6.1. Микросхемы семейств АРЕХ20К/КЕ, APEXII 1.6.2. Микросхемы семейств Virtex, Virtex E, Virtex II
23 23 23 28 31 41 42 42 44 46 50 52 52 54 56 58 61 61 63 65 67 70 70 74
4_
Содержание
1.7. СБИС типа "система на кристалле" с блочными структурами (с аппаратными ядрами) 1.7.1. Вводные замечания 1.7.2. SOPC с блочной структурой, не содержащие ядер процессоров 1.7.3. SOPC семейства FPSLIC фирмы Atmel 1.7.4. SOPC блочного типа фирмы Triscend 1.7.5. SOPC блочного типа фирмы Altera 1.8. Микросхемы с программируемыми аналоговыми и аналого -цифровыми структурами 1.8.1. Общие сведения 1.8.2. Практические разработки , 1.9. О некоторых проблемах разработки и использования БИС/СБИС с программируемой структурой 1.9.1. Конвертация проектов 1.9.2. Конфигурирование БИС/СБИС с программируемой структурой 1.9.3. Засекречивание проектов 1.10. Способы оценки параметров ПЛИС. Обзор новой продукции ведущих фирм -производителей ПЛИС 1.10.1. Об оценке логической сложности (уровня интеграции) ПЛИС 1.10.2. Об оценке быстродействия ПЛИС 1.10.3. Сведения о современной продукции крупнейших фирм -производителей микросхем с программируемой структурой Сведения, не включающие описаний блочных "систем на кристалле" с процессорными ядрами Сведения о блочных "системах на кристалле", содержащих процессорные ядра
79 79 80 82 88 91 92 92 95 100 100 103 106 109 111 117 119 120 134
Глава 2. Основы технологии проектирования ИСПС и структуры систем автоматизированного проектирования 2.1. Общие сведения о процессе проектирования 2.1.1. Факторы, влияющие на методику проектирования электронных устройств 2.1.2. Области применения СпИС различных типов 2.1.3. Место БИС с программируемой структурой в процессе создания современной аппаратуры 2.2. Основы организации проектной процедуры для ИСПС 2.2.1. Проектирование цифровых фрагментов на заказных ИС и стандартных дискретных компонентах Реализация в базисе дискретных элементов типа МИС и СИС Реализация цифровых фрагментов на ПЛИС Реализация цифровых фрагментов в форме однокристального микроконтроллера Реализация цифровых фрагментов в форме полузаказных кристаллов 2.2.2. Проектирование микропроцессорных фрагментов систем Этап выбора типа МП Этап выбора периферии Этап разработки программного обеспечения Средства поддержки создания программного обеспечения Управление в реальном времени
139 141 144 144 146 148 157 159 161 162 162 173 177 179 180 182 183
Содержание
5
Этапы кодирования и отладки программного обеспечения 186 Отладка аппаратуры 187 Методы комплексной аппаратно -программной отладки 188 2.2.3. Проектирование систем, связанных с обработкой аналоговых сигналов 195 Проектирование аналоговых фрагментов 196 Проектирование фрагментов со смешанным представлением сигналов... 200 Проектирование аналоговых и аналого -цифровых SOPC 204 2.3. Структура и организация САПР 206 2.3.1. Связь процедуры проектирования и САПР БИС программируемой логики 206 2.3.2. Связь проектной проблемы с выбором САПР 207 2.4. Основные этапы проектирования БИС программируемой логики 213 2.4.1. Этап 1. Выбор элементной базы и САПР 213 2.4.2. Этап 2. Спецификация проекта 214 2.4.3. Этап 3. Разработка общей структуры проекта 215 2.4.4. Этап 4. Содержательное описание проекта и его частей 216 Иерархия языков проектирования дискретных устройств 217 Описание структуры операционного блока 221 Описание поведения элементов операционного блока 222 Описание работы устройства управления (УУ) 223 2.4.5. Этап 5. Компиляция проекта 224 2.4.6. Этап 6. Верификация проекта 226 2.4.7. Этап 7. Определение временных характеристик разработанного устройства 227 2.4.8. Этап 8. Организация натурных экспериментов 227 2.4.9. Этап 9. Подготовка к производственному выпуску 228 2.5. Проблемы и методы проектирования SOPC 229 2.5.1. Специфические технико -технологические особенности реализации систем типа SOPC 231 2.5.2. Идеи и методы сопряженного проектирования 232 Методология проектирования 237 Систематическое повторное использование 238 Современные проектные средства 239 Эффективность стандартов 240 2.5.3. Стиль сопряженного проектирования и язык описания проекта 240 Методы, устраняющие связь сложности систем и скорости моделирования 243 2.5.4. Пакеты и САПР, поддерживающие проектирование SOPC 246 Фирма Mentor Graphics 249 Фирма Cadence 250 Проектный поток в SystemC 252 2.5.5. Понятие платформенно -базированных проектов SOPC 258 2.6. Некоторые аспекты технологии производства систем с ПЛИС 261 2.6.1. JTAG -интерфейс 264 Предпосылки возникновения 264 JTAG -интерфейс и метод граничного сканирования 266 Транспортный механизм JTAG -интерфейса 269 Команды граничного сканирования 273
Содержание Простые арифметические узлы Описание цифровых автоматов 3.2.9. Подпрограммы 3.2.10. Разрешаемые сигналы и шины 3.2.11. Структурное представление проекта 3.2.12. Настройка и конфигурирование компонентов 3.2.13. Пакеты в VHDL. Концепция видимости описаний Концепция видимости объектов в VHDL 3.3. Элементы языка Verilog HDL 3.3.1. Предварительные замечания 3.3.2. Типы данных Цепи и регистры Правила записи векторных констант Память Целые и действительные типы данных. Время Строки Параметры 3.3.3. Операции и выражения Арифметические операции Операции отношения и сравнения Операции сдвига Логические и поразрядные операции Операции свертки Условная операция 3.3.4. Операторы initial и always 3.3.5. Операция присваивания, операторы присваивания Непрерывное присваивание Последовательные присваивания 3.3.6. Операторы принятия решений 3.3.7. Операторы повторения 3.3.8. Инициализация процедурных операторов 3.3.9. Блоки 3.3.10. Подпрограммы 3.3.11. Структурное описание проекта 3.3.12. Примитивы Предопределенные примитивы Примитивы, определяемые пользователем 3.4. Язык AHDL 3.4.1. Общая характеристика языка и структура программы 3.4.2. Типы данных и выражения. Оператор присваивания 3.4.3. Оператор выбора и оператор условия 3.4.4. Таблицы в AHDL 3.4.5. Оператор повторения . 3.4.6. Описание регистровых схем 3.4.7. Монтажная логика и буферные примитивы 3.4.8. Цифровые автоматы 3.4.9. Иерархическое проектирование в AHDL 3.5. Что дальше?
7_ 379 385 394 399 404 409 414 417 419 419 423 423 426 427 428 429 430 430 432 432 433 433 433 434 434 436 437 442 444 447 449 453 455 458 462 462 463 467 467 470 477 479 480 481 485 490 495 506
6
Содержание Устройство управления JTAG -интерфейса Стандарты, связанные с JTAG -интерфейсом 2.6.2. Проблемы и методология создания пригодной для тестирования аппаратуры Работы, выполняемые проектировщиком при создании проекта Работы, выполняемые при тестировании готовой продукции 2.6.3. Обзор средств поддержки JTAG -интерфейса ведущими фирмами Аппаратная поддержка JTAG -интерфейса Программная поддержка тестирования Комплексная организация поддержки тестирования Другие подходы 2.6.4. Системные функции на основе JTAG -интерфейса Конфигурирование БИС ПЛИС Развитие средств конфигурирования схем ИСПС Встраивание отладочных приборов и инструментов в ПЛИС
275 277 278 280 281 285 286 288 289 291 292 292 293 293
Глава 3. Языки описания дискретных устройств
297
3.1. Общие положения 3.1.1. HDL -программа как модель проектируемого устройства Типы данных Структура и поведение Стили описания проектов 3.1.2. Принципы интерпретации поведения дискретных устройств средствами моделирования Моделирование и реальное время Алфавит моделирования 3.1.3. Соглашение о правилах записи программ 3.2. Основы языка VHDL 3.2.1. Язык VHDL как программная система 3.2.2. Структура проекта. ENTITY и архитектурные тела 3.2.3. Типы данных Предопределенные типы данных Скалярные типы, вводимые пользователем Физические типы Массивы и записи Подтипы 3.2.4. Сигналы и переменные. Оператор PROCESS 3.2.5. Атрибуты в языке VHDL 3.2.6. Последовательные операторы Операторы присваивания Оператор условия и оператор выбора Оператор ожидания Операторы повторения Оператор проверки '. 3.2.7. Параллельные операторы Оператор блока 3.2.8. Описание в VHDL типовых дискретных устройств Комбинационные логические схемы Описание триггеров и регистровых схем
297 297 298 299 303 306 306 310 312 314 314 318 324 326 328 330 330 333 334 339 343 344 347 352 353 358 359 362 364 364 372
Содержание Простые арифметические узлы Описание цифровых автоматов 3.2.9. Подпрограммы 3.2.10. Разрешаемые сигналы и шины 3.2.11. Структурное представление проекта 3.2.12. Настройка и конфигурирование компонентов 3.2.13. Пакеты в VHDL. Концепция видимости описаний Концепция видимости объектов в VHDL 3.3. Элементы языка Verilog HDL 3.3.1. Предварительные замечания 3.3.2. Типы данных Цепи и регистры Правила записи векторных констант Память Целые и действительные типы данных. Время Строки Параметры 3.3.3. Операции и выражения Арифметические операции Операции отношения и сравнения Операции сдвига Логические и поразрядные операции Операции свертки , Условная операция 3.3.4. Операторы initial и always 3.3.5. Операция присваивания, операторы присваивания Непрерывное присваивание Последовательные присваивания 3.3.6. Операторы принятия решений 3.3.7. Операторы повторения 3.3.8. Инициализация процедурных операторов 3.3.9. Блоки 3.3.10. Подпрограммы 3.3.11. Структурное описание проекта 3.3.12. Примитивы Предопределенные примитивы Примитивы, определяемые пользователем 3.4. Язык AHDL 3.4.1. Общая характеристика языка и структура программы 3.4.2. Типы данных и выражения. Оператор присваивания 3.4.3. Оператор выбора и оператор условия 3.4.4. Таблицы в AHDL 3.4.5. Оператор повторения 3.4.6. Описание регистровых схем 3.4.7. Монтажная логика и буферные примитивы 3.4.8. Цифровые автоматы 3.4.9. Иерархическое проектирование в AHDL 3.5. Что дальше?
7_ 379 385 394 399 404 409 414 417 419 419 423 423 426 427 428 429 430 430 432 432 433 433 433 434 434 436 437 442 444 447 449 453 455 458 462 462 463 467 467 470 477 479 480 481 485 490 495 506
9
Содержание
Глава 4. Примеры проектирования устройств с применением ПЛИС
513
4.1. Проектирование операционных устройств 4.1.1. Операционные устройства с микропрограммным управлением Составление содержательной граф -схемы алгоритма и разработка структуры операционного блока Разработка модели поведения цифрового автомата Разработка текстового описания устройства 4.1.2. Операционные устройства конвейерного типа 4.2. Реализация модулей памяти в ПЛИС 4.2.1. Память с адресным доступом 4.2.2. Память с последовательным доступом 4.2.3. Память с ассоциативным доступом 4.3. Цифровые фильтры 4.4. Пример автоматизированного проектирования аппаратно -программной системы 4.4.1. Рассмотрение технического задания на разрабатываемое устройство и выбор элементной базы Процедура декомпозиции проекта Выбор САПР 4.4.2. Разработка аппаратной части БИС SOPC Этап 1. ТЗ на проектирование аппаратной части БИС Этап 2. Разработка общей структуры аппаратной части проекта Этап 3. Проектирование основных компонентов блока Cnt_ADC — блока управления записью данных от АЦП Этап 4. Проектирование блока Cnt_Cmp Этап 5. Проектирование общей схемы — сборка проекта из отдельных фрагментов 4.4.3. Настройка предопределенных ресурсов кристалла Создание заголовочного файла 4.4.4. Разработка программного обеспечения Компиляция и создание объектного кода Кодовая симуляция и отладка 4.4.5. Монтирование ресурсов SOPC в кристалл и комплексная отладка проекта Загрузка проекта Натурная отладка проекта 4.4.6. Разработка конструкции устройства
513 513 514 520 521 524 529 530 537 541 546 560 563 569 569 572 572 573 575 586 586 589 590 590 591 591 592 592 592 594
Список литературы
597
Предметный указатель
601
Предисловие Интересы России требуют преодоления сложившегося в последнее десятилетие однобокого развития экономики с акцентом на сырьевые отрасли производства. Неотъемлемой чертой развитых государств является способность к разработке и производству изделий высокой технологии, среди которых одно из ведущих мест занимает электронная аппаратура. Успех электроники в значительной мере определяет технологический прогресс многих отраслей промышленности. В последнее время, после длительного застоя в России наметилось некоторое оживление как исследований, так и практических разработок в области систем обработки информации самого разного назначения, в том числе цифровых устройств. В связи с ростом интереса к проблемам разработки электронной аппаратуры растет и потребность в соответствующей учебной и производственно справочной литературе. Предлагаемая книга посвящена проблемам проектирования аппаратуры на современной элементной базе, в первую очередь, на микросхемах с программируемыми структурами. Наиболее развитыми и широко применяемыми в этой области являются цифровые программируемые микросхемы (ПЛИС) и, естественно, основное внимание в книге уделено именно этим компонентам. Но и состояние разработок, и методологию проектирования аналоговых (ПАИС) и цифроаналоговых программируемых микросхем авторы в некоторой мере попытались представить. В настоящее время опубликованных работ на русском языке по предлагаемой тематике явно недостаточно. Среди книг, вышедших в последние годы, можно указать работы [3, 8, 24, 30, 56, 57]. Книга А. П. Антонова [3] — это удачное пособие для освоения основных проектных процедур при использовании САПР MAX+PLUS II фирмы Altera. В книге В. Б. Стешенко [24] подробно рассмотрены вопросы, связанные с реализацией задач цифровой обработки сигналов на компонентах программируемой логики, но также с преимущественной ориентацией на продукцию фирмы Altera. Имеется краткая информация о процедуре проектирования и языках проектирования дискретных устройств.
10
Проектирование систем на микросхемах программируемой логики
Ряд работ посвящены описанию языков проектирования аппаратуры (П. Н. Бибило [8], С. Емец [13], переводные книги [6, 56 и 57]). Не умаляя достоинств этих работ, хочется заметить, что они, в основном, ограничиваются изложением языка как такового, без достаточной связи с возможностями САПР и анализа влияния формы описания на результаты проектирования. Книги В. В. Соловьева и А. А. Шалыто посвящены теоретическим вопросам синтеза устройств в элементном базисе, характерном для ПЛИС, но, как нам кажется, рассчитаны в большей мере на разработчиков систем проектирования, нежели на проектировщиков цифровых устройств. Вопросы проектирования устройств и систем с использованием распространенных САПР в них практически не отражены. Авторы предлагаемой книги старались показать проблемы проектирования в широком плане, не сосредотачиваясь на результатах работы какой -либо отдельной фирмы, но и не жертвуя конкретным характером материалов. Авторы стремились нарисовать интегральную картину создания проекта с использованием ПЛИС, начиная от выбора способа реализации отдельных частей проекта (для этого, в частности, служит обзорный материал по современным программируемым микросхемам) и определения стратегии проектирования до завершающего представления проекта в форме, понятной системе автоматизированного проектирования, его верификацией и подготовкой к реализации. Авторы являются сотрудниками кафедры вычислительной техники Санкт Петербургского электротехнического университета (ЛЭТИ). Предлагаемый материал широко использовался в учебном процессе в курсах лекций по дисциплинам "Элементы и устройства ЭВМ", "Языки автоматизации проектирования средств вычислительной техники", "Автоматизация проектирования ЭВМ" для студентов, обучающихся по специальности 220100 "Электронные вычислительные машины, комплексы, системы и сети", а также при проведении курсов повышения квалификации работников научных и промышленных предприятий. Университет располагает методическими материалами и комплексом средств для выполнения лабораторных занятий и практических разработок. При участии авторов реализован ряд конкретных проектов с использованием ПЛИС из областей цифровой обработки сигналов, интерфейсных модулей компьютеров, кодирования информации. Материалы книги распределены между авторами следующим образом: введение написано авторами совместно. Глава 1 написана Е. П. Угрюмовым, глава 2 — Р. И. Грушвицким, глава 3 — А X. Мурсаевым, глава 4 — А X. Мур саевым и Р. И. Грушвицким. Такое разделение содержания между авторами лишь приблизительно отражает вклад каждого из них в создание книги, т. к.
Предисловие
11
при этом имели место взаимный обмен материалами и коллективное обсуждение; возникали ситуации, когда над отдельными разделами авторы работали совместно. Книга может быть полезна студентам, обучающимся в областях вычислительной техники, автоматики, измерительных систем, радиотехники и телекоммуникаций, а также работникам научных учреждений и промышленных предприятий, специализирующихся в этих областях. Авторы будут благодарны читателям за замечания по содержанию и характеру изложения книги.
Введение Что такое "микросхемы с программируемой структурой?" Почему они появились? Как с ними обращаться и где применять? Это можно понять полнее, рассматривая возникновение микросхем с программируемой структурой на фоне предшествующих этапов развития вычислительной техники. Вычислительные машины второй половины XX века ведут свой отсчет от универсального компьютера фон Неймана, в котором процесс решения задачи организован как последовательное во времени выполнение простых операций. Каждая операция выполняется по своей команде, совокупность команд образует программу, разработанную для решения данной задачи. Состав аппаратных средств фиксирован (процессор, память, устройства ввода/вывода данных), и изменение решаемой задачи отражается лишь на числе и составе команд программы. Такой процесс решения соответствует программной интерпретации алгоритмов. Хотя в современных вычислительных архитектурах реализованы принципы одновременной (параллельной) реализации нескольких команд, в том числе конвейерные и суперскалярные принципы обработки, параллельная реализация нескольких программ в многопроцессорных системах и т. п., в целом в подобных системах сохраняется принцип последовательного во времени исполнения алгоритма. Программный метод интерпретации алгоритмов не является единственным способом решения задач. Можно применять структурную или, как еще говорят, аппаратную интерпретацию алгоритма. В этом случае также выполняется множество отдельных простых операций. Но для выполнения отдельных действий применяются свои функциональные блоки, соединяемые в цепь определенной структуры. Функциональные характеристики блоков и характер соединений между ними соответствуют алгоритму решения задачи. Иными словами, для получения решения создается структура, отображающая интерпретируемый алгоритм. Алгоритм реализуется за счет продвижения данных и их преобразования по путям обработки (асинхронно или при тактировании) от входов к выходам схемы, с которых снимается результат. Команды для выполнения отдельных операций отсутствуют. Это обеспечи -
14
Проектирование систем на микросхемах программируемой логики
вает распределение решения задачи не только во времени, аив пространстве. Естественным образом достигается высокая степень параллелизма. В этом случае, состав аппаратных средств тесно связан с решаемой задачей. Усложнение задачи ведет к увеличению количества используемого оборудования. Изменение задачи требует изменения состава компонентов и способов их соединения. Роль и значение компьютеров в современной жизни общеизвестны. Аппаратные методы решения задач также важны и в ряде случаев незаменимы. Многие приложения, такие как моделирование динамических объектов, управление движением (особенно управление движением совокупности объектов), обработка сигналов и изображений в реальном времени, реалистичная компьютерная графика и подобные, связаны с многократным выполнением сравнительно простых операций, причем требуют выполнения до нескольких миллиардов операций в секунду. Последовательное выполнение большого числа элементарных шагов при компьютерном решении задачи занимает относительно большое время. Кроме того, независимость аппаратных средств от сложности решаемой задачи имеет и оборотную сторону — даже для простейших задач нужны блоки, образующие компьютер в целом. Таким образом, простые задачи и задачи, которые должны решаться в реальном масштабе времени, могут привести к необходимости применения аппаратных вариантов решения. Понятие "реального времени" означает, что результат должен быть получен за ограниченный интервал времени, иначе он становится бесполезным. Остановимся подробнее на некоторых путях реализации задач аппаратными средствами. Для создания аппаратных средств решения задач нужен набор различных элементов, узлов и устройств. Такой набор можно реализовать на микросхемах разного уровня интеграции: малого (МИС), среднего (СИС), большого (БИС) и сверхбольшого (СБИС). Применение БИС/СБИС и исключение из схемы МИС и СИС существенно улучшает параметры аппаратуры (стоимость, быстродействие, надежность, экономичность по потребляемой мощности и др.). В то же время на пути реализации схем в виде БИС/СБИС могут возникнуть большие экономические трудности, поскольку разработка БИС/СБИС чрезвычайно дорога и требует больших затрат времени (стоимость проектирования достигает сотен миллионов долларов, а время разработки — многих месяцев). Такие затраты могут оправдаться только при больших тиражах выпуска микросхем. Тогда высокая стоимость их проектирования раскладывается на большое число изготовленных и проданных экземпляров (порядка сотен тысяч или более), чего' при проектировании специализированных вычислительных средств обычно не бывает. Противоречие между желательностью и возможностями применения БИС/СБИС в специализированных устройствах и системах вызвало к жизни концепцию программирования структур.
Введение
15_
Благодаря программированию структур для электронной промышленности осуществилась универсализация БИС/СБИС, сделавшая их пригодными для широкого круга потребителей. Это было достигнуто изготовлением промышленным способом некоторых заготовок, которые далее преобразуются потребителем в нужные ему устройства. Заготовки можно производить массовым тиражом, что позволяет выполнять их в виде БИС/СБИС. Естественно, необходима простота доведения заготовок до законченных микросхем, т. е. простота программирования структур БИС/СБИС по спецификациям заказчика. В этом случае применение БИС/СБИС даже для малотиражных изделий становится возможным и эффективным. Таким образом, программируемое^ БИС/СБИС, иными словами, создание программируемых логических интегральных схем, называемых ПЛИС, позволила использовать их там, где ранее приходилось применять МИС/СИС. Более позднее достижение — репрограммируемость микросхем, обеспечившая возможность многократной смены их настройки. Это позволяет изменять функционирование кристалла, т. е. на одном и том же кристалле получать устройства различного назначения, стирая старую конфигурацию его структуры и записывая новую. Для некоторых разновидностей СБИС программируемой логики возможна реконфигурация в оперативном режиме, т. е. без извлечения микросхемы из работающей системы и с высокой скоростью. Оперативное программирование микросхем — путь для новых принципов построения аппаратуры. Из изложенного видно, что программирование — концепция, сыгравшая большую роль в развитии вычислительной техники. В этой концепции можно выделить два аспекта: программирование задач для процессоров с последовательной интерпретацией алгоритма и программирование структур для процессоров (используем здесь тот же термин) с параллельной интерпретацией алгоритма. Между двумя аспектами концепции программирования отнюдь не проходит какая -то разделяющая их граница. Они могут сочетаться, открывая при этом новые горизонты в области создания высокоэффективных средств обработки данных. Более того, уже в начале XXI века можно ожидать появления гибридных вариантов таких средств (так называемых реконфигурируемых компьютеров и динамически реконфигурируемых вентильных матриц). В этих архитектурах оба аспекта программирования в какой -то мере сочетаются. Уже в первых классических ЭВМ с последовательной интерпретацией алгоритмов встречается, хотя и в малой степени, и программирование структур, т. к. выполнение различных операций в разных машинных тактах означает и некоторую перекоммутацию цепей внутри ЭВМ. В прогнозируемых архитектурах реконфигурируемых компьютеров вместо несложных устройств, реализующих элементарные операции, соответствующие простым командам, предполагается использовать так называемые обрабатывающие поля заданной
16
Проектирование систем на микросхемах программируемой логики
размерности, конфигурируемые для выполнения фрагментов алгоритма оптимальным образом с сокращением времени решения и необходимых для него аппаратных ресурсов. Фрагменты алгоритма выполняются последовательно во времени, соответственно им "перестраиваются" и обрабатывающие поля. Теоретический анализ показывает, что в подобных архитектурах быстродействие ЭВМ может быть увеличено на порядки. Со стороны разработчиков ПЛИС ставится вопрос построения FPGA процессоров (FPGA, Field Programmable Gate Array, т. е. вентильная матрица, программируемая пользователем). В таких процессорах применяется динамически репрограммируемая FPGA с быстрой сменой настроек. Алгоритм работы процессора загружается в FPGA аналогично загрузке в память ЭВМ выполняемой программы. После решения части задачи полученные промежуточные данные сохраняются в специально вводимых в схему элементах памяти (триггерах), для решения следующей части (фрагмента алгоритма) эти данные используются в качестве исходных. Таким образом, с помощью нескольких последовательных смен настроек реализуются функции устройства в целом на аппаратных средствах, сложность которых соответствует лишь части устройства (одному контексту, т. е. схеме, для выполнения функций лишь одного яруса разбиения устройства). Наиболее широкое применение ПЛИС находят при построении периферийных модулей компьютеров, в том числе: - интерфейсных средств; - средств сопряжения с аппаратурой управляющих комплексов и систем; - средств защиты информации; - аппаратуры поддержки телекоммуникаций; - аппаратных ускорителей (например, для реалистичной графики, обработки изображений, обработки сигналов). Кроме того, ПЛИС используют для создания высокопроизводительной аппаратуры специализированного назначения, включая: - обработку сигналов в реальном времени; - средства управления производственными процессами; - автономные интеллектуальные датчики; - средства кодирования и декодирования информации в системах связи. Прокомментируем некоторые из отмеченных направлений. Ядро вычислительной системы составляют процессоры и память, которые с точки зрения производителей ИС являются стандартной продукцией. Кроме стандартных частей вычислительная система содержит и некоторые индивидуальные схемотехнические части для сопряжения модулей и управления
Введение
17
ими. Такие индивидуальные части системы ранее приходилось строить с помощью ИС малого и среднего уровней интеграции, применение которых ведет к резкому увеличению числа корпусов и внешнего монтажа. Применение ПЛИС — кардинальный путь реализации систем в целом на интегральных схемах высокого уровня интеграции. Одно из последних достижений в этой области — системы на кристалле SOC (System -On -a -Chip), интегрирующие процессорный модуль, программируемый "традиционным" способом, т. е. путем занесения программы в постоянную или оперативную память, и реконфигурируемую вентильную матрицу для реализации требуемых в конкретном проекте специфических прикладных аппаратных средств. Говоря о системах управления, следует отметить, что они, как правило, содержат большое количество разнообразных датчиков и исполнительных устройств, отличающихся способами представления информации, форматами данных, временными характеристиками потоков данных. Узлы системы часто работают не синхронно с вычислительным ядром. Решение задач сопряжения принципиально требует использования специальных аппаратных средств для буферизации, упаковки и распаковки данных, взаимного оповещения узлов системы о тех или иных событиях. Устройства преобразования формы представления информации (аналого -цифровые и цифроанало говые преобразователи) также реализуются с использованием структурных подходов и часто включают как цифровые специализированные узлы, так и аналоговые подсхемы. Необходимость включения в системы аналоговых компонентов, перестраиваемых в соответствии с требованиями потребителей, вызвала в последние годы разработку и производство программируемых аналоговых и цифроаналоговых интегральных схем (ПАИС и ПЛАИС). Разнообразны возможности применения специализированных (но зачастую перестраиваемых) аппаратных средств для защиты информации. Это могут быть простейшие средства контроля доступа к информации на жестких магнитных и лазерных дисках — так называемые индивидуальные электронные ключи доступа, которые персонально программируются для допущенных пользователей и уносятся ими после сеанса работы. В более ответственных случаях применяется шифрация информации перед записью на диск или передачей в сеть. Преимущество аппаратных средств защиты по сравнению с программными наряду с повышением скорости работы состоит в трудности и даже невозможности скопировать алгоритм шифрации. Реализация коммуникационных протоколов нижних уровней (физического и канального) традиционно решалась с использованием аппаратных средств для формирования битовых потоков и их первичного декодирования, установления соединений абонентов. Применение программируемой логики делает возможным и экономически эффективным выполнение в аппаратной среде интеллектуальной обработки, включая сжаццр, 'буферноащио) панети рование данных и т. д.
18
Проектирование
систем
на
микросхемах
программируемой
логики
Аппаратные ускорители вычислений также не являются чем -то существенно новым. Видеокарты, блоки для реализации задач компьютерной графики и обработки изображений занимают заметное место на компьютерном рынке. Программируемая логика и, особенно, репрограммируемые схемы обеспечивают новые возможности. Во -первых, покупая плату, содержащую одну или несколько ПЛИС (а такие платы производят многие фирмы), и подключая ее к компьютеру стандартным образом, пользователь получает в свое распоряжение как бы несколько различных устройств. Достаточно загрузить в микросхему одну из возможных конфигураций из числа сохраняемых на жестком диске компьютера, чтобы вызвать к исполнению тот или иной алгоритм функционирования периферийного блока, подобно тому, как в "обычной" ЭВМ запускаются различные программы. Во -вторых, пользователь может самостоятельно модифицировать работу такого блока, обеспечивая реализацию специфических функций, не предусмотренных изготовителями специализированных устройств. В связи с этим нельзя не отметить использование ПЛИС при разработке полностью заказных БИС. На первой стадии разработки проект воспроизводят с использованием репрограммируемых компонентов, в которые легко вносить изменения. Затем отлаженная конфигурация импортируется в систему проектирования заказных БИС. Такая методика называется быстрой прототипизацией систем (Rapid System Prototyping), а платы с набором микросхем ПЛИС и средствами подключения к отладочному компьютеру — платами для прототипшации (prototyping boards, development boards). Приведенные примеры далеко не исчерпывают всех возможностей. Более того, в связи с постоянным уровнем роста степени интеграции программируемых БИС снижением их стоимости, развитием средств проектирования область их применения постоянно расширяется. Разработка систем с использованием программируемых БИС невозможна без применения средств и систем автоматизированного проектирования (САПР). Трудно даже представить разработку "ручными" способами устройств с уровнем сложности, эквивалентным сотням тысяч вентилей. Рост уровня сложности требует не только использования современных средств проектирования, но и переосмысления всей технологии проведения проектных работ, включая декомпозицию проекта, планирование и управление работами, параллельную и взаимосвязанную разработку его фрагментов и грамотное объединение фрагментов в целостное устройство. Особо значимыми становятся процедуры отладки и верификации проектных решений. Рынок САПР больших интегральных схем, и в частности программируемых ИС, переживает период бурного развития. В конкурентной борьбе участвуют как фирмы -производители БИС, так и ряд фирм, специализирующихся на разработке систем автоматизированного проектирования. Современной тенденцией развития САПР является интегрирование в одной системе средств для выполнения большинства этапов проектирования, на -
Введение
19
чиная от описания проекта, его моделирования и отладки, вплоть до разработки проектной документации и управления процессом физической реализации. Много внимания уделяется средствам повторного использования проектных решений (Reusing), организации корпоративной проектной деятельности (библиотеки, встроенные системы управления базами данных). Тем не менее, нередки ситуации, когда по тем или иным причинам части проекта подготавливаются в разных проектных средах. Это может быть связано с привычкой отдельных членов коллектива проектировщиков к различным формам представления проектной информации, желанием приобрести от третьих фирм готовые решения, которые исходно создавались на других платформах, не говоря о том, что к частям проекта могут предъявляться специфические требования, требующие привлечения специальных средств синтеза и отладки. Нельзя не признать также оправданной использование различных средств описания на разных уровнях представления проекта. Так, для общей спецификации можно рекомендовать представления на языках системного уровня. Высшие уровни структурной декомпозиции удачно и наглядно представляются в графической форме. Для детального представления фрагментов могут использоваться языки описания аппаратуры или схемное представление (Net List). Разработчики САПР должны учитывать подобные потребности. Поэтому другая тенденция разработок — это обеспечение совместимости различных форм представления в одном проекте, включая возможность импортирования в рабочий проект фрагментов, созданных на разных платформах разными средствами. Несмотря на имеющуюся достаточно острую конкуренцию, фирмы часто заключают соглашения на право взаимного использования программной продукции, а также передачи информации о структуре конфигурационных файлов для программирования микросхем. Важнейшее влияние на весь процесс проектирования оказывает выбор исходного описания проекта. Традиционным способом представления цифровых устройств является графическое. Определяется набор компонентов, изображения которых размещаются на поле чертежа (в рабочем окне дисплея), и прорисовываются их соединения. Близко к графическому примыкает табличное представление, предусматривающее явное задание списка компонентов и списка соединений. Главным недостатком графического и табличного представления проекта следует считать трудоемкость процедуры ввода, трудность поиска ошибок. Представление проекта и ввод информации в форме текста на языке проектирования аппаратуры (HDL, Hardware Design Language) в значительной мере свободно от этих недостатков. Текстовое описание объединяет в себе возможность компактного представления очень сложных логических проектов с легкостью его понимания и большой скоростью его создания, включая относительную простоту поиска ошибок и внесения модификаций в проект. Достоинством описания проекта в тексто -
20
Проектирование систем на микросхемах программируемой логики
вом виде (на языках Verilog, VHDL и др.) является также возможность легкого переноса проекта в различные приборные среды, простота настройки или перенастройки параметров разрабатываемых устройств или их фрагментов, например, разрядности или подмножества реализуемых функций. У разработчика появляются предпосылки расширять возможности языка за счет введения собственных макроопределений, ориентированных на класс реализуемых проектов. Кроме того, языковое описание является эффективным способом перевода программ пользователя, построенных на базе стандартных универсальных языков (например, С), в языки описания аппаратуры и обратно. Уже сегодня имеются возможности автоматического генерирования HDL -программ на базе других формальных представлений. Развитие языковых средств проектирования сближает методы проектирования аппаратуры и программных средств, расширяя возможности разработчиков, и улучшает взаимопонимание между проектировщиками различных подсистем вычислительных комплексов. Нельзя не отметить значительное отставание российских проектных организаций от их западных конкурентов не только и не столько в количестве привлекаемых систем проектирования, сколько в готовности персонала использовать современные технологии проектирования. В частности, до сих пор, в отличие от мировой ситуации, в России подавляющее большинство проектов в области цифровой техники реализуется с использованием схемного (графического) ввода проекта. Авторы надеются, что издание этой книги будет способствовать подготовке специалистов, владеющих современными средствами проектирования, и улучшению ситуации. Структура предлагаемой книги соответствует перечисленным особенностям создания проекта. Глава 1 представляет обзор рынка программируемых БИС. Авторы не стремились детализировать архитектурные и схемотехнические особенности (такие сведения можно найти в работах [4, 17, 24, 27, 31, 35, 45, 53] и др.), хотя в отношении новейших семейств программируемых ИС соответствующие данные приводятся. Больше внимания уделено сравнительной оценке. Содержание главы должно стать руководством для принятия решений о выборе технических средств на ранних этапах выполнения проекта. Материал главы 2 на сегодня не имеет аналогов в общедоступной литературе. Здесь предпринята попытка систематизированного представления не только отдельных проектных процедур применительно к проектированию систем на программируемых микросхемах, но, прежде всего, выявления их взаимосвязи и взаимной обусловленности. Отмечаются отличия современных технологий проектирования от концепций, принимавшихся ранее. Подчеркивается возможность и целесообразность при использовании современ -
Введение
21_
ных САПР встраивать в проект разнородные компоненты и использовать разнообразные формы представления. Глава 3 посвящена изложению наиболее употребительных языков проектирования дискретных устройств. Объединение в одном издании изложения нескольких языков (что не соответствует распространенной практике подготовки индивидуальных изданий для различных языков) позволило рассмотреть их с единых позиций, выделить их общие свойства, но и оттенить различия. Это упростит при необходимости переход проектировщиков на новые языки (в том числе и еще только разрабатываемые) и улучшит взаимопонимание проектных групп, ориентирующихся на разные способы представления. В главе 4 представлено несколько конкретных разработок модулей на ПЛИС. На этих примерах иллюстрируется методология проектирования и особенности выбора реализации в зависимости от системных требований. Кроме того, авторы старались показать читателю, что "проектирование на ПЛИС — это очень просто".
ГЛАВА 1
Элементная база электронных устройств и систем, Архитектура и схемотехника интегральных схем с программируемой структурой 1.1. Общие сведения. Предшественники. Классификация 1.1.1. Вводные замечания. Историческая справка Элементную базу электронной аппаратуры обработки информации и ее хранения составляют интегральные схемы (ИС). В зависимости от характера сигналов, отображающих информацию, средства ее обработки разделяют на цифровые, аналоговые и цифроаналоговые. Классификация цифровых ИС приведена на рис. 1.1. Прежде всего, по признаку ориентации на массовое потребление или на конкретный заказ цифровые интегральные схемы можно разделить на стандартные и специализированные. Стандартные ИС приобретаются потребителем как готовые изделия (off -the -shelf) и производятся массовыми тиражами, что позволяет затрачивать большие средства на их проектирование, поскольку его стоимость раскладывается на большое число изделий. Стандартные ИС традиционных видов имеют практически жесткую внутреннюю структуру, и потребитель не может влиять на характер их функционирования. Специализированные ИС (СпИС), имеющие индивидуальный характер функционирования, приходится в той или иной мере разрабатывать (проектировать) по конкретному заказу. Проектирование ИС — процесс сложный и дорогостоящий, поэтому понятно стремление в максимально возможной степени строить аппаратуру на основе стандартных ИС.
24
Проектирование систем на микросхемах программируемой логики
Стандартные Standard
Специализированные ASIC
Рис. 1.1. Классификация цифровых интегральных схем
К стандартным относятся следующие виды цифровых ИС. - Микросхемы малого и среднего уровней интеграции МИС и СИС, в английской терминологии SSI (Small Scale Integration) и MSI (Medium Scale Integration). Этот класс микросхем представлен многочисленными и хорошо известными с давних пор стандартными сериями элементов. Необходимость использования таких микросхем в отдельных ситуациях сохраняется и сейчас, но построение на них сложных устройств ведет к существенному ухудшению технико -экономических параметров аппаратуры в сравнении с теми, которые могли бы быть получены при применении микросхем высокого уровня интеграции. - БИС/СБИС микропроцессоров и микроконтроллеров, МП и МК (Microprocessors, МР и Microcontrollers, MC). Многочисленные микросхемы МП и МК широко и успешно применяются при решении задач программной реализации алгоритмов.
Глава 1. Элементная база электронных устройств и систем
25_
- БИС/СБИС запоминающих устройств (Memory IC), относящиеся к наиболее массовым ИС с широкой номенклатурой, применяемым в устройствах и системах разного назначения для хранения данных и обмена ими с другими блоками систем. - Интегральные схемы с программируемой пользователем структурой (ИСПС). Эти схемы ознаменовали появление нового перспективного направления в развитии элементной базы электронного приборостроения. Именно эти БИС/СБИС открывают возможности использования микросхем высокого уровня интеграции не только в массовых изделиях, выпускаемых тиражами в сотни тысяч экземпляров, но и в проектах практически любой тиражности. В ИСПС задание схеме определенной внутренней структуры (конфигурирование схемы) выполняется потребителем, изготовитель в этом процессе не участвует и поставляет на рынок продукцию, пригодную для многих покупателей, создающих аппаратуру разного назначения. Рассмотрению ИСПС посвящены основные материалы этой главы. Отметим, что ИСПС имеют в известной мере двойственный характер: для потребителя они являются специализируемыми, а для промышленности — стандартными (со всеми вытекающими из этого выгодами). Это обстоятельство отражено на рис. 1.1 штриховой линией. Кроме указанных в классификации, к стандартным микросхемам принадлежат также аналого -цифровые и цифроаналоговые преобразователи. Специализированные ИС, как уже отмечалось, в той или иной мере проектируются для конкретного заказчика. При этом от заказчика, как правило, требуются затраты значительных средств при длительных сроках разработки СпИС. Для преодоления трудностей создания специализированных ИС был предложен ряд методик их проектирования, соответственно которым существует и несколько разновидностей СпИС (в английской терминологии СпИС обозначаются термином ASIC, Application Specific Integrated Circuit).
(
Замечание
)
Особо следует остановиться на термине ASSP (Application Specific Standard Products), который получает все более широкое распространение. Этому термину не всегда придается одинаковый смысл. В данной книге термин ASSP понимается как синоним термина ИСПС и определяет способ конфигурирования схемы под определенную задачу. Для программирования ASIC нужна разработка специальных фотошаблонов с рисунками межсоединений, требующая больших затрат средств и времени. Применяя для целей конфигурирования программируемые логические интегральные схемы (ПЛИС), можно исключить разработку шаблонов и сравнительно простыми способами получить эффективные средства построения цифровых систем, содержащие набор схем с необходимым функционированием. Такие архитектуры и относятся к классу ASSP, причем первая часть аббревиатуры сохраняет преемственность с термином ASIC, а вторая подчеркивает принадлежность микросхем к стандартной для электронной промышленности продукции.
26
Проектирование систем на микросхемах программируемой логики
Можно без преувеличения сказать, что вопросы реализации проектов на элементной базе высокого уровня интеграции сейчас привлекают к себе основное внимание разработчиков систем и специалистов электронной промышленности. В этом направлении важнейшим достижением явилось появление ИС с программируемой структурой. До их создания специализированные проекты в зависимости от конкретных условий (сложности проекта, его тиражности, требований к техническим и экономическим характеристикам, отведенного для реализации времени и т. д.) традиционно выполнялись в следующих вариантах: - на микросхемах малого и среднего уровня интеграции; - на полузаказных микросхемах (базовых матричных кристаллах); - на заказных микросхемах, спроектированных по методу стандартных ячеек; - на полностью заказных микросхемах. Среди СпИС (ASIC) различают классы полузаказных и заказных ИС. Разновидностями заказных микросхем являются полностью заказные ИС (Fully Custom IC) и ИС, спроектированные методом "на стандартных ячейках" (Standard Cell Logic). Полностью заказные схемы целиком проектируются по требованиям конкретного заказчика. Проектировщик имеет полную свободу действий, определяя схему по своему усмотрению вплоть до уровня схемных компонентов (отдельных транзисторов и т. п.). Для изготовления схемы требуется разработка всего комплекта фотошаблонов, верификация и отладка всех схемных фрагментов. Такие схемы очень дороги и имеют длительные циклы проектирования. Схемы на стандартных ячейках отличаются от полностью заказных тем, что их фрагменты берутся из заранее разработанной библиотеки схемных решений. Такие фрагменты уже хорошо отработаны, поэтому стоимость и длительность проектирования при их использовании снижаются. Для производства схем тоже требуется изготовление полного комплекта фотошаблонов, но разработка шаблонов облегчена. Потери сравнительно с полностью заказными ИС состоят в том, что проектировщик имеет меньше свободы в построении схемы, т. е. результаты ее оптимизации по критериям площади кристалла, быстродействию и т. д. менее эффективны. Наивысших технических параметров добиваются от полностью заказных схем, однако метод стандартных ячеек популярен, т. к. при небольших потерях в технических характеристиках с его помощью можно заметно упростить проектирование схемы. Полностью заказные схемы разрабатываются за время, превышающее время разработки схем методом стандартных ячеек приблизительно в два раза. К полузаказным схемам относятся базовые матричные кристаллы БМК (в английской терминологии MPGA, Mask Programmable Gate Arrays, или LPGA, Laser Programmable (или Laser Personalised) Gate Arrays). В этом случае имеется стандартный полуфабрикат, который доводится до готового из -
Глава 1. Элементная база электронных устройств и систем
27
делия с помощью индивидуальных межсоединений. Реализация требует изготовления лишь малого числа фотошаблонов (для MPGA) или цикла операций разрушения некоторых межсоединений лазерным лучом (для LPGA). Хотя стоимость и длительность проектирования в сравнении с полностью заказными схемами сокращаются в 3—4 раза, результат еще дальше от оптимального. Причина неоптимальности заключается в том, что в матричных БИС (МАБИС) менее рационально используется площадь кристалла (на кристалле остаются неиспользованные элементы и т. п.), длины связей не минимальны, и быстродействие не максимально. Сходство методов проектирования на БМК и стандартных ячейках состоит в использовании библиотек функциональных элементов. Различие — в том, что для схем, проектируемых по методу стандартных ячеек, библиотечный набор элементов имеет более выраженную топологическую свободу. Например, в отличие от БМК, стандартизируются не оба размера ячеек (ширина и высота), а только высота ячеек, длины которых могут быть различными. При проектировании вначале из набора библиотечных элементов подбираются необходимые функциональные блоки, а затем решаются задачи их размещения и трассировки. Существует, естественно, и большое различие в числе шаблонов, которое требуется изготавливать для производства БМК и заказных ИС по методу стандартных ячеек. Методика, а соответственно, и САПР для проектирования по методу стандартных ячеек более сложны, чем для проектирования на основе БМК, которому свойственны более жесткие топологические ограничения. Ограничения вводятся и для метода стандартных ячеек (постоянство высоты ячеек, предопределенность геометрических размеров и положения шин питания, тактирования и др.), но по мере применения более мощных САПР ограничения ослабляются. Длительность изготовления БИС/СБИС методом стандартных ячеек превышает этот же показатель для МАБИС на основе БМК в 1,3—1,8 раза. Таким образом, как показано выше, заказные БИС/СБИС от начала до конца разрабатываются для конкретного проекта. В них нет лишних элементов, оптимально размещены подсхемы и их межсоединения. Свойственная заказным схемам оптимизация БИС/СБИС по конкретному техническому заданию минимизирует площадь кристалла, т. е. удешевляет его, позволяет добиться максимального быстродействия разрабатываемого устройства и т. д. Но, как уже отмечалось, разработка оригинальной БИС/СБИС (ее проектирование) чрезвычайно дорога и требует спроектировать и изготовить полный комплект фотошаблонов (15—20 штук). Стоимость проектирования и изготовления каждого шаблона составляет десятки тысяч долларов. Современный уровень затрат на создание комплекта фотошаблонов для производства БИС/СБИС можно охарактеризовать следующими цифрами: для технологии с минимальным размером 0,18 мкм это 300—350 тыс. долларов, для технологии с минимальным размером 0,13 мкм — около 500 тыс. долла -
28
Проектирование систем на микросхемах программируемой логики
ров, а для минимального размера 0,1 мкм ожидается 750 тыс. долларов или более. Проекты, реализованные на ИС с программируемой пользователем структурой, стали успешно конкурировать прежде всего с двумя первыми из перечисленных выше методов реализации специализированных устройств. В настоящее время проектирование систем и логических устройств все больше перемещается в сторону широкого использования программируемых схем для всех вариантов разработки электронных аппаратных средств. Интегральные схемы с программируемой пользователем структурой (ИСПС) существуют уже около 25 лет и к настоящему времени представлены множеством разнообразных семейств. Программирование структур вначале было применено в программируемых логических матрицах (ПЛМ), программируемой матричной логике (ПМЛ) и базовых матричных кристаллах (БМК). Вслед за ними возникли новые классы более сложных ИСПС, продолжающих линии развития матричной логики и базовых матричных кристаллов: CPLD и FPGA, соответственно. Затем были реализованы ИСПС комбинированной (смешанной) архитектуры, сочетавшие признаки CPLD и FPGA. Позднее удалось разработать ИСПС с аналоговыми и аналого -цифровыми элементами, которые можно обозначить как ПАИС (программируемые аналоговые интегральные схемы).
1.1.2. Базовые матричные кристаллы (вентильные матрицы) В этой книге понятие "программируемые" относится к операциям, выполняемым пользователем, поэтому рассмотрение БМК, строго говоря, не соответствует теме. Действительно, класс БМК выпадает из общего ряда перечисленных ИСПС, поскольку для него программирование микросхем производится не пользователем, а изготовителем, т. е. на предприятии электронной промышленности с помощью сложных технологических процессов. Тем не менее, ознакомление с БМК необходимо, т. к. они являются предшественниками FPGA — важного класса ИСПС — имеют с ними ряд родственных черт и тесно связаны с использованием FPGA в процессе так называемой конвертации проектов. Кроме того, задача проектирования устройств и систем на основе БМК близка к задаче проектирования на ИСПС, поскольку, как правило, в значительной мере ложится на плечи пользователя. Базовые матричные кристаллы называют также вентильными матрицами (ВМ), что соответствует принятому для БМК английскому термину GA (Gate Array). Термин БМК преобладает в отечественной литературе и поэтому используется в этой книге, хотя термин "вентильная матрица" был бы предпочтителен как не противоречащий международной терминологии. Базовые матричные кристаллы известны с 1975 года, когда американская фирма Amdahl Corp применила их в составе высокопроизводительной ЭВМ
Глава 1. Элементная база электронных устройств и систем
29
с целью исключения из нее микросхем малого и среднего уровней интеграции. Результаты оказались удачными, и в последующие годы БМК получили широкое распространение. БМК — кристалл, на прямоугольной поверхности которого размещены внутренняя и периферийная области (ВО и ПО). Во внутренней области по строкам и столбцам (в виде матрицы) расположены базовые ячейки — группы нескоммутированных схемных элементов (транзисторов, резисторов). Элементный состав базовой ячейки при разных вариантах межсоединений элементов допускает реализацию некоторого множества схем определенного класса, каждая из которых соответствует определенной функциональной ячейке (ФЯ). Для выпускаемого в продажу БМК создается библиотека функциональных ячеек, т. е., в сущности, рисунков межсоединений, дающих ту или иную схему. Библиотеки функциональных ячеек БМК насчитывают обычно десятки или сотни типовых узлов, реализованных на одной или нескольких базовых ячейках. В БМК канальной структуры между строками и столбцами базовых ячеек или их компактных групп оставляются горизонтальные и вертикальные свободные зоны (каналы) для межсоединений. В периферийной области кристалла размещаются периферийные ячейки, выполняющие операции ввода/вывода сигналов через контактные площадки, расположенные по краям кристалла. Переход от биполярной схемотехники к МОП -транзисторным схемам сделал возможным более плотное размещение схемных элементов на кристалле. При росте сложности логической части схемы, т. е. числа логических элементов на кристалле, еще быстрее растет сложность межсоединений. Для снижения потерь площади кристалла, затрачиваемой на трассировочные каналы, была разработана бесканальная структура БМК типа "море вентилей" или "море транзисторов", в которой конструкторы отказались от свободных зон кристалла, заранее отведенных для межсоединений. В таких БМК вся внутренняя область плотно заполняется базовыми ячейками, а межсоединения проводятся только там, где это необходимо, причем находящиеся под ними базовые ячейки оказываются в данной конкретной схеме неиспользуемыми. Еще одной разновидностью БМК являются блочные, в которых на кристалле выделяются специализированные области -подматрицы для выполнения заранее определенных функций (логической обработки данных, памяти и др.). Между подматрицами размещаются специальные трассировочные каналы, на периферии подматриц изготовляются внутренние периферийные ячейки для передачи сигналов по межблочным связям. Изобретение базовых матричных кристаллов означало появление нового класса специализируемых БИС/СБИС — полузаказных. Для реализации конкретной полузаказной схемы на основе БМК (такие схемы называют МАБИС, т. е. матричные БИС, или БИСМ, т. е. БИС мат -
30
Проектирование систем на микросхемах программируемой логики
ричные) нужны только шаблоны рисунков межсоединений. Например, при внедрении первых БМК в фирме Amdahl Corp для заказных схем требовалась разработка 13 шаблонов, а для полузаказных МАБИС только трех. Заказные БИС/СБИС существенно дороже полузаказных в проектировании, но затраты на изготовление каждого экземпляра уже спроектированной схемы у них меньше. Затраты на проектирование (подготовку производства) однократны, затраты на изготовление присущи каждому экземпляру микросхемы. Отсюда видны экономически обоснованные области применения заказных и полузаказных БИС/СБИС. Для массового производства, когда стоимость подготовки производства (проектирования) раскладывается на большое число микросхем, в общей стоимости экземпляра микросхемы будет преобладать стоимость его изготовления и целесообразно заказное проектирование. Так проектируются микропроцессоры, микроконтроллеры, микросхемы памяти. Для специализированных средств с меньшими тиражами заказное проектирование чаше всего неприемлемо. В эпоху появления БМК альтернативным вариантом проектирования БИС/СБИС с тираж ностью в десятки тысяч экземпляров стало полузаказное. Позднее возможности упрощения и удешевления процесса разработки БИС/СБИС многократно возросли в связи с появлением новых и эффективных вариантов ИС с программируемыми структурами. БМК выпускаются рядом зарубежных фирм, а также отечественной фирмой "Ангстрем" (семейства 1806ХМ1, 1515ХМ1, 1593ХМ1, 1537ХМ1, 1592ХМ1) и белорусским объединением "Интеграл" (семейства 1532ХМ, 1540ХМ, 1547ХМ, 1574ХМ, 1575ХМ). Для ориентировки укажем некоторые параметры отдельных БМК. Предварительно заметим, что оценкой сложности БМК служит число эквивалентных вентилей (обычно, вентилей 2И -НЕ) в его составе. БМК 1592ХМ1 содержит 100 тыс. эквивалентных вентилей, имеет библиотеку из 230 функциональных ячеек и рабочую частоту 50 МГц. Корпус БМК имеет 132 внешних вывода, из которых пользовательских (функциональных) 100. Диапазон рабочих температур от -60 до +85 "С. БМК G10, G1l, G12 американской фирмы LSI Logic имеют беспрецедентно высокую сложность и содержат до 33 млн. эквивалентных вентилей, а биполярный БМК SH100K фирмы Infinion (ранее Siemens Semiconductor), имеющий до 10 тыс. эквивалентных вентилей и матрицу аналоговых элементов на одном и том же кристалле, работает на тактовой частоте 5 ГГц. В заключение отметим, что для более четкого отражения места БМК в иерархии микросхем полезно дополнить английскую аббревиатуру GA до аббревиатуры MPGA, Mask Programmable Gate Array. Заметим также, что наряду с описанным выше вариантом БМК существуют и БМК с лазерным программированием межсоединений (LPGA, Laser Programmable Gate Arrays). В этих БМК первоначально изготовляются металлизированными дорожками все возможные межсоединения элементов, а
Глава 1. Элементная база электронных устройств и систем
31
при программировании часть соединений под воздействием точно сфокусированных управляемых лазерных лучей разрывается. Такие БМК подобны обычным в том, что для конфигурирования МАБИС потребитель должен обращаться к изготовителю, т. е. на предприятие электронной промышленности, однако сроки и стоимость выполнения заказа в сравнении с обычными БМК оказываются иными. Сроки выполнения заказа сокращаются, что благоприятно с точки зрения ускорения выхода продукции на рынок, однако в настоящее время БМК с лазерным программированием распространены меньше, чем обычные, хотя имеются фирмы, развивающие их производство, в частности фирма Chip Express.
1.1.3. Классификация логических микросхем программируемой логики В приводимой ниже классификации термин "логических" обусловлен отсутствием в ней сведений об аналоговых и аналого -цифровых программируемых микросхемах, для которых классификационные признаки еще не вполне сложились. Под программируемостью здесь и ниже следует понимать только возможность программирования микросхемы пользователем. Аббревиатурой для общего обозначения всех классифицируемых микросхем может быть ПЛИС либо ЦИСПС, т. е. "программируемые логические интегральные схемы" либо "цифровые интегральные схемы с программируемой структурой". Первый вариант действительно известен и поэтому будет использован, хотя он и не совсем точен (например, применительно к широко распространенным схемам, в которые, кроме программируемой логики, входят также встроенные блоки памяти). В классификации для пояснения содержательных положений, естественно, использован русский язык. В то же время для многих аббревиатур сохранены английские варианты, поскольку они уже прочно закрепились в практике и не имеют широко признанных русских аналогов. Микросхемы, программируемые пользователями, открыли новую страницу в истории современной микроэлектроники и вычислительной техники. Они сделали БИС/СБИС, предназначенные для решения специализированных задач, стандартной продукцией электронной промышленности со всеми вытекающими из этого положительными следствиями: массовое производство, снижение стоимости микросхем, сроков разработки и выхода на рынок продукции на их основе. ПЛИС можно классифицировать по многим признакам, в первую очередь: - уровню интеграции и связанной с ним логической сложности; - архитектуре (типу функциональных блоков, характеру системы межсоединений); - числу допустимых циклов программирования;
32
Проектирование систем на микросхемах программируемой логики
- типу памяти конфигурации ("теневой" памяти); - степени зависимости задержек сигналов от путей их распространения; - системным свойствам; - схемотехнологии (КМОП, ТТЛШ и др.); - однородности или гибридности (по признаку наличия или отсутствия в микросхеме областей с различными по методам проектирования схемами, такими как ПЛИС, БМК, схемы на стандартных ячейках). Все перечисленные признаки имеют значение и отображают ту или иную сторону возможных классификаций. Выделяя основные признаки и укрупняя их, рассмотрим классификацию по трем, в том числе двум комплексным, признакам: -
архитектуре;
- уровню интеграции и однородности/гибридности; - числу допустимых циклов программирования и связанному с этим типу памяти конфигурации. В классификации по первому признаку (рис. 1.2, а) ПЛИС разделены на 4 класса. Первый из классов — SPLD, Simple Programmable Logic Devices, т. е. простые программируемые логические устройства. По архитектуре эти ПЛИС делятся на подклассы программируемых логических матриц ПЛМ (PLA, Programmable Logic Arrays) и программируемой матричной логики ПМЛ (PAL, Programmable Arrays Logic, или GAL, Generic Array Logic). Оба эти подкласса микросхем реализуют дизъюнктивные нормальные формы (ДНФ) переключательных функций, а их основными блоками являются две матрицы: матрица элементов И и матрица элементов ИЛИ, включенные последовательно. Такова структурная модель ПЛМ и ПМЛ. Технически они могут быть выполнены и как последовательность двух матриц элементов ИЛИ -НЕ, но варианты с последовательностью матриц И -ИЛИ и с последовательностью матриц ИЛИ -НЕ — ИЛИ -НЕ функционально эквивалентны, т. к. второй вариант согласно правилу де Моргана тоже реализует ДНФ, но для инверсных значений переменных. Заметим, что термин "матрица" обозначает в данном случае не более чем "набор", "множество" и обусловлен тем, что схемные элементы ПЛМ и ПМЛ удобнее всего располагать по строкам и столбцам, обеспечивая тем самым регулярность структуры БИС. На входы первой матрицы поступают т входных переменных в виде как прямых, так и инверсных значений, так что матрица имеет 2т входных линий. На ее выходах формируются конъюнктивные термы, ранг которых не выше т. В дальнейшем для краткости конъюнктивные термы называются просто термами. Число термов не имеет прямой связи с величиной т и оп -
Глава 1. Элементная база электронных устройств и систем
33
ределяется конструктивными параметрами матрицы — числом конъюнкто ров, которое обозначим через q. Первая матрица идентична для обоих подклассов SPLD, т. е. для ПЛМ и ПМЛ. Выработанные термы поступают на вход матрицы ИЛИ. Эти матрицы для ПЛМ и ПМЛ различны. В ПЛМ матрица ИЛИ программируется, а в ПМЛ она фиксирована.
а
б Рис. 1.2. Классификация ПЛИС по архитектурным признакам (а) и уровню интеграции (б)
34
Проектирование систем на микросхемах программируемой логики
Программируемая матрица ИЛИ микросхем ПЛМ составлена из дизъюнк торов, имеющих по q входов. На входы каждого дизъюнктора при программировании можно подать любую комбинацию имеющихся термов, причем термы можно использовать многократно (т. е. один и тот же терм может быть использован для подачи на входы нескольких дизъюнкторов). Число дизъюнкторов в матрице ИЛИ определяет число выходов ПЛМ, которое обозначим через л. Из изложенного видно, что ПЛМ позволяет реализовать систему из п переключательных функций, зависящих не более чем от m переменных и содержащих не более чем q термов. Поэтому функциональные возможности ПЛМ характеризуются тремя цифрами: m, q, n. В ПМЛ выработанные матрицей И термы поступают на фиксированную (непрограммируемую) матрицу элементов ИЛИ. Это означает жесткое заранее заданное распределение имеющихся термов между отдельными дизъюнкто рами. Каждому дизъюнктору придаются свои собственные термы, и если для разных дизъюнкторов окажутся нужными одинаковые термы, придется вырабатывать их в матрице И несколько раз. Однако при этом программи руемость матрицы ИЛИ исключается, что для многих задач в итоге существенно упрощает схему ПМЛ в сравнении со схемой ПЛМ. ПЛМ обладают большей функциональной гибкостью, все воспроизводимые ими функции могут быть комбинациями любого числа термов, формируемых матрицей И. Это полезно при реализации систем переключательных функций, имеющих большие взаимные пересечения по термам. Такие системы свойственны, например, задачам формирования сигналов управления машинными циклами процессоров. Для широко распространенных в практике задач построения "произвольной логики" большое пересечение функций по термам не типично. Для них программируемость матрицы ИЛИ используется мало и становится излишней роскошью, неоправданно усложняющей микросхему. Поэтому ПМЛ распространены больше, чем ПЛМ, и к их числу относится большинство SPLD. Структуры ПМЛ полнее освещены ниже при описании CPLD, составными частями которых они служат. Более подробные сведения о ПЛМ и ПМЛ имеются в ряде источников, в частности в [27]. В сложных программируемых логических схемах CPLD (Complex Programmable Logic Devices) несколько блоков, подобных ПМЛ, объединяются средствами программируемой коммутационной матрицы. В CPLD могут входить сотни блоков и десятки тысяч эквивалентных вентилей. Архитектуры CPLD разрабатываются фирмами Altera, Atmel, Lattice Semiconductor, Cypress Semiconductor, Xilinx и др. Воздействуя на программируемые соединения коммутационной матрицы и ПМЛ, входящих в состав CPLD, можно реализовать требуемую схему.
Глава 1. Элементная база электронных устройств и систем
35
Микросхемы программируемых пользователями вентильных матриц FPGA (Field Programmable Gate Arrays) в своей основе состоят из большого числа конфигурируемых логических блоков ЛБ, расположенных по строкам и столбцам в виде матрицы, и трассировочных ресурсов, обеспечивающих их межсоединения. В архитектуре FPGA явно прослеживается большое сходство с архитектурой MPGA. Разница в том, что FPGA, поступающая в распоряжение потребителя, имеет уже готовые, стандартные, хотя и не запрограммированные, трассировочные ресурсы, не зависящие от конкретного потребителя. Получение конкретного проекта на базе FPGA, как и на основе других ПЛИС, реализуется воздействием на программируемые межсоединения, в ходе которого обеспечивается замкнутое состояние одних участков и разомкнутое — других. Обращаться к изготовителю FPGA при этом не требуется. Архитектуры FPGA разрабатываются фирмами Xilinx, Actel, Altera, Atmel, Agere Systems (ранее Lucent Technologies), QuickLogic и др. В течение первых лет развития ПЛИС они были представлены архитектурами CPLD и FPGA в "чистом" виде. Каждая из этих архитектур имеет свои достоинства и недостатки. Стремление к сочетанию достоинств CPLD и FPGA и рост уровня интеграции БИС/СБИС привели к появлению ПЛИС с комбинированной архитектурой. Класс ПЛИС с комбинированной архитектурой не имеет таких четких границ, как классы CPLD и FPGA, отличается большим разнообразием вариантов и различной степенью близости к тому или иному классическому типу ПЛИС. Не имеет он и общепринятого названия. Тем не менее, представляется целесообразным рассматривать ПЛИС с комбинированной архитектурой как отдельный класс, поскольку принадлежащие к нему схемы трудно квалифицировать как FPGA или CPLD, что подтверждается и разнобоем в названиях, используемых для таких схем различными фирмами. Примером первых ПЛИС с комбинированной архитектурой могут служить микросхемы семейств FLEX8000 и FLEX10K фирмы Altera (FLEX, Flexible Logic Element matriX). Фактическое существование ПЛИС с комбинированной архитектурой и отсутствие для них общепринятого обобщающего названия вносят ощутимые неудобства в процесс составления классификации ПЛИС. Зачастую ПЛИС с комбинированной архитектурой представляются производителем под каким либо конкретным именем, в котором не упоминаются ни CPLD, ни FPGA. Таких имен много, и на их основе не провести какую -либо классификацию. Мы не считаем целесообразным вводить свои термины для обозначения классов ПЛИС, т. к. сознаем, что общепризнанной окажется та терминология, которая исходит от крупнейших фирм -производителей микросхем этого типа. В то же время отнесение той или иной микросхемы в соответствующий раздел описания или справочной таблицы требует определенности в трактовке ее типа. Поэтому ниже наряду с узким применяется и широкое толкование термина FPGA. При этом выделяются "классические" FPGA с их
36
Проектирование систем на микросхемах программируемой логики
канонической архитектурой, а ПЛИС комбинированной архитектуры при необходимости (главным образом, при описании справочных данных) относятся к FPGA в широком смысле этого понятия. Обоснованием такого подхода служит то, что в комбинированных архитектурах черты FPGA обычно проявляются более выраженно, чем черты CPLD. Правда, такой подход заставляет применять к некоторым схемам термины, которые самими производителями не используются (это относится, в частности, к фирме Altera, которая никогда не пользуется термином FPGA), но, по нашему мнению, возникающие разночтения являются следствием только рекламно -маркетин говых соображений. Следует заметить, что авторы, не связанные с фирмой Altera, этого правила придерживаются не всегда и называют некоторые микросхемы данной фирмы термином FPGA [44]. Сказанное выше отображается на рис. 1.2, а объединением классических FPGA и ПЛИС с комбинированными архитектурами общим прямоугольником из штриховых линий. Термин SOPC (System On Programmable Chip), т. е. "система на программируемом кристалле" относится к ПЛИС наибольшего уровня интеграции, содержащим сотни тысяч или даже миллионы эквивалентных вентилей. Такой высокий уровень интеграции достигается только с помощью самых современных технологических процессов (малые топологические нормы проектирования, многослойность систем металлизации и т. д.). На основе прогрессивных технологических процессов обеспечивается одновременно высокий уровень интеграции и высокое быстродействие БИС/СБИС. В результате становится возможной интеграция на одном кристалле целой высокопроизводительной системы. Классификация по уровню интеграции (рис. 1.2, б) дана кратко и отражает, главным образом, ситуацию последних годов — бурный рост уровня интеграции ПЛИС и выделение из них класса "системы на кристалле". В силу связи между уровнем интеграции и архитектурой, классификация не является строгой, и в ней имеется некоторое смешение двух признаков, однако она принята в показанном виде ради соответствия практически сложившимся понятиям. ПЛИС с широким диапазоном изменения уровня интеграции (от простых до содержащих сотни тысяч вентилей) отнесены к "досистемным" в том смысле, что для них не рассматривались вопросы создания целых систем на одном кристалле. ПЛИС мегавентильного уровня интеграции отнесены к "системам на кристалле", обозначаемым далее как SOPC (Systems On Programmable Chip). Заметим, что для программируемых систем на кристалле разные фирмы, как правило, используют свои обозначения (PSOC, CSOC, FIPSOC и т. д.), регистрируемые как товарные знаки. В разд. 1.10 данной главы, посвященном справочным данным об ИС с программируемыми структурами, индивидуальные обозначения фирм сохранены. Для обобщающего термина принято обозначение SOPC, введенное в обиход фирмой Altera.
Глава 1. Элементная база электронных устройств и систем
37_
Класс SOPC делится на подклассы однородных и блочных систем на кристалле. В однородных SOPC различные блоки системы реализуются одними и теми же аппаратными средствами, благодаря программируемоети этих средств. При разработке систем используются так называемые "единицы интеллектуальной собственности" IP (Intellectual Properties), т. е. заранее реализованные параметризируемые мегафункции для создания тех или иных частей системы. Все блоки системы при этом являются полностью синтезируемыми, перемещаемыми и могут располагаться в разных областях кристалла. Создание IP стало важной сферой деятельности многих фирм, предлагающих на рынке широкий спектр разнообразных решений. Заметим, что приобретение IP обычно требует немалых затрат. Используя IP, проектировщик размещает на кристалле нужные ему блоки, которые будем называть soft -ядрами (Softcores). Блочные SOPC имеют аппаратные ядра, т. е. специализированные области кристалла, выделенные для определенных функций. В этих областях создаются блоки неизменной структуры, спроектированные по методологии ASIC (как области типа БМК или схем со стандартными ячейками), оптимизированные для заданной функции и не имеющие средств ее программирования. Такие блоки будем называть hard -ядрами (Hardcores). Реализация функций специализированными аппаратными ядрами требует значительно меньшей площади кристалла в сравнении с реализациями на единых однородных программируемых средствах и улучшает другие характеристики схемы, в первую очередь, быстродействие блоков, но уменьшает универсальность ПЛИС. Снижение универсальности сужает круг потребителей ПЛИС, т. е. тираж ность их производства, что, в противовес факторам, удешевляющим схему, ведет к их удорожанию. Преобладание того или иного из указанных факторов зависит от конкретной ситуации. Кристаллы, содержащие как области ПЛИС, так и области ASIC, в различных источниках именуются по -разному. В сетевом журнале Electronic Design News встречается термин "гибридные", по смыслу близкий к принятому нами термину "блочные" (мы воздержались от термина "гибридные" в силу традиции, по которой этот термин применялся для схем со смешанными цифровыми и аналоговыми сигналами). Сейчас на рынке появилось большое число различных SOPC, и среди них наметились свои подклассы и проблемные ориентации. Не пытаясь детально классифицировать все варианты, целесообразно разделить блочные SOPC хотя бы на две группы: имеющие аппаратные ядра процессоров и не имеющие их. Первые представляют БИС/СБИС по -настоящему универсальные, т. к. содержат полный комплект блоков, характерных для микропроцессорной системы (имеется в виду цифровая часть системы, но следует отметить, что у некоторых SOPC есть и аналоговые блоки для ввода, предварительной обработки и последующей оцифровки аналоговых сигналов). Вторые специализированы и ориентированы на те или иные конкретные приложения. Но
38
Проектирование систем на микросхемах программируемой логики
и здесь нужно отметить наличие у некоторых SOPC второго типа интерфейсных средств для сопряжения с процессором и ОЗУ различных типов, что облегчает построение целостных систем с применением таких SOPC. Классификация по признаку кратности программирования, определяемой типом памяти конфигурации (называемой также теневой памятью), приведена на рис. 1.3.
Р и с . 1.3. Классификация ПЛИС по признакам кратности программирования (по типу теневой памяти)
В однократно программируемых ПЛИС используются элементы с необратимыми изменениями состояний — специальные перемычки или ЛИЗМОП транзисторы. ЛИЗМОП -транзисторы имеют заряжаемые "плавающие" затворы, которые, в общем случае, могут как заряжаться, так и разряжаться. Для однократно программируемых ПЛИС возможности ЛИЗМОП -транзисторов
Глава 1. Элементная база электронных устройств и систем
39
используются лишь частично: для них применяются такие конструкции, в которых отсутствуют возможности стирания записанной информации. В простых ПЛИС первых поколений применялись плавкие перемычки типа fuse. В таких ПЛИС в исходном состоянии имеются все возможные соединения, а для получения требуемой конфигурации схемы часть перемычек разрушается (пережигается). При программировании плавких перемычек возникает определенный процент брака, кроме того, со временем проводимость разрушенной перемычки может восстановиться из -за явления электромиграции в материалах. В течение многих лет велась большая работа по подбору материалов перемычек и усовершенствованию технологических процессов программирования, тем не менее для ПЛИС высокого уровня интеграции схемы с плавкими перемычками не подошли. В однократно программируемых FPGA нашли применение пробиваемые перемычки типа antifuse. В исходном состоянии сопротивления перемычек чрезвычайно велики, а в пробитом достаточно малы. Перемычки очень компактны — их площадь близка к площади пересечения двух дорожек межсоединений. Паразитные емкости перемычек также очень малы. Больших успехов в разработке техники пробиваемых перемычек добились фирмы Actel (перемычки типа ONO), QuickLogic (перемычки ViaLink), Crosspoint Solution (кремниево -аморфные перемычки) и Xilinx (перемычки MicroVia). В третьем варианте (с плавающими затворами) роль программируемых элементов играют однозапгворные ЛИЗМОП -транзисторы, а кристаллы микросхем размещаются в дешевых корпусах, не имеющих специальных окошек для стирания информации (зарядов в плавающих затворах). Для транзисторов с одним (плавающим) затвором и каналом р -типа до программирования затвор не имеет заряда, и транзистор заперт. Введение в затвор заряда электронов приводит к возникновению в транзисторе проводящего канала. Заряд в плавающем затворе сохраняется в течение десятков лет. Память конфигурации с элементами описанного типа называют EPROM -OTP (Electrically Programmable Read -Only Memory — One Time Programmable). Однозатворные ЛИЗМОП -транзисторы компактны и дешевы. Микросхемы с возможностями многократного программирования со стиранием и записью конфигурации в специальных режимах также используют программируемые элементы в виде ЛИЗМОП -транзисторов. От предыдущего варианта эти микросхемы отличаются наличием средств стирания записанной в память информации. Информация в элементах памяти типа EPROM стирается с помощью облучения кристалла ультрафиолетовыми лучами, что отражается в русском термине для этой памяти — РПЗУ -УФ (репрограммируемые запоминающие устройства с ультрафиолетовым стиранием). Кристалл со стертой конфигурацией можно запрограммировать вновь. Стирание конфигурации занимает десятки минут, а число циклов репрограммирования ограничено величина -
4£
Проектирование систем на микросхемах программируемой логики
ми порядка десятков-сотен, т. к. ультрафиолетовое облучение постепенно изменяет свойства кристалла. В репрограммируемых ПЛИС с памятью конфигурации типа EEPROM (Electrically Erasable Programmable Read -Only Memory) стирание старых данных осуществляется электрическими сигналами. Используются двухзатвор ные ЛИЗМОП -транзисторы. Управление процессами в транзисторе производится с помощью двух затворов — обычного и плавающего. При определенных сочетаниях программирующих напряжений на внешних выводах транзистора (плавающий затвор внешнего вывода не имеет) создаются режимы как заряда плавающих затворов, так и их разряда. В русской терминологии память типа EEPROM называют РПЗУ -ЭС (репрограммируемые запоминающие устройства с электрическим стиранием). Электрическое стирание содержимого памяти не требует извлечения микросхем из устройства, в котором они используются. Число допустимых циклов репрограммирова ния хотя и ограничено, но на порядки превышает соответствующие числа для памяти с ультрафиолетовым стиранием информации и составляет 105 -10 6 . Элементы памяти с электрическим стиранием вначале заметно проигрывали элементам с ультрафиолетовым стиранием по площади, занимаемой на кристалле, но быстро совершенствуются и становятся преобладающими для класса ПЛИС со стиранием конфигурации в специальных режимах. К памяти типа EEPROM близка память конфигурации типа Flash. Запоминающие элементы по своему принципу действия у обоих видов памяти идентичны — это ЛИЗМОП с двумя затворами и электрическим стиранием информации. Различия имеются в организации процессов записи и стирания данных и, кроме того, при разработке Flash -памяти достигнут особенно высокий уровень параметров (быстродействия, уровня интеграции, надежности и др.). Разработку Flash -памяти считают кульминационным пунктом десятилетнего развития памяти типа EEPROM. В современных ПЛИС находят применение обе разновидности памяти конфигурации с электрическим стиранием данных. Последний класс ПЛИС по второму признаку принятой классификации — оперативно репрограммируемые. В таких ПЛИС конфигурация задается с помощью загрузки файла в "теневую" триггерную память, т. е. операций, не имеющих какого -либо специального характера. В противоположность предыдущим вариантам для программирования не нужны ни специальные программаторы, ни специальные режимы с повышенными напряжениями и длительностями воздействий на элементы памяти. Память конфигурации — обычная статическая (триггерная), т. е. типа SRAM, Static Random Access Memory. Загрузка памяти производится с высокой скоростью, свойственной статической триггерной памяти, последовательным потоком битов или байтов. Элементом с программируемой проводимостью (режимом "замкнуто разомкнуто") служит обычный МОП -транзистор, управляемый триггером памяти конфигурации (теневой памяти). Состояние триггера задает режим ключевому транзистору. Программирование соединения сводится к установке
Глава 1. Элементная база электронных устройств и систем
41
триггера в состояние 0 или 1. В рабочем режиме триггер сохраняет неизменное состояние. Стирание старой конфигурации и запись новой могут производиться неограниченное число раз путем перезагрузки памяти конфигурации. Триггерная память не является энергонезависимой, и выключение питания ведет к разрушению конфигурации ПЛИС, поэтому при очередном его включении нужно ее восстановить, загрузив в триггеры теневой памяти файл конфигурации из какой -либо энергонезависимой памяти. Загрузка производится введением файла конфигурации в цепочку триггеров теневой памяти и, в зависимости от объема файла, занимает десятки -сотни миллисекунд. Программируемые соединения с триггерной памятью сложнее, чем предыдущие варианты, т. к. для каждого соединения требуются ключевой транзистор, триггер и цепи выборки и сброса/установки для управления триггером. Тем не менее эти ПЛИС в силу ряда достоинств занимают среди БИС/СБИС с программируемыми структурами очень важное место. Возможности оперативной реконфигурации, свойственные ПЛИС с триггерной памятью, получили дальнейшее развитие в архитектурах с динамическим репрограммированием. В ПЛИС с динамическим репрограммированием конфигурация может быть изменена чрезвычайно быстро. Переход от одной конфигурации к другой не требует ввода извне нового файла конфигурации. Несколько вариантов настроек (файлов конфигурации) уже заранее заготовлены и введены в теневую память и постоянно хранятся в ней. Переход с одной конфигурации на другую делается однотактно по команде управляющего сигнала. ПЛИС с динамическим репрограммированием открывают ряд новых возможностей в области построения устройств и систем с многофункциональным использованием аппаратных ресурсов для решения сложных задач при их разбиении на последовательные этапы и реализации разных этапов на одних и тех же быстро перестраиваемых ПЛИС.
1.1.4. Общие (системные) свойства микросхем программируемой логики ПЛИС рассматриваются в настоящее время как наиболее перспективная элементная база для построения цифровой аппаратуры разнообразного назначения. Появляются и новые возможности реализации на программируемых микросхемах аналоговых и аналого -цифровых устройств. Перспективность ПЛИС базируется на ряде их достоинств, к числу которых можно отнести перечисленные ниже, справедливые для ПЛИС вообще, безотносительно к их конкретным разновидностям. - Универсальность и связанный с нею высокий спрос со стороны потребителей, что обеспечивает массовое производство.
42
Проектирование систем на микросхемах программируемой логики
- Низкая стоимость, обусловленная массовым производством и высоким процентом выхода годных микросхем при их производстве вследствие достаточно регулярной структуры. - Высокое быстродействие и надежность как следствие реализации на базе передовых технологий и интеграции сложных устройств на одном кристалле. - Разнообразие конструктивного исполнения, поскольку обычно одни и те же кристаллы поставляются в разных корпусах. - Разнообразие в выборе напряжений питания и параметров сигналов ввода/вывода, а также режимов снижения мощности, что особенно важно для портативной аппаратуры с автономным питанием. - Наличие разнообразных, хорошо развитых и эффективных программных средств автоматизированного проектирования, малое время проектирования и отладки проектов, а также выхода продукции на рынок. - Простота модификации проектов на любых стадиях их разработки. Для новейших вариантов ПЛИС с динамическим репрограммированием структур кроме важных с общих позиций свойств следует назвать и дополнительную специфическую черту: возможность построения на базе динамически репрограммируемых микросхем новых классов аппаратуры с многофункциональным использованием блоков.
1.2. CPLD — сложные программируемые логические устройства 1.2.1. Структура CPLD CPLD — микросхемы высокого уровня интеграции, основными частями которых являются: - PAL (GAL) — подобные функциональные блоки; - система коммутации, позволяющая объединять функциональные блоки в единое устройство, выполненная в виде матрицы соединений. - блоки ввода/вывода. Все составные части CPLD программируются. Обобщенная структура CPLD показана на рис. 1.4. В структурной схеме приняты следующие обозначения. Через ФБ (FB) обозначены функциональные блоки, число которых N зависит от уровня интеграции микросхемы и изменяется в довольно широких пределах. В каждом ФБ имеется п макроячеек МЯ (МС, Macrocells). Функциональные блоки получают входные сигналы от программируемой матрицы соединений ПМС
Глава 1. Элементная база электронных устройств и систем
43
(PIA, Programmable Inerconnect Array). Число таких сигналов т. Выходные сигналы ФБ поступают как в ПМС, так и в блоки ввода/вывода CPLD (IOBs, Input/Output Blocks, БВВ). ПМС обеспечивает полную коммутируемость функциональных блоков, т. е. возможность подавать сигналы с любого их выхода на любой вход.
Рис. 1.4. Обобщенная структура CPLD
Блоки ввода/вывода связаны с внешними двунаправленными выводами I/O, которые, в зависимости от программирования, могут быть использованы как входы или как выходы. Три нижних вывода либо специализируются для подачи на матрицу функциональных блоков сигналов GCK (Global Clocks) глобального тактирования, сигналов GSR (Global Set/Reset) глобальной установки/сброса и сигналов GTS (Global 3 -state Control) глобального управления третьим состоянием выходных буферов, либо эти же выводы могут быть использованы для операций ввода/вывода. Здесь и далее термин "глобальный" применяется для сигналов, общих для всей микросхемы. Число контактов ввода/вывода может совпадать с числом выходов всех ФБ, но может быть и меньшим. В последнем случае часть макроячеек может быть использована только для выработки внутренних сигналов устройства
44
Проектирование систем на микросхемах программируемой логики
(в частности, сигналов обратной связи). Необходимость в таких сигналах типична для структур большинства цифровых устройств. Структура на рис. 1.4 несколько упрощена. Кроме показанных блоков в CPLD могут присутствовать контроллеры для управления операциями программирования непосредственно в системе (In System Programmability, ISP), контроллеры для работы с интерфейсом JTAG и др. Вопросы, связанные с использованием интерфейса JTAG и программированием в системе ISP, рассмотрены в разд. 2.6.
1.2.2. Программируемая матрица соединений В программируемой матрице соединений ПМС (рис. 1.5, а) выходы функциональных блоков ФБ подключаются к вертикальным непрерывным (не сегментированным) линиям, причем каждому выходу соответствует своя линия. Входы ФБ связаны с горизонтальными линиями, пересекающими все вертикальные линии. На пересечениях горизонтальных и вертикальных линий имеются программируемые точки связи, так что любой вход ФБ может быть подключен к любому выходу, чем обеспечивается так называемая полная коммутируемость блоков. Достоинством ПМС рассмотренного типа является малая и предсказуемая задержка коммутируемых сигналов, т. к. для каждого соединения образуется идентичный всем другим канал связи с малым числом программируемых ключей или даже их отсутствием, если передача сигналов из ПМС в ФБ организована так, как показано на рис. 1.5, б. В этом случае программируемых ключей в цепи передачи сигнала нет, программируются только напряжения на нижних входах конъюнкторов, и ФБ получит сигнал от i-й вертикальной линии ПМС (i= 1, 2, ..., m), если транзистор Т, будет заперт, и на нижнем входе i -го конъюнктора будет действовать высокий потенциал логической единицы. Открытый транзистор Т, подключает нижний вход конъюнктора к нулевому потенциалу, создавая на нем и на выходе конъюнктора сигнал логического нуля. Таким образом, задавая триггеру Т, состояние логического нуля, а остальным триггерам состояние логической единицы, можно обеспечить закрытое состояние транзистора Т, и открытое состояние всех других транзисторов, что означает подключение выхода ФБ к i-й вертикальной линии ПМС с образованием так называемого непрерывного соединения. Замкнутые транзисторные ключи имеют, в первом приближении, схему замещения в виде инерционной RC -цепи и вносят основные задержки в процесс распространения сигнала. Программируемые матрицы соединений типа показанной на рис. 1.5, а эффективны в схемах с относительно небольшим числом коммутируемых блоков. При большом их числе, характерном, например, для FPGA, подобные
45
Глава 1. Элементная база электронных устройств и систем
a от ПМС
кФБ
б Рис. 1.5. Схема программируемой матрицы соединений CPLD (а) и схема передачи сигналов из этой матрицы в функциональный блок (б)
46
Проектирование систем на микросхемах программируемой логики
ПМС были бы чрезмерно сложны, поскольку любое соединение образуется с помощью линий связи, проходящих по всей длине и ширине схемы, тогда как очень многие связи локальны и соединяют близлежащие блоки. Поэтому в FPGA системы коммутации строятся иначе — с помощью сегментированных линий связи.
1.2.3. Функциональные блоки CPLD CPLD различных фирм -изготовителей и разной сложности имеют функциональные блоки, в принципиальном отношении мало отличающиеся друг от друга по своей архитектуре и составу элементов. Обобщенная структура функционального блока CPLD показана на рис. 1.6.
Рис. 1.6. Структура функционального блока CPLD
Основными частями функциональных блоков CPLD являются программируемая матрица элементов И (М н ), матрица распределения термов МРТ и группа из нескольких (N) макроячеек. По существу, каждый ФБ представляет собою PAL -подобную структуру с некоторыми отличиями от вариантов, используемых в простых PLD (ПМЛ). Как и в классических PLD, в блоке имеется многовходовая (Wide) матрица М и , вырабатывающая конъюнктивные термы для их использования в последующих частях блока. В классических PLD типа ПМЛ термы жестко распределяются между дизъ юнкторами, формирующими выходные функции в форме ДНФ. Совокупность дизъюнкторов образует фиксированную (не программируемую) матрицу элементов ИЛИ. На рис. 1.7, а показан один из дизъюнкторов (для канала с номером i ) , вырабатывающий функцию, в которую может входить не более 5 термов.
Глава 1. Элементная база электронных устройств и систем
47
a
Разделяемый ЛР
б Рис. 1.7. Схема выработки ДНФ логической функции в простейшем варианте CPLD (а) и логические расширители параллельного и последовательного типов (б)
48
_
Проектирование
систем
на
микросхемах
программируемой
логики
В CPLD матрица элементов ИЛИ чаще всего не является полностью фиксированной, и благодаря введению в схему матрицы распределения термов МРТ, возможно варьирование числа термов в вырабатываемой функции Fi. При этом термы заимствуются у других каналов выработки функций или отдаются им. Проще всего организовать коммутацию термов между соседними каналами. Через соседние каналы путем образования цепочечных связей можно собирать в одном канале много термов (в пределах одного функционального блока). Если термы используются не только дизъюнкторами формирования выходных функций, но и другими элементами ФБ, то и для них МРТ играет роль "раздатчика термов". Схемотехнически в операциях распределения термов по каналам ФБ задействованы как непосредственно цепи коммутации между входами и выходами МРТ, так и логические расширители последовательного и параллельного типов. Последовательные (разделяемые, общие) логические расширители создаются подачей инвертированного значения терма из МРТ данного канала обратно на один из входов матрицы Ми (рис. 1.7, б). Переданный в матрицу Ми терм становится доступным для использования во всех каналах данного ФБ. Если, например, этот терм запрограммирован как q = x1!x2x5!x10, т. е. его инверсия есть !q = !(xl!x2x5!x10) = !xlvx2v!x5vx10, то в том канале, где он будет использован вместе с входными термами канала, например, q1, q2, q3, будет получена функция F= qlvq2vq3v!xlvx2v!x3vx10 = q1vq2vq3v!(xl!x2x5!xl0). Параллельный расширитель позволяет передавать термы одного канала другому. Способность принимать в свой канал термы от соседнего канала обычно означает и возможность приема через него термов и более далеких каналов с образованием цепочки для сбора термов от нескольких каналов (например, в пределах целого функционального блока). Можно, естественно, и отдавать собственные термы или их часть другим каналам (в частности, соседним, а через них и более далеким). Термы от МРТ поступают далее на часть ФБ, называемую макроячейкой (МЯ). Макроячейка содержит в качестве основы программируемые мультиплексоры, триггер (или триггеры) и формирует группу выходных сигналов ФБ в нескольких их вариантах.
(
Замечание
)
Термин "макроячейка" трактуется в разных источниках по -разному. Наряду с указанным определением встречаются и такие, согласно которым макроячейкой называют часть ФБ, содержащую все его последовательно включенные части (группу элементов И, МРТ и все последующие элементы, относящиеся к данному каналу выработки выходных функций).
На рис. 1.8 раскрыта схема одной из идентичных макроячеек ФБ. Прообразом показанной схемы является макроячейка CPLD XC9500 фирмы Xilinx, не имеющая разделяемого (общего) логического расширителя.
Глава 1. Элементная база электронных устройств и систем GSR
49
GCK
Обмен термами с вышележащей макроячейкой
Обмен термами с нижележащей макроячейкой
Рис. 1.8. Пример схемы макроячейки функционального блока CPLD
Программируемость мультиплексоров в этой схеме и всех дальнейших не отображается, т. к. она присуща всем имеющимся в схеме мультиплексорам, если не оговорено противоположное. В зависимости от программирования каждый мультиплексор передает на выход сигнал с того или иного входа. Триггер может программироваться на режимы работы триггера типа D или Т. Заметим, кстати, что при описании микросхем профаммируемой логики триггеры в иностранной литературе чаще всего называют регистрами. Триггеры тактируются положительными фронтами синхросигналов и имеют входы установки S и сброса R. Выходные сигналы ФБ передаются в ПМС и в блоки ввода/вывода БВВ. Аргументы х1, ..., хМ реализуемой макроячейкой функции поступают на матрицу Ми из ПМС. Аргументами для МЯ могут быть как входные сигна -
50
Проектирование систем на микросхемах программируемой логики
лы, поступающие извне через БВВ, так и сигналы обратных связей, подаваемые в матрицу И с выходов макроячеек. На рис. 1.8 входные сигналы матрицы независимо от их характера обозначены через x1, ..., хМ. Входные буферы преобразуют сигналы в парафазные, представляя каждый сигнал его прямым и инверсным значениями, так что в матрице имеется 2т вертикальных линий и образующие ее конъюнкторы имеют по 1т входов. Пять термов из матрицы И поступают на элемент ИЛИ для образования логической функции. Для управления триггером и буферами блока ввода/вывода вырабатываются также термы PTSet, PTClock, PTReset, которые могут быть использованы как сигналы установки, синхронизации и сброса триггера. Терм РТОЕ — программируемый терм управления третьим состоянием буфера БВВ (ОЕ, Output Enable). Всего в матрице И на рис. 1.8 программируются 9N термов. На выходе элемента ИЛИ вырабатывается логическая функция в форме ДНФ ранга не более т. Ее значение передается дальше через элемент сложения по модулю 2, на второй вход которого, в зависимости от программирования мультиплексора 1, может быть подан логический нуль, логическая единица или терм РТ1. В первом случае функция передается без изменений (F= F*), во втором инвертируется (F= !F*), в третьем передается в прямом виде во всех ситуациях за исключением такой, в которой РТ1 = 1. Мультиплексор MUX5 программируется для передачи на выход МЯ либо непосредственно значения функции F (комбинационный выход), либо состояния триггера (регистровый выход). Характер тактирования триггера определяется программированием мультиплексора MUX4, при этом возможно использование глобального синхросигнала (GCK, Global Clock) или сигнала, порождаемого термом PTClock. Асинхронные установка и сброс триггера производятся либо глобальным сигналом (GSR, Global Set/Reset), либо термами PTSet и PTReset, что определяется программированием мультиплексоров MUX2 и MUX3. Сам триггер программируется на режимы триггера задержки (типа D) или счетного (типа Т). Основной выходной сигнал макроячейки поступает как в ПМС, которая может направлять его по любому требуемому маршруту, так и в блоки ввода/вывода.
1.2.4. Блоки ввода/вывода CPLD Блоки ввода/вывода соединяют внешние контакты микросхемы с ее внутренними цепями. Характерным примером такого блока может служить БВВ CPLD типа ХС9500 фирмы Xilinx, показанный на рис. 1.9. Основой БВВ служат два буфера — входной (1) и выходной (2). Чтобы обеспечить постоянство уровней напряжения, поступающих на входной буфер, и их независимость от амплитуды входных сигналов, в схеме вырабатывается
Глава 1. Элементная база электронных устройств и систем
внутреннее напряжение питания VCCINT рующих диодов.
и
51
вводится цепь из двух фикси-
Рис. 1.9. Пример схемы блока ввода/вывода CPLD
Схема программируемой общей точки ПрОТ позволяет пользователю при необходимости получать дополнительный "заземленный" вывод. Дополнительные выводы для системы "заземления" повышают ее качество и тем самым снижают уровень помех в микросхеме. Схема программирования подключаемого резистора ПрР введена для исключения плавающих потенциалов на контактах ввода, когда они не используются в рабочем режиме. В этом случае контакту задается высокий потенциал от цепи VCCINT — R. Резистор R используется и в некоторых других режимах, а в рабочих режимах отключается. Выходной буфер 2 получает сигналы разрешения работы ОЕ и управления крутизной фронта выходного напряжения SRC (Slew Rate Control). Сигнал
52
Проектирование систем на микросхемах программируемой логики
ОЕ с помощью программируемого мультиплексора MUX3 вырабатывается в нескольких вариантах: от терма РТОЕ, получаемого от макроячейки, от любого из глобальных сигналов управления третьим состоянием (GOE1, GOE2), от константы 1 и от константы 0. Глобальные сигналы управления третьим состоянием образуются с возможностью выбора любой полярности исходных сигналов GTS1 и GTS2. Выходные буферы конфигурируются для работы с напряжениями питания 5 или 3,3 В при подключении внешнего источника питания с тем или иным уровнем напряжения (эти цифры относятся к рассматриваемому блоку типа ХС9500, сейчас у блоков ввода/вывода нередко уровни выходных сигналов могут выбираться из многих возможностей, в том числе из таких низких напряжений, как 2,5 и 1,8 В). Согласно принятой нами классификации в класс CPLD попадают ПЛИС с уровнем интеграции 600—20 000 эквивалентных вентилей, числом макроячеек 32—512, числом функциональных блоков 2—16 и временем распространения сигнала от любого входа до любого выхода 5—20 не. Эти CPLD представлены, в частности, такими популярными семействами микросхем, как МАХ7000 и МАХЗОООА фирмы Altera, XC9500 фирмы Xilinx, МАСН1...МАСН5 фирмы Lattice Semiconductor (ранее семейства МАСН выпускались известной фирмой AMD, позднее подразделение этой фирмы Vantis вместе с производством указанного семейства было приобретено фирмой Lattice Semiconductor). В схемах CPLD используется энергонезависимая память конфигурации, причем доминирует память типа EEPROM или Flash. Энергонезависимость памяти конфигурации облегчает засекречивание проектов, т. к. не требует загрузки внешних данных конфигурации, которые доступны для чтения. Содержимое памяти конфигурации на самом кристалле обычно защищается специальным битом секретности, сбросить который можно лишь при стирании всего содержимого памяти.
1.3. FPGA — программируемые пользователем вентильные матрицы 1.3.1. Основные сведения В наиболее типичном варианте FPGA представляет собою микросхему высокого уровня интеграции, содержащую во внутренней области матрицу идентичных функциональных блоков и систему их межсоединений, размещенную между строками и столбцами матрицы, а в периферийной области — блоки ввода/вывода (рис. 1.10, а). Кроме этого варианта существуют FPGA, в которых функциональные блоки расположены по строкам (строковые FPGA), однако рассматривать эти варианты отдельно нет оснований, поскольку существенные черты FPGA остаются одинаковыми для обоих вариантов.
Глава 1. Элементная база электронных устройств и систем
53
БВВ
LUT RG MUXs
б
Области межсоединений a Рис. 1.10. Обобщенная структура FPGA (а) и основные части их функциональных блоков (б)
Все части FPGA (функциональные блоки ФБ, система межсоединений и блоки ввода/вывода БВВ) являются конфигурируемыми или реконфигури руемыми, причем (в отличие от БМК) средствами самих пользователей. Перечисленные части — основа FPGA. Кроме них современные варианты FPGA, как правило, оснащены дополнительными средствами для автоподстройки задержек в системе тактирования (PLL, Phase Locked Loop или DLL, Delay Locked Loop), средствами поддержки интерфейса JTAG и др. При конфигурировании FPGA функциональные блоки настраиваются на выполнение необходимых операций преобразования данных, а система межсоединений — на требуемые связи между функциональными блоками. В результате во внутренней области FPGA реализуется схема нужной конфигурации. Расположенные по краям кристалла блоки ввода/вывода обеспечивают интерфейс FPGA с внешней средой. Блоки ввода/вывода современных FPGA можно программировать на выполнение требований множества стандартов передачи данных (число таких стандартов может доходить до 20). На рис. 1.10, б укрупненно показан состав типичного функционального блока ФБ, в который входят функциональный преобразователь ФП, реализованный в виде программируемого запоминающего устройства (LUT, Look -Up Table), триггер (регистр) и мультиплексоры, играющие роль средств конфигурирования ФБ.
54
Проектирование систем на микросхемах программируемой логики
LUT — наиболее распространенная разновидность ФП в FPGA со статической памятью конфигурации. В схемах FPGA с однократным программированием перемычек находят применение ФП в виде простых логических вентилей (SLC, Simple Logic Cell) и логических модулей на основе мультиплексоров [27].
1.3.2. Функциональные блоки FPGA Табличный ФП типа LUT представляет собою запоминающее устройство, хранящее значения искомых функций, считываемые по адресу -аргументу. Запоминающее устройство с организацией 2m *n имеет m адресных входов и я выходных линий. В таком запоминающем устройстве можно хранить таблицу для считывания я функций от m переменных, поскольку каждый разряд хранимого массива данных можно рассматривать как столбец значений переключательной функции. В память можно записывать любые числа, и, следовательно, разрядные столбцы этих чисел могут воспроизводить любые функции m переменных. Время вычисления результата не зависит от воспроизводимой функции и равно времени считывания слова из памяти. Второй тип ФБ — схема, основой которой служат программируемые мультиплексоры (фирма Actel и др.). В этих ФБ выходная величина описывается некоторой так называемой порождающей функцией, соответствующей использованию всех входов схемы как информационных. При программировании на некоторые входы задаются константы 0 и 1, разные сочетания которых порождают целый спектр возможностей воспроизведения логических функций. Подробнее о таких возможностях говорится в работах [27, 30 и др.]. Третий тип ФБ — так называемые "мелкозернистые", блоки, составленные, чаще всего, из транзисторных пар, выделяемых из цепочек транзисторов с п - и р -каналами. Из таких пар собираются традиционные для КМОП -схем логические элементы, методы синтеза которых традиционны. Типичную структуру ФБ FPGA с триггерной памятью -конфигурации рассмотрим на примере микросхемы семейства Spartan фирмы ХШпх (рис. 1.11). Фирма ХШпх изобрела и активно разрабатывает оперативно реконфигури руемые FPGA, ее продукция занимает 30—40% мирового рынка ПЛИС. После семейства Spartan фирма выпустила семейство Spartan II, но нами для иллюстрации особенностей FPGA выбрано первое из этих семейств, т. к. второе по схемотехнике блоков аналогично семействам Virtex и Virtex E, рассмотренным ниже. По своей структуре микросхемы Spartan продолжают линию развития классических FPGA, популярным представителем которой является семейство ХС4000 той же фирмы. В функциональных блоках этих микросхем логические преобразования выполняются тремя LUT -блоками (функциональными преобразователями ФП) G, F и Н. Преобразователи G и F — программи -
Глава 1. Элементная база электронных устройств и систем
55
руемые запоминающие устройства (ЗУ) с организацией 16x1, способные воспроизводить любые функции четырех переменных, значения которых могут быть переданы на выходы Y и X через мультиплексоры 4 и 6 при соответствующем их программировании (через линии вфхних входов мультиплексоров).
Рис. 1.11. Пример схемы функционального блока FPGA
Заметим, что на рисунках, как и ранее, в обозначениях мультиплексоров не отражена их программируемость, поскольку все они без исключения обладают этим свойством. Через верхний вход мультиплексора 1 и нижний вход мультиплексора 2 функции G и F могут быть поданы на ФП -Н (ЗУ с организацией 8x1) для образования "функции от функций" с целью получения результирующей функции, зависящей от более чем четырех аргументов. К третьему входу ФП -Н подключен входной сигнал HI, так что Н = / ( G , F, HI). Аргументами для ФП -Н, поступающими от мультиплексоров 1 и 2, в зависимости от
56
Проектирование систем на микросхемах программируемой логики
их программирования может быть не только набор G, F, HI, но также наборы G, HI, DIN; SR, HI, DIN; SR, HI, F. Линии DIN и SR используются либо для передачи в триггер непосредственно входных данных и сигнала установки/сброса (Set/Reset), либо как входы ФП -Н. Перечисленные ресурсы логической части ФБ позволяют воспроизводить: - любую функцию с числом аргументов до 4 включительно плюс вторую такую же функцию плюс любую функцию с числом аргументов до трех; - любую функцию 5 аргументов (одну); - любую функцию 4 аргументов и одновременно некоторые функции 6 аргументов, некоторые функции с числом аргументов до 9. Сигналы HI, DIN, SR, ЕС являются для ФБ входными, они подаются на его внутренние схемы через группу из четырех мультиплексоров MUX "4—1" (на рисунке не показаны), к которым подключены 4 линии внешней шины управления С1...С4. Это позволяет распределять сигналы HI, DIN, SR и ЕС по линиям С1...С4 в любом желаемом варианте. Мультиплексоры 3...6 направляют те или иные сигналы данных управления на триггеры 1 и 2. Триггеры могут использоваться для фиксации и хранения выходных сигналов функциональных преобразователей или же работать независимо от них. Входной сигнал ФБ DIN может быть прямым входом для любого триггера. Сигнал HI тоже можно передавать любому триггеру, но через ФП Н, что вносит в цепь его передачи некоторую задержку. Оба триггера имеют общие входы СК тактирования от сигнала К, разрешения тактирования ЕС и установки/сброса SR. Внутренние программируемые цепи в схеме триггера (на рис. 1.11 не показаны) позволяют индивидуально программировать полярность тактирующего сигнала СК. Сигнал ЕС синхронизирован с сигналом СК, сигнал SR асинхронный и для каждого триггера с использованием внутренних цепей триггера программируется как сигнал установки или сброса. Этот сигнал определяет состояние, в котором окажется триггер после процесса конфигурации микросхемы. Конфигурация определяет и характер воздействия на триггеры импульсов GSR (Global SR) и SR при работе схемы.
1.3.3. Блоки ввода/вывода FPGA Блоки ввода/вывода, показанные на примере микросхем семейства Spartan фирмы Xilinx (рис. 1.12), обеспечивают интерфейс между выводами корпуса FPGA и ее внутренними логическими схемами. Каждому выводу корпуса придается блок ввода/вывода БВВ, который может быть конфигурирован как вход, выход или двунаправленный вывод.
Глава 1. Элементная база электронных устройств и систем
57
Рис. 1.12. Пример схемы блока ввода/вывода FPGA
Работа БВВ как выходного блока обслуживается следующими элементами: выходным буфером 1, триггером 1, мультиплексорами 1, 2, 5 и логической схемой ИЛИ. Выводимый сигнал О можно получать в прямой или инверсной форме в зависимости от программирования мультиплексора 2. Этот сигнал может передаваться на выходной буфер непосредственно или сниматься с триггера при соответствующем программировании мультиплексо -
58
Проектирование систем на микросхемах программируемой логики
ра 5. Сигналы Т и GTS (Global Tri -State), согласно логике ИЛИ, управляют переводом буфера в третье состояние, причем активный уровень сигнала Т программируется с помощью мультиплексора 1. Внутренние программируемые цепи триггера (на рисунке не показаны) позволяют изменять полярность тактирующего фронта. Сам буфер имеет программируемые крутизну фронта выходного сигнала и его уровни (КМОП/ТТЛ). Крутизна фронтов в некритичных к скорости передачи цепях снижается для уменьшения уровня помех на шинах питания и земли. Используется так называемый мягкий старт (Soft Start -Up), снижающий помехи при конфигурировании схемы и переходе ее к рабочему режиму, когда одновременно активизируются многие буферы. Первая активизация автоматически происходит с пологими фронтами перепадов напряжения. Затем вступает в силу заданный выбор той или иной крутизны фронтов в зависимости от принятой конфигурации БВВ. Тракт ввода сигналов содержит входной буфер 2, триггер 2, программируемые мультиплексоры 3, 4, 6, элемент задержки ЭЗ и программируемые схемы задания определенных потенциалов выводу, к которому не подключен вводимый или выводимый сигнал (схемы Pull -Up/Pull -Down). Вводимый сигнал в зависимости от программирования мультиплексоров 3 и 4 или поступает непосредственно в систему коммутации FPGA по входным линиям II и 12, или же фиксируется триггером и с его выхода передается в эти линии. Триггеры могут конфигурироваться как тактируемые фронтом или как защелки (D -триггеры, управляемые уровнем). Выбор осуществляется присвоением триггеру соответствующего библиотечного символа. В цепи передачи сигнала на триггер 2 могут быть включены элементы задержки (при передаче сигнала через нижний вход мультиплексора 6). Включение задержки гарантирует необходимые временные соотношения между входными сигналами триггера D и глобальным сигналом тактирования. Входной буфер может конфигурироваться для восприятия входных сигналов с пороговым значением ТТЛ (1,2 В) или КМОП (0,5 U c c ). Выходные уровни тоже конфигурируются, две глобальные регулировки входных порогов и выходных уровней независимы.
1.3.4. Системы межсоединений Для систем межсоединений FPGA по изложенным в разд. 1.2.2 причинам организация непрерывных соединений затруднительна. Для них характерны сегментированные линии связей, составленные из отдельных проводящих отрезков — сегментов. Сегменты соединяются в нужную цепь с помощью программируемых ключей. Выбор длины сегментов должен учитывать, что короткие сегменты затрудняют передачу сигналов на большие расстояния (в длинных связях появится много программируемых ключей, а вместе с ними задержек сигналов и затрат площади кристалла), а длинные сегменты
Глава 1. Элементная база электронных устройств и систем
59_
неудобны для коротких связей. Поэтому система межсоединений имеет, как правило, иерархический характер, и в ней сочетаются различные типы сегментов (основные связи, связи двойной длины, прямые связи для близлежащих функциональных блоков, длинные линии, пересекающие кристалл по всей его длине или ширине). Систему межсоединений FPGA образуют сегментированные линии и переключательные блоки ПБ (PSM, Programmable Switching Matrix). Функциональные блоки имеют квадратные геометрические очертания, их выводы распределены по всем сторонам квадрата для облегчения коммутируемости. Для межсоединений функциональных блоков во внутренней области кристалла имеются три типа связей: одинарной длины, двойной длины и длинные линии. Упрощенная система коммутации FPGA показана на рис. 1.13, а на примере FPGA семейства ХС4000 фирмы Xilinx. На пересечениях вертикальных и горизонтальных каналов расположены переключательные блоки (рис. 1.13, б). В пределах ПБ пересекаются вертикальные и горизонтальные линии связей, и в каждом пересечении имеется цепь из 6 транзисторов для установления того или иного соединения. Сигнал, поступающий в ПБ по какой -либо линии (например, горизонтальной), может быть направлен вверх, вниз или прямо в зависимости от того, какой транзистор будет открыт при конфигурировании FPGA. Возможна и одновременная передача сигнала по нескольким направлениям, если требуется его разветвление. Линии одинарной длины осуществляют, преимущественно, межсоединения соседних или близлежащих ФБ, линии двойной длины огибают переключательные блоки, соседние по отношению к данному, и проходят к следующим, чем облегчается установление более длинных связей. По три длинных линии, пересекающих весь кристалл по длине (ширине), реализуются сверху, снизу и по обоим бокам ФБ. Выводы функциональных блоков пересекают горизонтальные и вертикальные каналы трассировки, проходящие непосредственно около них, и могут программируемыми точками связи подключаться к линиям каналов. Дальнейшее направление сигналов в нужные цепи осуществляется переключательными блоками. Линии двойной длины сгруппированы в пары, имеется по 4 вертикальных и горизонтальных линии, обеспечивающих более быструю и эффективную передачу сигналов на средние расстояния. Длинные линии, рассчитанные на передачу сигналов на большие расстояния и при большой нагрузке, имеют в середине ключ, разделяющий линию на две части ((рис. 1.13, в). Кроме системы коммутации для функциональных блоков FPGA (в частности, семейство Spartan) может иметь дополнительные трассировочные ресурсы, расположенные в виде кольца вне пределов матрицы ФБ. Эти ресурсы позволяют изменять назначение вводов/выводов микросхемы и облегча -
60
Проектирование систем на микросхемах программируемой логики
ют тем самым модификацию проекта, реализованного на FPGA, без влияния на разводку печатных плат, на которых монтируются микросхемы. В число FPGA по принятой классификации попадают микросхемы с числом эквивалентных вентилей около 200—85 000, системными частотами приблизительно 50—80 МГц, числом пользовательских выводов 100—300. Лидером в производстве однократно программируемых FPGA считают фирму Actel, a в производстве FPGA с триггерной памятью конфигурации — фирму Xilinx.
a
б
в
Рис. 1.13. Пример системы коммутации FPGA (а), схема переключательного блока (б) и схема для установления соединений коммутируемых линий (в)
Глава 1. Элементная база электронных устройств и систем
61_
1.4. ПЛИС с комбинированной архитектурой 1.4.1. Структура микросхем семейства FLEX По мере роста уровня интеграции ПЛИС их архитектуры усложнялись, появились архитектуры в той или иной мере сочетающие достоинства CPLD и FPGA. К числу появившихся микросхем с такой архитектурой в первую очередь можно отнести семейство FLEX (Flexible Logic Element matriX) фирмы Altera. Комбинированные архитектуры затем нашли применение в многочисленных БИС/СБИС, в том числе типа "система на кристалле". Микросхемы высшей сложности строят по все более оригинальным архитектурам, не только сочетающим черты CPLD и FPGA, но и обладающим новыми особенностями. На рис. 1.14 приведена структура микросхем семейства FLEX. Микросхемы семейства FLEX имеют функциональные блоки (LABs, Logic Array Blocks) с логическими элементами ЛЭ (LEs, Logic Elements), содержащими функциональные преобразователи ФП табличного типа (LUTs). Функциональные блоки расположены в виде матрицы, между их строками и столбцами проходят горизонтальные и вертикальные трассировочные каналы, что характерно для FPGA. В то же время, трассы в каналах не сегментированы, а непрерывны, что типично для CPLD. Поскольку, как уже отмечалось, в схемах с большим числом функциональных блоков применение единой коммутационной матрицы затруднено, система коммутации имеет два уровня межсоединений — глобальный и локальный. Локальная программируемая матрица соединений (локальная ПМС или ЛПМС) обеспечивает межсоединения логических элементов ЛЭ, из которых составляются функциональные блоки LABs. В состав LAB входят 8 логических элементов. Соединения между блоками LAB обеспечиваются глобальной программируемой матрицей соединений ГПМС, к концам строк и столбцов которой подключаются блоки ввода/вывода (IOBs, Input/Output Blocks). Начиная с семейства FLEX10K, в составе многих микросхем ПЛИС появились встроенные блоки памяти ВВП (EABs, Embedded Array Blocks). Ранее имелась возможность использования в качестве субмодулей памяти лишь тех ресурсов, которые имеются в ФП типа LUT. В схеме на рис. 1.14 показан включенный в середине строк встроенный блок памяти (у большинства микросхем семейства FLEX10K его емкость равна 2048 бит). Такой блок может конфигурироваться как ЗУ с организацией 256x8, или 512x4, или 1024x2, или 2048x1 и использоваться не только для хранения данных, но и как табличный ФП для реализации сложных функций с числом аргументов 8—10 (в частности, на блоках ЕАВ строятся быстродействующие арифметико -логические устройства АЛУ, перемножители 4x4 и т. д.).
Рис. 1.14. Структура микросхем семейства FLEX
Глава 1. Элементная база электронных устройств и систем
63
1.4.2. Логические элементы Логические элементы микросхем семейства FLEX (рис. 1.15) имеют в своей основе 4 -входовые ФП табличного типа (LUT). Особенностью схем, которые могут быть построены из этих логических элементов, является наличие специальных трактов переноса, образуемых цепочками схем переноса СП, и трактов каскадирования, образуемых схемами каскадирования СК с непосредственными и быстродействующими связями между логическими элементами по указанным трактам.
Рис. 1.15. Схема логического элемента микросхем семейства FLEX
ФП с 4 входами имеет 16 бит памяти и для воспроизведения функций 4 аргументов организуется в варианте 16x1. Те же самые 16 бит можно использовать в виде двух табличных ФП с организацией 8x1, реализующих две функции 3 переменных, что отвечает, например, потребностям построения разрядных схем сумматоров с последовательным переносом, разрядных схем некоторых счетчиков и т. д. Длинные цепочки переносов формируются в пределах нескольких LAB. В микросхемах семейства FLEX задержка цепи переноса мала (приблизительно 1 не), что делает целесообразным применение в проектах многих простых схем с последовательными переносами даже для быстродействующих устройств. Цепочка каскадирования используется для получения функций с числом аргументов более 4. Три соседних ЛЭ можно применить для воспроизведе -
64
Проектирование систем на микросхемах программируемой логики
ния частичных функций, а затем с помощью каскадирования сформировать из этих функций окончательный результат (рис. 1.16, a). При получении из частичных функций единой функции многих переменных частичные функции смежных ЛЭ объединяются любой логической операцией над двумя переменными, кроме сложения по модулю 2 и функции равнозначности (на рис. 1.16, а функции обозначены условными значками).
Рис. 1.16. Способы воспроизведения функций многих переменных методами каскадирования (а) и декомпозиции (б) Функции многих переменных можно получить и другим способом, используя обратные связи. При этом сначала вырабатывается некоторая функция
Глава 1. Элементная база электронных устройств и систем
65
четырех переменных, затем она вводится в качестве одного из входов в другой ЛЭ и т. д. В результате вычисляется "функция от функций" с числом аргументов, превышающим 4 (рис. 1.16, б). Синхронный триггер в схеме на рис. 1.15 получает сигналы от схемы управления с входами R (Reset), D (одна из входных линий логического элемента) и ЛУС (четыре линии локальных управляющих сигналов). Один из двух сигналов ЛУС по выбору используется для тактирования триггера, два других вместе с сигналом R и одним из входов D управляют режимами сброса/установки. С помощью программирования можно задавать несколько режимов воздействия на триггер по входам S и R. Все эти режимы (сброс, установка, загрузка в разных вариантах) асинхронны. Триггер может быть использован для фиксации значений выработанных ФП функций или как отдельный элемент с входом от одной из линий D в зависимости от программирования мультиплексора в линии этого входа. Выходной сигнал логического элемента через программируемые мультиплексоры может подаваться в глобальную и локальную матрицы межсоединений в программируемых вариантах комбинационного (с обходом триггера) или регистрового (с триггера) выходов.
1.4.3. Встроенные блоки памяти В состав СБИС семейства FLEX10K были впервые включены встроенные блоки памяти ВВП общей емкостью приблизительно от 6 до 20 Кбит для разных представителей семейства. Отдельные блоки емкостью 2 Кбит были размещены в середине каждой строки матрицы логических блоков. 'Блоки встроенной памяти можно использовать как по прямому назначению, т. е. как статическое ЗУ, так и для реализации ПЗУ и логических схем (табличных ФП повышенной размерности путем эмуляции ПЗУ с помощью загрузки таблицы в ОЗУ). Такие ФП дают более эффективные решения в сравнении с реализациями сложных функций средствами типовых логических блоков. Например, один встроенный блок памяти при организации 256x8 реализует перемножитель 4x4, способный работать на частотах до 50 МГц. Построение такого же перемножителя на типовых ЛБ потребовало бы занять 8 логических блоков, а частота работы перемножителя не превысила бы 20 МГц. Блоки встроенной памяти ориентированы также на организацию буферов FIFO, а в микросхемах FLEX10KE и на построение двухпортовой памяти. Несколько блоков можно объединять для создания" более емкой памяти. Так как блоки памяти расположены на том же кристалле, что и логическая часть схемы, работа с памятью отличается высоким быстродействием. В структуре встроенных блоков памяти (рис. 1.17) кроме модуля памяти RAM/ROM имеется несколько синхронных D -триггеров и программируе -
66
Проектирование систем на микросхемах программируемой логики
мых мультиплексоров. Локальная программируемая матрица соединений ЛПМС получает 22—26 сигналов от строки глобальной матрицы ГПМС. Регистры 1 и 2 программируются для передачи в модуль памяти данных и адресов разной разрядности в зависимости от заданной конфигурации памяти. В блоке с емкостью 2 Кбит разрядность данных может изменяться от 1 до 8, а разрядность адреса от 11 до 8. Запись в память в зависимости от программирования мультиплексоров 4—6 может быть синхронной (от регистров по сигналам тактирования) или асинхронной (непосредственно от ЛПМС).
Рис. 1.17. Структура встроенных блоков памяти в микросхемах семейства FLEX10K
Сигналы управления регистрами 1—3 поступают от глобальной шины управляющих сигналов с возможностью выбора их полярности (мультиплексоры 1—3). Выходные сигналы блока' памяти с помощью мультиплексоров 7—9 могут передаваться как на линии строки, так и на линии столбца ГПМС в тактируемом или асинхронном вариантах.
Глава 1. Элементная база электронных устройств и систем
67
1.5. Основные сведения о СБИС типа "система на кристалле" Уменьшение литографических размеров и другие усовершенствования процессов производства интегральных схем ведут к непрерывному росту уровня их интеграции, который для наиболее сложных СБИС в настоящее время оценивается уже десятками миллионов вентилей. Быстродействие таких СБИС характеризуется рабочими частотами в несколько сотен мегагерц. На кристаллах с подобными параметрами можно разместить законченную систему обработки данных, обладающую к тому же высокой производительностью. В последние годы появились микросхемы, называемые "система на кристалле", "система на программируемом кристалле", "программируемая система на кристалле" и т. д. (обозначаются как SOC, System On Chip, или как SOPC, System On Programmable Chip, или как PSOC, Programmable System On Chip, или как CSOC, Configurable System On Chip и т. д.). Далее в качестве обобщающего термина будет применяться обозначение SOPC. Стратегическая значимость возможности создания законченной системы на одном кристалле очевидна — такая система обладает высокими качественными показателями. Для подавляющего большинства разработчиков создание системы на одном кристалле осуществимо только на основе программируемых СБИС, т. к. заказное проектирование по экономическим соображениям возможно только при массовом производстве. Задача создания высококачественных законченных систем на одном кристалле решается более чем десятком крупных фирм в обстановке активной состязательности. Состязательность выражается как в конкурентном развитии двух направлений, отраженных в принятой нами классификации СБИС программируемой логики, так и в разработке многих разновидностей СБИС в рамках каждого из этих направлений. Представителями первого направления являются SOPC с однородной структурой (с конфигурируемостью всех областей кристалла, с полностью синтезируемыми блоками). Заметим, что однородность здесь понимается только как признак конфигурируемости всех областей кристалла, поскольку эти области содержат однотипные программируемые схемные ресурсы. Исключение составляют лишь некоторые области кристалла (схемы встроенной памяти, которые стали появляться в архитектурах ПЛИС, начиная с семейства FLEX10K, схемы управления тактовыми импульсами типа PLL или DLL и т. п.). В однородных SOPC реализуемые блоки могут размещаться в разных областях и создаваться соответствующим программированием. По своим архитектурным признакам SOPC, как правило, относятся к структурам комбинированного типа, в которых сочетаются признаки CPLD и FPGA с преобладанием при -
68
Проектирование систем на микросхемах программируемой логики
знаков FPGA. В иностранной литературе применительно к однородным в указанном смысле SOPC иногда используют термин generic. SOPC блочного типа включают в себя как программируемые, так и фиксированные области, в которых жестко реализованы блоки с предопределенными функциями — аппаратные ядра (Hardcores, hard -ядра). В других областях кристалла размещается программируемая пользователем часть, чаще всего типа FPGA. В ходе развития блочных SOPC характер и сложность аппаратных ядер изменяются. Вначале аппаратные ядра были относительно простыми, сейчас основным ядром сложных блочных SOPC нередко служит микропроцессор или микроконтроллер. В чем состоят преимущества и недостатки СБИС двух развивающихся направлений? В однородных SOPC уровень интеграции уже позволяет сконфигурировать на кристалле области процессора, памяти и периферийных схем. Современные средства САПР с их приспособленностью к взаимозаменяемым и стандартным решениям позволяют объединять на одном кристалле виртуальные компоненты (soft -ядра, IP) разных разработчиков. Правда, при использовании IP возникает проблема их приобретения, поскольку стоят они достаточно дорого. В однородных SOPC не достигаются предельные быстродействия ядер. Hard -ядра реализуют блоки, полученные методами проектирования заказных схем. Такие блоки в сравнении с их soft -аналогами занимают на кристалле значительно меньшую площадь (в несколько раз), поскольку они не содержат средств конфигурирования и оптимизированы для выполнения заданной конкретной функции. Если принять площадь, занимаемую цифровым устройством, реализованным по методу "на стандартных ячейках", за единицу, то при реализации того же устройства в технологии LPGA (на БМК с лазерным программированием) площадь составит в среднем 3,3 единицы, для технологии MPGA — 1,6 единиц, а для П Л И С — 10—20 единиц. По этим же причинам существенно (на 20—50%) возрастает быстродействие hard -ядер в сравнении с soft -ядрами. В то же время предопределенность функций hard -ядер снижает универсальность микросхемы (как говорят, уменьшает ее функциональную гибкость) и может сузить круг ее потребителей, что с точки зрения экономики является негативным фактором. Hard -ядра фиксированы на площади кристалла, что может затруднять решение задач размещения и трассировки для конфигурируемых областей микросхемы, препятствуя тем. самым реализации максимальных показателей логической емкости и быстродействия для программируемых ресурсов схемы. Во избежание больших потерь универсальности СБИС с hard -ядрами, для этих ядер отбираются только такие функциональные блоки, которые занимают значительную долю рынка. Характерными примерами hard -ядер, по -
Глава 1. Элементная база электронных устройств и систем
69
мимо микропроцессоров и микроконтроллеров, могут служить блоки для реализации интерфейсов различных шин (в том числе шин PCI, VME), схемы поддержки интерфейса JTAG, множительные устройства для систем цифровой обработки сигналов. Заметим, что современные ПЛИС с hard -ядрами имеют архитектурную преемственность с прошлыми разработками. Например, уже несколько лет в состав микропроцессорных систем вводят FPGA, создавая тем самым как бы "островок программируемости среди блоков жесткой структуры. С другой стороны, в составе ПЛИС тоже несколько лет назад стали появляться несложные аппаратные ядра, т. е. участки фиксированной структуры в окружении массива синтезируемой логики. Поэтому говорить о том, что во что встроено, порою можно по -разному. Чем выше процент синтезируемой части микросхемы, тем больший контроль над реализацией получает разработчик проекта, но тем больше блоков при этом теряют оптимальность своих параметров. По поводу перспектив применения двух разновидностей SOPC высказываются разные мнения. Одни считают, что структуры однородного типа с их высокой степенью регулярности схем легче переводятся на новый технологический уровень, поэтому освоение новых технологий для блочных структур должно всегда несколько запаздывать, а замедленный выход продукции на рынок наносит изготовителю экономический ущерб. С другой стороны отмечается, что аппаратные ядра не только гарантируют улучшенные параметры блоков, но и упрощают деловую часть разработки проекта, устраняя для проектировщика взаимоотношения с третьими лицами (поставщиками IP). При этом отпадают лицензионные проблемы, платежи роялти и т. п., и вся техническая поддержка сосредотачивается в руках одного партнера — поставщика микросхем, а все затраты концентрируются в одном показателе (цене микросхемы). Так или иначе, но при решении вопроса о выборе той или иной SOPC приходится учитывать целый комплекс показателей. СБИС программируемой логики образуют динамичный, быстро растущий сектор рынка. Интеграция все большего числа функциональных блоков в одном кристалле сопровождается сокращением площади плат при реализации проектов, повышением быстродействия устройств и систем и их надежности, уменьшением потребляемой мощности и стоимости. Возможность быстрой реконфигурации схем непосредственно в работающем устройстве открывает перспективы не только эффективной отработки прототипа проекта, но и создания принципиально новых структур с динамическим реконфигури рованием и многофункциональным использованием аппаратных средств. При обсуждении вопросов применения SOPC возникает проблема выбора между однородными и блочными архитектурами, т. е. между soft - и hard ядрами. Как отмечалось, в этой сфере имеются различные мнения. Наиболее бесспорной областью использования блочных SOPC являются системы высшего
_70
Проектирование систем на микросхемах программируемой логики
быстродействия, поскольку, как бы соблазнительно ни выглядели рекламные преувеличения, процессоры с рабочими частотами в сотни мегагерц, осуществимые для hard -ядер, находятся за пределами возможностей soft ядер FPGA. В других, менее очевидных ситуациях, оценивается весь комплекс характеристик SOPC. В настоящее время развиваются обе разновидности SOPC, и успехи видны в обоих направлениях. Например, для SOPC типа generic фирмой Altera применено процессорное soft -ядро Nios, размещаемое на кристаллах семейств АРЕХ20К/КЕ и АРЕХП. Уровень интеграции этих кристаллов настолько велик, что процессор занимает лишь малую долю их логических ресурсов, что считается вполне приемлемым. Фирма Xilinx разработала soft -ядро процессора Microblaze для своего семейства Virtex II. Это ядро обладает наивысшей для soft -ядер производительностью и работает на частотах до 125 МГц. Впечатляют успехи разработок hard -ядер процессоров. Эти ядра базируются на RISC -архитектурах процессоров фирм ARM Limited, MIPS Technologies и IBM Microelectronics, работают на частотах до 200 МГц и более, имеют 5—6 -ступенчатые конвейеры, выполняют скалярные операции, совершают большинство операций за один такт, занимают на кристалле площадь 2—3 мм 2 и ориентированы на малое потребление мощности. Стандартность архитектур таких процессоров позволяет пользоваться при их применении обширными инструментами и средствами проектирования, что снижает трудоемкость разработок и уменьшает время выхода продукции на рынок.
1.6. СБИС типа "система на кристалле" с однородной структурой (с полностью синтезируемыми блоками) Однородные SOPC появились в составе продукции фирм Altera (семейство АРЕХ20К), Xilinx (семейство Virtex), Actel (семейство proASIC), Cypress Semiconductor (семейство Delta 39K), Lucent Technologies (семейство ORCA4) и др. Появившиеся семейства, как правило, подвергаются периодическим модификациям с существенным улучшением параметров по мере освоения новых технологических процессов.
1.6.1. Микросхемы семейств АРЕХ20К/КЕ, АРЕХП Микросхемы семейств АРЕХ20К/КЕ принадлежат к первым промышленным SOPC с конфигурируемостью всех областей кристалла. Память конфигурации — статическая (триггерная). Микросхемы АРЕХ20К имеют напряжение питания ядра 2,5 В и уровни сигналов ввода/вывода 2,5; 3,3 и 5,0 В, а микросхемы АРЕХ20КЕ напряжение питания ядра 1,8 В, а уровни сигналов ввода/вывода 1,8; 2,5; 3,3 и 5,0 В.
Глава 1. Элементная база электронных устройств и систем
71
Общий план микросхем показан на рис. 1.18. Архитектура микросхем называется Multicore, в ней сочетаются функциональные блоки типов LUT и PAL. Кроме того, микросхемы имеют встроенные блоки памяти ESB (Embedded System Blocks), содержащие также средства для реализации ДНФ логических функций (что и объясняет термин "системные" в названии блоков). Схемы управления тактированием
Схемы 4 -входовых ФПтипаШТ -
Шины быстрых
I -
'
Схемы многофунк циональной встроенной памяти
Рис. 1.18. Общий план кристалла микросхем семейства АРЕХ20К/КЕ
LUT -блоки этого семейства заимствованы от описанных ранее микросхем FLEX10K, блоки типа SOP (Sum -of -Products) — от семейства МАХ7000, также описанного выше, блоки памяти близки по структуре к блокам семейства FLEX 1 ОКЕ с емкостью 2 Кбит. Дизъюнктивные нормальные формы удобны для получения функций управляющей логики, в частности, адресных декодеров и автоматов с памятью. Табличные блоки хорошо приспособлены к реализации сложных алгоритмов обработки сигналов и к построению узлов и устройств, содержащих большие количества триггеров. Совмещение обоих типов блоков в одном кристалле обеспечивает эффективность схемных решений, характерных для проектов разных типов. Этому же способствует наличие на кристалле встроенных блоков памяти высокого быстродействия, организуемых в виде RAM, двухпортовой RAM, FIFO с широким диапазоном программируемых длины и ширины, а также блоков ассоциативной памяти (у микросхем АРЕХ20КЕ). Сложность кристаллов семейства APEX обусловила увеличение в них числа иерархических структурных уровней. Наименьшей структурной единицей логического типа является логический элемент ЛЭ (LE, Logic Element), no -
72
Проектирование систем на микросхемах программируемой логики
добный логическому элементу семейства FLEX10K/KE (см. рис. 1.15), допускающий, в зависимости от решаемых задач, несколько стандартных конфигураций (работу в нормальном, арифметическом или счетном режиме) и создание цепей переноса и каскадирования (рис. 1.19). В нормальном режиме воспроизводятся большинство логических функций и, при каскадировании логических элементов, дополнительные функции, в частности дешифраторы с большим числом входов. В этом режиме LUT -блоки работают
Вход каскадирования
Выход каскадирования а Вход переноса
Вход каскадирования " "
Выход каскадирования
Выход переноса
Рис. 1.19. Пояснения к способам конфигурации логических элементов семейств APEX и FLEX (a — нормальный режим, б — арифметический)
Глава 7. Элементная база электронных устройств и систем
73
как функциональные преобразователи с четырьмя входами. В арифметическом режиме LUT -блок конфигурируется как два трехвходовых функциональных преобразователя, один из которых служит для выработки функций переносов, а другой для функций трех аргументов, реализуемых в разрядных схемах устройства. В счетном режиме (на рисунке не показан) к схеме, соответствующей арифметическому режиму, добавляются элементы, обеспечивающие функции разрешения счета, реверса, сброса и загрузки счетчика. Десять логических элементов объединяются в логический блок ЛБ (LAB, Logic Array Block), имеющий свой уровень межсоединений — локальную матрицу соединений ЛМС (LI, Local Interconnect). Шестнадцать логических блоков и блок ESB объединяются в мегаблок (MegaLAB). Мегаблоки также имеют свой уровень межсоединений, что не только увеличивает общие ресурсы трассировки кристалла, но и позволяет получать в пределах мегаблока некоторые функционально законченные части системы. Функциональная автономность мегаблоков, когда она возможна, упрощает модификацию системы и закладывает возможности локальной оптимизации схемных решений. Мегаблоки коммутируются между собой по системе глобальной матрицы соединений ГМС (Fast Track Interconnect), линии которой непрерывны и проходят по всей длине (ширине) кристалла. К концам линий ГМС подключаются элементы ввода/вывода ЭВВ (IOЕ, Input/Output Elements). К системе межсоединений относятся также цепи переноса и каскадирования. Схемы ввода/вывода отличаются высоким быстродействием и поддерживают более 10 стандартов входных и выходных сигналов. Контакты ввода/вывода разделены на восемь банков, имеющих свои напряжения питания и способных, независимо от других банков, поддерживать те или иные стандарты ввода/вывода. Элементы ввода/вывода обеспечивают совместимость с шиной PCI (64 разряда, 66 МГц). Большое внимание уделено схемам тактирования кристалла, реализована схема передачи синхросигналов с малыми фазовыми сдвигами, блоки микросхем могут использовать до 8 глобальных синхросигналов. Схемы управления параметрами синхросигналов выполняют функции минимизации их задержек и фазовых рассогласований (ClockLock), умножения частоты в некоторых блоках схемы, что позволяет разводить по кристаллу сигналы тактирования меньшей частоты (функция ClockBoost), функции ClockShift (введения специальных программируемых фазовых сдвигов в линии передачи сигналов). Микросхемы семейства АРЕХ20К/КЕ имеют программируемое управление по координатам скорость/мощность. Когда максимальное быстродействие не требуется, можно снижать мощность потребления до 56% с помощью соответствующей опции турбо -бита для блоков ESB. Неиспользуемые блоки ставятся в режим глубокого снижения мощности. Типичный диапазон числа эквивалентных вентилей для микросхем семейства АРЕХ20К/КЕ от 60 тыс. до 1,5 млн., емкость встроенной памяти составляет от 32 768 до 442 368 бит, число пользовательских выводов от 204 до 808,
_74
Проектирование систем на микросхемах программируемой логики
внутренняя рабочая частота достигает значений приблизительно 200 МГц. В новом семействе АРЕХ20КС с медными проводниками и топологической нормой 0,15 мкм быстродействие схем повышается на 25—35%. Для микросхем семейства АРЕХ20К/КЕ разработано soft -ядро процессора Nios — RISC -процессора с изменяемой архитектурой, конфигурируемым файлом регистров, 16 -разрядными командами и шиной данных на 16 или 32 разряда по выбору проектировщика. Производительность процессора может достигать 50 MIPS. Микросхемы семейства АРЕХ20КЕ имеют настолько высокий уровень интеграции, что процессор Nios занимает небольшую долю их логической емкости. Например, для микросхемы ЕР20К200Е ядро процессора Nios занимает 12% логических ресурсов кристалла. При стоимости кристалла около 80 долларов (в единичных поставках) на ядро процессора приходится приблизительно 10 долларов, а при массовых поставках стоимость снижается приблизительно в два раза. Для микросхемы ЕР20К1500Е с 1,5 млн. вентилей доля расхода ресурсов на процессор Nios снижается до 1,5%. Изменяемая архитектура ядра Nios, как и других разработанных soft -ядер, придает SOPC высокую степень гибкости. Однако быстродействие soft -ядер не достигает максимальных значений и в сравнении с быстродействием аппаратных ядер остается умеренным. Для ядра Nios применима разработанная ранее для семейства FLEX10K довольно обширная периферия: таймеры -счетчики, UART, широтно-импульс ные модуляторы, контроллеры дисковой памяти, динамических ОЗУ и др. Применимы и LPM (библиотечные параметризируемые модули), использовавшиеся ранее в микросхемах FLEX10К. Появление семейства АРЕХII — новое значительное достижение в развитии однородных SOPC. На основе технологии с топологическими нормами 0,15 мкм при напряжении питания ядра 1,5 В и многослойной системе медных межсоединений получены кристаллы с уровнем интеграции до 4 млн. типичных эквивалентных вентилей (90К логических элементов), внутренней встроенной памятью в диапазоне от 425 984 до 1 532 712 бит и высокоскоростными каналами связей, в том числе дифференциальных. Большое число каналов связи с пропускной способностью в 1,6 Гбит/с и 624 Мбит/с позволяет получать на кристалле быстродействующую систему из множества блоков, либо включать кристалл в более сложную систему в качестве быстродействующего блока. В настоящее время выпускаются 5 представителей семейства АРЕХП с диапазоном числа типичных эквивалентных вентилей от 600 тыс. до 4 млн.
1.6.2. Микросхемы семейств Virtex, Virtex E, Virtex II Семейства Virtex и Virtex E с триггерной памятью конфигурации появились в составе продукции фирмы Xilinx в конце 1998 года. Как и микросхемы АРЕХ20К, они имеют мегавентильный уровень интеграции и встроенные
Глава 1. Элементная база электронных устройств и систем
75_
блоки памяти. Системная частота их работы достигает 200 МГц. Напряжение питания ядра у схем Virtex 2,5 В, у схем Virtex E 1,8 В, для уровней внешних сигналов возможен выбор нескольких значений. Тенденция снижения питания ядра микросхемы при сохранении широкого выбора уровней внешних сигналов имеет общий характер. По мере снижения топологических норм, напряжения питания ядер, как правило, проходят следующую последовательность цифр: 3,3; 2,5; 1,8; 1,5 В, и это касается всех фирм производителей БИС/СБИС. Общий план кристалла семейств Virtex и Virtex E показан на рис. 1.20.
Рис. 1.20. Общий план кристалла микросхем семейств Virtex и Virtex E
Основной частью микросхем является матрица конфигурируемых логических блоков КЛБ (CLB, Configurable Logic Block), окруженная программируемыми блоками ввода/вывода БВВ (IOBs, Input/Output Blocks), и иерархическая система коммутации. КЛБ коммутируются системой локальных связей с генеральной матрицей соединений ГМС (GRM, General Routing Matrix) и горизонтальными и вертикальными каналами трассировки. Каждый КЛБ входит в так называемый VersaBlock (рис. 1.21), в котором имеются локальные ресурсы соединений для коммутации КЛБ с ГМС, встроенные обратные связи в пределах самих КЛБ и прямые пути соединении между горизонтально -смежными КЛБ. VersaBlock может реализовать небольшие части проекта, объединяемые далее средствами коммутации. Микросхемы имеют также средства коммутации, называемые VersaRing, для создания межсоединений в периферийной области, программирование которых, в частности, облегчает размещение внешних выводов по входам/выходам схемы, реализованной во внутренней области и, тем самым, облегчает и адаптацию логического проекта к существующей разводке печатной платы. Основная трассировочная нагрузка приходится на горизонтальные и вертикальные каналы основных связей, соответствующих строкам и столбцам матрицы КЛБ. На эти каналы сигналы из КЛБ выходят через переключательные матрицы ГСМ, способные соединять линии горизонтальных и вер -
76
Проектирование систем на микросхемах программируемой логики
тикальных каналов. От ГСМ к ГСМ по всем четырем направлениям сигналы могут передаваться через линии разных типов. Имеются линии одинарной длины (между смежными ГСМ), линии протяженностью в 6 КЛБ с доступом к ним на концах и в середине и длинные линии, с протяженностью по всей высоте кристалла для вертикальных линий и по всей его ширине для горизонтальных.
Прямые связи с соседними КЛБ
Рис. 1.21. Схема VersaBlock микросхем семейств Virtex и Virtex II
К матрицам ГСМ подключены также блоки памяти по 4 Кбит и 4 схемы DLL для управления фазовыми и частотными параметрами синхросигналов в разных областях кристалла. Схемы DLL (Delay Locked Loop) или PLL (Phase Locked Loop), называемые в последнее время также схемами типа Clock Manager, стали важными блоками быстродействующих БИС/СБИС. Дело в том, что из -за задержек в цепях передачи синхросигналов по кристаллу они "разъезжаются" во времени, и в разных местах кристалла уже не являются синхронными. Понятно, что это создает проблемы взаимодействия элементов, питаемых такими несинхронными тактирующими сигналами. Схемы DLL и PLL представляют собою следящие системы с фазочувствительным элементом на входе. Фазочув ствительный элемент сравнивает корректируемую синхропоследовательность с эталонной и, при наличии сигнала рассогласования этих последовательностей, изменяет фазу корректируемого синхросигнала, чтобы компенсировать задержки в цепях его передачи. Наличие в БИС/СБИС блоков DLL или PLL позволяет заметно повысить частоту синхросигнала по сравнению с той частотой, которая могла бы быть реализована в схеме без DLL или PLL.
Глава 1. Элементная база электронных устройств и систем
77
Основа КЛБ — логическая ячейка ЛЯ (LC, Logic Cell). В каждом КЛБ размещены 4 логических ячейки, организованные в две идентичные секции (Slices). Логическая ячейка (рис. 1.22) по своей структуре подобна рассмотренным ранее типовым элементам FPGA и содержит 4 -входовой LUT -блок с возможностью организации цепи переноса и триггер.
Вход переноса Рис. 1.22. Схема логической ячейки кристаллов Virtex и Virtex E
Выходная величина вырабатывается одновременно в двух вариантах — как комбинационная, снимаемая непосредственно с выхода LUT -блока, или как регистровая, снимаемая с выхода триггера. Дополнительно к 4 базовым логическим ячейкам КЛБ имеет логическую схему для выработки функций от 5 и 6 аргументов в виде комбинации выходов от логических ячеек. Ресурсы LUT -блоков могут использоваться и в качестве обычных RAM. Каждый LUT -блок дает 16 бит памяти с организацией 16x1. В секции может быть образован блок памяти с организацией 16x2 или 32x1 для обычного RAM или 16x1 для двухпортового. LUT -блок может быть сконфигурирован также как 16 -разрядный регистр сдвига. Триггер типа D может программироваться как защелка или как триггер, управляемый фронтом, и принимать данные с выхода LUT -блока или непосредственно от входов секций, и имеет программируемые входы установки и сброса с несколькими режимами. Блоки встроенной памяти (BlockSelectRam+) топологически расположены в двух столбцах вдоль вертикальных краев внутренней области кристалла,
7В
Проектирование систем на микросхемах программируемой логики
высота одного блока соответствует четырем КЛБ. Каждый блок представляет собой синхронную двухпортовую RAM емкостью 4 Кбит с независимыми управляющими сигналами для каждого порта (рис. 1.23).
Рис. 1.23. Внешняя организация блока встроенной памяти микросхем семейств Virtex и Virtex E
Разрядности данных, передаваемых через порты, могут программироваться независимо, причем для примитивов, генерируемых библиотекой блоков SelectRam+, разрядности могут быть заданы в вариантах 1, 2, 4, 8, 16, чему соответствуют разрядности шины адреса 12, 11, 10, 9, 8. Блоки RAM имеют также специальные средства межсоединений для связей как с КЛБ, так и с другими блоками RAM. Сигналы и шины портов А и В имеют следующий смысл: - CLK — тактирующий сигнал; - EN — сигнал разрешения, отсутствие которого сохраняет состояния выходов блока в прежнем состоянии, запись данных запрещена; - WE — разрешение записи, при его активности сигналы с входной шины данных записываются в память по адресу с шины адресов, а вновь записанные данные появляются на выходной шине данных. Пассивный уровень сигнала задает операцию чтения по адресу с шины адресов, и содержимое адресованной ячейки появляется на выходной шине данных; - RST — сбрасывает выходной регистр -защелку порта, не влияя на ячейки памяти и на операции записи в другом порту; - ADDR #:0 — шина адреса, выбирает ячейку памяти для операций чтения или записи. Разрядность порта задает требуемую разрядность этой шины соответственно приведенным ранее вариантам конфигурации памяти;
Глава 1. Элементная база электронных устройств и систем
79
- DI #:0 — входная шина данных, передает значения записываемых в память данных соответственно заданной разрядности порта; - DO #:0 — выходная шина данных, отображает содержимое адресованной ячейки памяти. При записи отображает новые данные. Разрядность шины соответствует заданной разрядности порта. - -активность или L -активность сигналов CLK, EN, WE, RST могут быть заданы независимо для каждого порта. При работе памяти действуют правила разрешения конфликтов при одновременном обращении портов к одной и той же ячейке. Новое семейство Virtex II должно значительно расширить возможности создания SOPC. Уровень интеграции доведен в нем до 10 млн. системных вентилей, число слоев межсоединений до 8, используются медные проводники, усовершенствованы конфигурируемые логические блоки. Активные цепи межсоединений увеличивают скорость распространения сигналов и предсказуемость их задержек. Микросхемы содержат до 3,5 Мбит памяти RAM/ROM, имеют умножители размерностью 18x18 бит, широкий набор интерфейсов ввода/вывода и 122 980 Кбит памяти в составе LUT -блоков. Существует возможность выбора внутрикристальных резисторов -терминаторов с автоматическим согласованием их номиналов с внешними эталонными резисторами (Digitally Controlled Impedance Technology). Предусмотрена возможность удаления с кристалла областей soft -ядер и размещение на их местах соответствующих hard -ядер с сохранением всех имевшихся межсоединений и всех функциональных возможностей блоков. Фирма Хilinx сообщила о разработке быстрейшего в мире soft -ядра процессора Microblaze, работающего на частоте до 125 МГц, имеющего 32 -разрядные шины для команд и данных в Гарвардской архитектуре. Процессор предназначен для использования в сложных системах (сетевых, телекоммутационных и т. п.) на основе семейства Virtex И. Для совместной работы с процессором Microblaze созданы также soft -ядра периферийных устройств (арбитров, UART, контроллеров прерываний, интерфейсных схем для связи с внешними ЗУ типов Flash и SRAM и т. д.).
1.7. СБИС типа "система на кристалле" с блочными структурами (с аппаратными ядрами) 1.7.1. Вводные замечания Блочные SOPC — самое новое направление в развитии "систем на кристалле". Согласно оценкам специалистов, их реализация становится особенно эффективной при топологических нормах производства, достигнутых лишь
80_
Проектирование систем на микросхемах программируемой логики
в последнее время. К первым продавцам блочных SOPC без процессорных ядер относятся фирмы Lucent Technologies (впоследствии Agere Systems), QuickLogic. Блочные SOPC с ядрами процессоров появились впервые в продукции фирм Triscend и Atmel, затем к ним присоединились фирмы Altera, Cypress, Xilinx и др. Следует заметить, что между SOPC с конфигурируемостью всех областей кристалла и SOPC с аппаратными процессорными ядрами расположена многочисленная группа микросхем с более простыми hard -ядрами, начало которым положили кристаллы со встроенными ядрами интерфейса PCI. В этой книге основное внимание будет уделено SOPC с процессорными hard -ядрами, именно наличие встроенного аппаратного микропроцессора или микроконтроллера будем считать признаком истинной "системы на кристалле". В составе блочных SOPC с процессорными ядрами можно выделить четыре основные части: процессор, FPGA, интерфейс между ними и интерфейс с внешней средой. В первую очередь, именно интерфейсы различаются друг от друга в SOPC разных фирм, и, главным образом, это определяет специфику тех или иных микросхем. Различия, имеющиеся во внутренней организации процессоров и FPGA, вторичны и при проектировании на основе SOPC проявляют себя в меньшей степени.
1.7.2. SOPC с блочной структурой, не содержащие ядер процессоров Появившиеся в последние годы блочные SOPC с процессорными ядрами ознаменовали создание в полном смысле универсальных "систем на кристалле". Этим SOPC предшествовали "усеченные" варианты с более простыми аппаратными ядрами, ориентированные на специализированные приложения. Такие SOPC оказались полезными для многих, в том числе и самых новых, проектов. В силу этого существование "заполненной" зоны между БИС/СБИС с простейшими и самыми сложными ядрами обуславливается не только временными причинами технологического характера, но и устойчивыми потребностями системотехников. Кстати говоря, с точки зрения технологических возможностей (и связанных с ними параметров БИС/СБИС) считается, что реализация простых аппаратных ядер становится эффективной при топологической норме производства не более 0,25—0,35 мкм, а реализация сложных — при норме не более 0,18 мкм. Блочные SOPC со специализированными ядрами выпускаются несколькими фирмами. К числу пионеров этого направления относятся фирмы Lucent Technologies, QuickLogic, Cirrus Logic, Cypress Semiconductor и др. Фирмой Lucent Technologies первая микросхема OR3TP12 типа FPSC (Field Programmable System Chip) выпущена в 1998 году на основе известной серии микросхем ORCA3. Схема содержит массив программируемой логики с мат -
Глава 1. Элементная база электронных устройств и систем
81
рицей логических ячеек 18x18 емкостью до 60 тыс. эквивалентных вентилей и аппаратное ядро PCI (64 разряда/66 МГц). В следующей микросхеме OR3LP26B был удвоен объем программируемой логики FPGA и увеличена пропускная способность межсоединений тракта "ядро -FPGA", а в микросхеме ORT4622 ядро PCI заменено полностью дуплексным 4 -канальным синхронным интерфейсом с пропускной способностью 622 Мбит/с. Последующий вариант ORT8850, основанный на разработках серии ORCA4, продолжил линию развития микросхемы ORT4622, имея 8 каналов и пропускную способность 850 Мбит/с. Продукция фирмы Lucent Technologies ориентирована на рынок интерфейсных схем для систем коммуникаций. Микросхемы этой фирмы отличаются высоким схемотехнологическим уровнем, в частности, тем, что имеют минимальный размер 0,13 мкм при 7 слоях металлизации. Фирма QuickLogic разработала семейство блочных SOPC под названием ESP (Embedded Standard Products, в других источниках эта же аббревиатура расшифровывается как Embedded Standard Platforms) с подсемействами QuickRAM, QuickPCI, QuickPC, QuickDSP, QuickSD. По своим классификационным признакам семейство ESB принадлежит к классу ASSP. Конфигурируемые части указанных микросхем построены с использованием программируемых перемычек ViaLink типа antifuse, что придает этим частям известные свойства: однократность программирования, но при этом высокую компактность межсоединений, высокое быстродействие схем, повышенную стойкость к воздействиям температуры и радиации, защищенность от рассекречивания проекта. Кристаллы QuickRAM (1998 г.) содержат FPGA и встроенные блоки памяти емкостью до 25 374 бит с программированием организации как RAM, ROM, FIFO при способности работать на частотах до 160 МГц. Микросхемы QuickPCI имеют FPGA и ядро PCI (ядро PCI фиксировано и, тем самым, определяется как аппаратное, но, что своеобразно, также выполнено с использованием перемычек antifuse). Для ядер PCI возможен выбор вариантов на 32 и 64 разряда с частотами 33, 66 и 75 МГц. Для связи ядра PCI с другими частями схемы введен набор буферов FIFO. Схемы QuickPC имеют аппаратно реализованный канал Fibre Channel со скоростью передачи данных до 2,5 Гбит/с и 32 -разрядным синхронным системным интерфейсом с буферами FIFO. Кристаллы QuickDSP базируются на специальных арифметических ячейках ECU (Embedded Computational Units), выполняющих однотактно операции умножения 8x8 с задержкой 4,53 не, 16 -разрядное сложение с задержкой 2,54 не, умножение с накоплением с задержкой 7,07 не. На основе таких ячеек строятся схемы реализации алгоритмов цифровой обработки сигналов. В микросхемах QuickSD комбинируются быстродействующие FPGA и блоки SERDES (Serializer -Deserializer), выполняющие преобразования данных из
82
Проектирование
систем
на
микросхемах
программируемой
логики
параллельной формы в последовательную и наоборот. Три представителя семейства имеют в своем составе 6 или 8 каналов SERDES и от 334 до 658К системных вентилей. Каждый порт SERDES может передавать последовательные данные со скоростью до 1 Гбит/с. Две программируемых схемы синхронизации каналов SERDES могут тактировать передачи, если синхросигналы не содержатся в самих данных. Имеются два программируемых блока PLL и от 24 до 36 блоков двухпортовой SRAM, а также 12—18 блоков QMAC умножения -накопления, которые в большой степени ускоряют вычисления при цифровой обработке сигналов. Результирующая скорость передачи составляет 8 Гбит/с, чего достаточно для большого числа применений. Логика FPGA может выполнять операции кодирования и декодирования информации, балансировки дифференциальных сигналов по постоянному току, обрамления пакетов данных, управления памятью и др., в том числе реализацию некоторых интерфейсов. Каждый канал SERDES может быть запрограммирован на выработку последовательных кодов для I, 4, 7, 8, 10 или 20 линий параллельной шины, что позволяет блоку принимать сигналы с многоразрядных внутренних шин и расщеплять их для максимального использования ресурсов кристалла. В качестве примера области применения микросхем QuickSD можно указать интерфейс с дисплеем высокого разрешения. Поток данных для такого дисплея обычно передается через многоразрядный кабель. При наличии скоростного последовательного канала кабель можно исключить и заменить более дешевым последовательным интерфейсом. При этом возможности микросхем QuickSD способны удовлетворить требования систем с самыми современными дисплеями. Внутренние передачи "регистр -регистр" производятся на частотах до 600 МГц, частота передач "кристалл -кристалл" свыше 225 МГц. Фирмой Cypress Semiconductor разработаны блочные SOPC семейства PSI (Programmable Serial Interface), содержащие блоки SERDES -SONET, канал Fibre Channel, гигабитный интерфейс сети Ethernet и др.
1.7.3. SOPC семейства FPSLIC фирмы Atmel Начнем ознакомление с SOPC, имеющими ядра процессоров, с семейства FPSLIC (Field Programmable System -Level Integration Chip) фирмы Atmel, разработка которого была признана лучшим проектом США в области электроники в 1999 году. До выпуска семейства FPSLIC (микросхем АТ94К) фирмой Atmel уже производились как хорошо известные микроконтроллеры типа AVR, так и FPGA семейства АТ40К, которые и были объединены в одном кристалле FPSLIC. Кроме них, к основным блокам этого кристалла относится статиче -
Глава 1. Элементная база электронных устройств и систем
S3
екая память SRAM. FPGA получает от процессора команды и исходные данные и передает ему выработанные результаты. В архитектуре микросхем FPSLIC (рис. 1.24) представлены следующие блоки: О процессорное ядро AVR и его периферия; - память программ и память данных; - FPGA AT40K с логической емкостью от 10 до 40К эквивалентных вентилей. Используется Гарвардская архитектура процессора, обеспечивающая повышение быстродействия ядра вследствие совмещения во времени процессов выборки и исполнения команд. В блоке FPGA размещена стандартная структура микросхем АТ40К с различной логической емкостью у разных представителей семейства, способная работать на системных частотах до 100 МГц и имеющая собственные блоки встроенной памяти емкостью от 2048 до 18 432 бит. Структура микросхем АТ40К, в основных чертах, типична для классических FPGA, хотя и имеет некоторые оригинальные особенности. Квадратная область, занимаемая FPGA на кристалле, от края до края плотно заполнена идентичными логическими ячейками. Помимо этих ячеек в области FPGA реализованы повторители (Repeaters), сегментированные программируемые связи и блоки RAM. Повторители соединяют смежные сегменты в горизонтальных и вертикальных трассах передачи сигналов, размещенных через каждые четыре ячейки по обеим координатам. На пересечениях рядов, содержащих повторители, находятся блоки RAM емкостью 32x4 бита каждый. В трактах трассировки выделяются локальные линии связи и экспресс линии. В экспресс -линиях повторители включены реже, чем в локальных, а длина их сегментов больше. Особенностью ячеек FPGA является их восьмиугольная форма. У квадратных ячеек, если они в дополнение к другим ресурсам трассировки имеют прямые связи с соседними ячейками, четыре направления передач: вверх, вниз, влево, вправо (в американских фирменных справочниках направления часто соответствуют странам света и обозначаются как северное: N, южное: S, западное: W и восточное: Е). Восьмиугольные ячейки имеют, кроме ортогональных, и диагональные связи (NW, NE, SW, SE). Увеличенные возможности межсоединений на уровне прямых связей и увеличенные ресурсы программируемых связей внутри самих ячеек позволяют строить некоторые блоки (например, особо быстродействующие умножители), не прибегая к использованию шинных ресурсов трассировки. В каждую из ячеек входят два табличных функциональных преобразователя (LUТ), триггер типа D и полтора десятка программируемых мультиплексоров, направляющих сигналы по тем или иным путям внутри самой ячейки и
Рис. 1.24. Структурная схема микросхем семейства FPSLJC
Глава 1. Элементная база электронных устройств и систем
65^
на ее входы и выходы, а также создающих некоторые дополнительные функциональные возможности для самой ячейки. Функциональные преобразователи воспроизводят функции трех переменных (одних и тех же для обоих LUT) и могут быть объединены для выработки функций четырех переменных. Логические ячейки имеют несколько стандартных конфигураций: для воспроизведения функций четырех переменных (режим Synthesis), двух функций трех переменных (режим Arithmetic), двух функций от аргументов АВ, С и D (один из трех аргументов образован как конъюнкция двух входных переменных, режим имеет название DSP/MPL), режим с конфигурацией ячейки в виде схемы разряда счетчика (режим Counter) и режим реализации мультиплексора "2 -1" с буфером (режим Tri -State/MUX). Такой набор возможных режимов ячейки обеспечивает удобство разработки проектов с интенсивными вычислениями, таких как системы цифровой обработки сигналов (ЦОС), криптографические системы и другие мультимедийные проекты, для которых характерен большой объем вычислений, выполняемых в реальном масштабе времени. На основе блока FPGA реализуются и общеупотребительные интерфейсные функции (UARTs, PCI и др.). В FPGA имеются 6 внешних и 2 внутренних линии тактирования, внутренние линии получают сигналы от ядра AYR. FPGA имеет собственную статическую память (FreeRAM) с временем доступа 10 не и несколькими вариантами возможной организации: синхронной или асинхронной, одно - или двухпортовых RAM, буферов FIFO и др. Система межсоединений в ядре FPGA иерархична и включает в себя локальные шины, экспресс -шины и прямые связи ячеек с ближайшими соседями. В связях имеются программируемые вентили, с помощью которых формируются шины с тремя состояниями. Интерфейс между FPGA и AVR (рис. 1.25) предусматривает для FPGA 16 входных линий декодированного адреса от AVR и 16 выходных линий запросов прерываний с различными приоритетами для AVR. Четырехразрядный адрес из адресного пространства процессора декодируется для образования 16 линий адресации объектов в FPGA. Данные передаются по 8 -разрядной шине данных процессора. Таким образом, устройствам, реализованным в FPGA и имеющим адреса в адресном пространстве ввода/вывода AVR, придается возможность иметь собственный запрос прерывания. Кроме того, AVR посылает в FPGA сигналы стробов чтения и записи, управляющие двунаправленной шиной данных, образованной линиями экспресс -шин. Видно, что ядро AVR взаимодействует с устройствами, созданными в FPGA, подобно тому, как обычно процессор взаимодействует с внешними устройствами. Для функций заказной периферии, которая может быть реализована в FPGA, существует макробиблиотека.
86
Проектирование систем на микросхемах программируемой логики 16 линий декодированного адреса
Рис. 1.25. Схема интерфейса между блоками FPGA и AVR микросхем семейства FPSLIC
Другой аспект взаимодействия FPGA и AVR состоит в их общем доступе к двухпортовой памяти SRAM с временем доступа 15 не (рис. 1.26). Между FPGA и процессором имеется 36 Кбайт двухпортовой памяти. Часть ее, имеющая емкость 20 Кбайт при организации 10Кх1б, всегда используется со стороны процессора как память программ, другая часть емкостью 16
линий
адреса
16
' ^ WE FPGA ^ CLK FPGA 8
^-
-разрядный --
Память данных от 4К x 8 до16Кх8
WEAVR -— REAVR CLK AVR -^
8
s
/
1 «^
. ^Л f
/ /
Записываемые данные
AVR
Читаемые данные
' /
^
/
ЗП/ЧТ данных
Рис. 1.26. Схема доступа блоков FPGA и AVR к общей двухпортовой памяти
Глава 1. Элементная база электронных устройств и систем
87
4 Кбайта — всегда как память данных. Остальные 12 Кбайт могут полностью или частично присоединяться к памяти программ или памяти данных (с дискретностью 2Кх16 или 4Кх8, соответственно). Устройства, реализованные в FPGA, имеют непосредственный доступ к памяти данных, запрещаемый при загрузке конфигурации. Для записи и чтения в память используются экспресс -шины системы коммутации FPGA, расположенные на соответствующем краю матрицы. Со стороны FPGA вырабатываются только сигналы разрешения записи WE и отсутствуют сигналы разрешения чтения, которое всегда разрешено. Одновременно с операциями записи или чтения со стороны FPGA могут производиться и такие же операции со стороны процессора, поэтому при появлении одного и того же адреса от FPGA и AVR должен быть специально предусмотрен арбитраж. В большинстве случаев он заключается в ограничении доступа в память со стороны FPGA при возникновении конфликта. Важная особенность микросхем FPSLIC — способность к реализации концепции кэш -логики (Cache Logic), впервые введенной фирмой Atmel. Кэш логика — новое достижение в области разработки адаптивных систем, она позволяет полностью или частично конфигурировать систему "на лету" без потери имевшихся данных и нарушения работы ее неизменяемой части. Данные, которые были выработаны к моменту перестройки той или иной части системы, сохраняются. Та часть аппаратуры, в которой в данный момент идет обработка информации, представлена "нормальной" схемой соответствующей конфигурации, созданной в FPGA, а пассивная часть аппаратуры представлена данными, сохраняемыми в недорогих устройствах памяти. В итоге экономно выполняются требуемые преобразования. Когда активизируются новые операции, новая конфигурация записывается поверх старой. Как известно, решаемые задачи обработки информации в конечном счете раскладываются на множество стандартных операций низшего иерархического уровня (сдвиги, сложения, умножение, мультиплексирование и т. п.). Ясно, что каждая из подобных функций может быть использована многократно в разных обстоятельствах, причем в одно и то же время активна только малая часть операторов, соответствующих этим функциям. Исключая избыточность и контролируя условия появления каждой операции, можно так организовать систему, что сложные функции будут воспроизводиться с помощью небольшого числа простых схем и, следовательно, на недорогих средствах программируемой логики. Так, например, в одном из известных примеров требуемая задача решалась обычным способом с использованием 10 тыс. вентилей, а на основе программируемых схем и концепции кэш логики потребовались всего 2 тыс. вентилей и запоминание неизменной в данное время информации в дешевой системной памяти. Концептуально различают предопределенную и динамическую кэш -логику. Первая подразумевает использование предопределенных функций и макро -
j?8
Проектирование систем на микросхемах программируемой логики
сов, хранимых во внешней энергонезависимой памяти, заранее отработанных и имеющих уже сгенерированные битовые потоки конфигурирования. Выполнением этих функций управляют средства самой кэш -логики или процессор. Вторая разновидность кэш -логики должна определять требуемые функции с их размещением и трассировкой и генерировать битовые потоки настройки в реальном масштабе времени. Такой режим ассоциируется с работой адаптивных систем, и пока существует только как концепция, не имеющая законченной физической реализации. Перспективы применения кэш -логики расцениваются -как достаточно широкие. Ее применение снижает сложность программируемой части аппаратуры и, в конечном счете, повышает ее надежность (вследствие сокращения числа физически существующих схемных компонентов), снижает потребляемую мощность и стоимость. Предполагается применение кэш -логики, в первую очередь, в портативной аппаратуре, системах компьютерной графики и т. п. Разработчики таких сложных СБИС, как FPSLIC, подчеркивают, что подобные микросхемы не следует рассматривать как просто микроконтроллеры с программируемой пользователем периферией, поскольку для таких относительно ограниченных целей могут найтись и более простые решения. Для микросхем типа FPSLIC и им подобных эффект достигается прежде всего при достаточно полном использовании их новых функциональных возможностей.
1.7.4. SOPC блочного типа фирмы Triscend Важное место на рынке SOPC занимает корпорация Triscend, концентрирующая свои усилия исключительно на производстве микросхем типа "система на кристалле". Корпорация Triscend выпустила первую в мире промышленную SOPC с аппаратным процессорным ядром в то время, когда семейство FPSLIC только анонсировалось фирмой Atmel (апрель 1999 г.). Сейчас архитектуры SOPC фирмы Triscend принадлежат к числу наиболее популярных. В микросхемах семейства Е5 фирмы Triscend на одном кристалле объединены: 8 -разрядное ядро микроконтроллера "турбо 8032", совместимое со ставшей в последнее время фактическим стандартом архитектурой 8051 фирмы Intel, FPGA, системная шина, память типа SRAM и несколько вспомогательных периферийных устройств. Для следующего семейства А7 фирмой Triscend взято 32 -разрядное процессорное ядро ARM7TDM1. На рис. 1.27 показаны основные блоки микросхем семейства Е5 и их взаимосвязи. В состав микросхем этого семейства входят следующие основные блоки: П Микроконтроллерное ядро с длительностью командного цикла 4 такта и тактовыми частотами до 40 МГц, что обеспечивает производительность
Глава 1. Элементная база электронных устройств и систем
89
до 10 MIPS. В состав ядра входит ОЗУ (SRAM) с организацией 256x8, три таймера -счетчика, сторожевой таймер, блок прерываний на 12 запросов, два указателя данных и универсальный асинхронный приемопередатчик UART. О FPGA с числом логических ячеек типа "LUT+триггер" от 256 до 3200 для различных микросхем семейства.
Рис. 1.27. Структура микросхем семейства Е5 фирмы Triscend
90
Проектирование систем на микросхемах программируемой логики
- Высокопроизводительная конфигурируемая системная шина CSI (Configurable System Interconnect) с двумя 8 -разрядными шинами данных (одной для чтения, другой для записи), 32 -разрядной шиной адреса и адресными селекторами. Шина связывает FPGA, периферийные узлы и ядро микроконтроллера при скорости передач до 40 Мбайт/с, поддерживает возможность обращения к внешним устройствам, режим циклического арбитража и реализацию циклов ожидания. Адресные селекторы обеспечивают доступ к устройствам, реализованным в блоке FPGA, и при этом на создание адресных дешифраторов не расходуются ресурсы программируемой логики. - Блок программируемых портов ввода/вывода ПВВ (РIO, Programmable Input -Output port) с программированием обычных или повышенных выходных токов. Схемы слежения за состояниями входов при отсутствии воздействия на них активного источника сигнала удерживают на входах последнее активное состояние. Возможно индивидуальное переключение линий ввода/вывода в энергосберегающий режим. Уровни сигналов совпадают со стандартом ТТЛ. - Блок сопряжения с внешней памятью для подключения к SOPC внешних запоминающих устройств с параллельным или последовательным интерфейсом и емкостью до 256Кх8. Возможно дополнительное увеличение числа адресных линий до 32 и доступ через блок сопряжения с внешней памятью к внешним устройствам с внутренней системной шины. - Контроллер прямого доступа к памяти DMA (Direct Memory Access) с двумя независимыми каналами и скоростью передач до 40 Мбайт/с. Передачи сопровождаются подсчетом циклической контрольной суммы. Возможен режим передач "память -память" для организации обмена между различными областями памяти без участия процессорного ядра. П Блок интерфейса JTAG для загрузки памяти конфигурации и исполняемой программы и для внутрисхемной отладки устройств, содержащих микросхемы семейства Е5. Через этот блок возможен доступ к внутренней системной шине и адресуемым регистрам кристалла. О Специальный блок внутренней отладки (In -System Debugging Hardware Breakpoint Unit), позволяющий задавать различные условия останова при выполнении микроконтроллером программы. Одновременно можно задавать две точки останова. В состоянии останова разрешен доступ к адресуемым регистрам кристалла через JTAG -интерфейс. П Блок управления энергопотреблением для индивидуального задания энергосберегающих режимов устройствам системы и линиям портов ввода/вывода. В режиме снижения мощности для всех устройств ток, потребляемый кристаллом, не превышает 50 мкА. О Система тактирования с внешним или внутренним задающим генератором. При применении внутреннего генератора его частота задается внешним кварцевым резонатором.
^0
Проектирование систем на микросхемах программируемой логики
П Высокопроизводительная конфигурируемая системная шина CSI (Configurable System Interconnect) с двумя 8 -разрядными шинами данных (одной для чтения, другой для записи), 32 -разрядной шиной адреса и адресными селекторами. Шина связывает FPGA, периферийные узлы и ядро микроконтроллера при скорости передач до 40 Мбайт/с, поддерживает возможность обращения к внешним устройствам, режим циклического арбитража и реализацию циклов ожидания. Адресные селекторы обеспечивают доступ к устройствам, реализованным в блоке FPGA, и при этом на создание адресных дешифраторов не расходуются ресурсы программируемой логики. П Блок программируемых портов ввода/вывода ПВВ (РЮ, Programmable Input -Output port) с программированием обычных или повышенных выходных токов. Схемы слежения за состояниями входов при отсутствии воздействия на них активного источника сигнала удерживают на входах последнее активное состояние. Возможно индивидуальное переключение линий ввода/вывода в энергосберегающий режим. Уровни сигналов совпадают со стандартом ТТЛ. П Блок сопряжения с внешней памятью для подключения к SOPC внешних запоминающих устройств с параллельным или последовательным интерфейсом и емкостью до 256Кх8. Возможно дополнительное увеличение числа адресных линий до 32 и доступ через блок сопряжения с внешней памятью к внешним устройствам с внутренней системной шины. О Контроллер прямого доступа к памяти DMA (Direct Memory Access) с двумя независимыми каналами и скоростью передач до 40 Мбайт/с. Передачи сопровождаются подсчетом циклической контрольной суммы. Возможен режим передач "память -память" для организации обмена между различными областями памяти без участия процессорного ядра. П Блок интерфейса JTAG для загрузки памяти конфигурации и исполняемой программы и для внутрисхемной отладки устройств, содержащих микросхемы семейства Е5. Через этот блок возможен доступ к внутренней системной шине и адресуемым регистрам кристалла. О Специальный блок внутренней отладки (In -System Debugging Hardware Breakpoint Unit), позволяющий задавать различные условия останова при выполнении микроконтроллером программы. Одновременно можно задавать две точки останова. В состоянии останова разрешен доступ к адресуемым регистрам кристалла через JTAG -интерфейс. О Блок управления энергопотреблением для индивидуального задания энергосберегающих режимов устройствам системы и линиям портов ввода/вывода. В режиме снижения мощности для всех устройств ток, потребляемый кристаллом, не превышает 50 мкА. П Система тактирования с внешним или внутренним задающим генератором. При применении внутреннего генератора его частота задается внешним кварцевым резонатором.
Глава 1. Элементная база электронных устройств и систем
91
1.7.5. SOPC блочного типа фирмы Altera К числу фирм, выпускающих блочные SOPC, в 2000 году подключилась и Altera. Производство SOPC этой фирмой началось с рассмотренного ранее в разд. 1.5 семейства АРЕХ20К типа generic (с soft -ядрами). Позднее появились блочные SOPC с hard -ядрами, которые базировались на разработках фирм ARM Limited и MIPS Technologies. Аппаратные ядра процессоров этих фирм вместе с soft -ядром Nios образовали семейство встроенных процессоров Excalibur. Процессорные ядра ARM и MIPS оптимизированы для эффективной интеграции с программируемой логикой семейства АРЕХ20К/КЕ. Реализация в виде hard -ядер позволяет достичь производительности процессоров в сотни миллионов операций в секунду Общий план микросхем Excalibur (рис. 1.28) показывает основные блоки кристалла, в котором роль процессора играют ядра ARM или MIPS. Кроме них на кристалле находятся оперативная память RAM, кэш -память, интерфейсные схемы для связи с внешними устройствами и последовательный порт UART.
Рис. 1.28. Общий план кристалла микросхем семейства Excalibur
Микросхемы семейства Excalibur с аппаратными процессорными ядрами позволяют создавать системы с высокой производительностью и умеренной функциональной гибкостью. Планируется развитие линии Excalibur, в частности, реализация 64 -разрядных процессорных ядер и расширение набора устройств, реализуемых в области программируемой логики, а также и дополнительных средств для решения задач телекоммуникаций, цифровой обработки сигналов и под -
92
Проектирование систем на микросхемах программируемой логики
держки обновленных интерфейсных стандартов. Ведется и разработка ядер для семейства АСЕХ. К числу фирм -производителей блочных SOPC относится и фирма Cypress Semiconductor. Особенностью SOPC этой фирмы является наличие подсистемы аналоговой программируемой периферии, в связи с чем их рассмотрение приводится в следующем разделе.
1.8. Микросхемы с программируемыми аналоговыми и аналого-цифровыми структурами 1.8.1. Общие сведения Многие управляющие и вычислительные системы оперируют с информацией, представленной не только в цифровой, но и в аналоговой форме. Аналоговые сигналы вырабатываются многими датчиками физических величин, сведения о которых должны поступать далее в цифровую часть системы. До ввода этих величин в цифровые устройства и при их выводе из них часто необходимы некоторые операции (нормирование, фильтрация, аналого -цифровое преобразование, цифроаналоговое преобразование и др., что иногда обозначается термином End -Front Design). Таким образом, постановка задачи интеграции всей системы на одном кристалле нередко приводит одновременно и к задаче реализации на этом кристалле программируемых средств обработки аналоговых сигналов. Аналоговые и аналого -цифровые фрагменты уже давно встраиваются в структуры микропроцессорных систем в виде отдельных микросхем малого и среднего уровней интеграции, использующих дискретные (навесные) операционные элементы. Технология БМК также нашла применение в области аналого -цифровой техники, но программирование самим пользователем аналоговых и аналого -цифровых схем, размещенных на кристаллах высокого уровня интеграции, до последнего времени практически не было освоено. Трудности освоения аналоговых интегральных схем в значительной мере объяснялись их пониженными точностными возможностями в сравнении со схемами на дискретных компонентах. Блоки АЦП и ЦАП с относительно давних пор встраивались в БИС (фирмы Analog Devices, Intel), но с очень нестабильными результатами. Появление "систем на кристалле" сделало особенно актуальной проблему интеграции надежных программируемых аналоговых и аналого -цифровых схем и цифровой части системы. На основе микросхем с программируемыми структурами возможно быстрое проектирование подсистем аналоговой и аналого -цифровой обработки сигналов, их отладка, создание промышленных образцов и быстрый выход на рынок.
Глава /. Элементная база электронных устройств и систем
93
Несколько крупных фирм -производителей микросхем с программируемыми структурами (Motorola, Lattice Semiconductor, Cypress) уже отреагировали на требования времени и уделили внимание разработкам программируемых аналоговых и аналого -цифровых структур, выполненных как на отдельном кристалле, так и совместно с цифровой частью системы. Цифровые сигналы принимают лишь два значения, одно из которых соответствует логической единице, а другое — логическому нулю. Проблема точного задания этих сигналов отсутствует — требуется лишь надежно отличать один из этих сигналов от другого. Совершенно иным является положение в аналоговой технике, где сигнал должен передавать точное значение величины с погрешностью в десятые или сотые доли процента, т. е. требуется "дозирование" сигналов с разрешающей способностью в тысячи или даже более уровней. Традиционно (до конца 70 -х — начала 80 -х гг.) роль дозирующих параметров в схемах нормирующих усилителей, сумматоров и т. п. играли отношения сопротивлений точных резисторов. Постоянные времени RC (также масштабирующие параметры в схемах интеграторов, фильтров и др.) задавались совместно значениями сопротивления точного резистора и емкости операционного конденсатора. Так, например, в известной схеме масштабирующего усилителя, т. е. устройства умножения сигнала, заданного напряжением постоянного тока, на константу используются два точных резистора R1 и R2, от соотношения сопротивлений которых зависит функциональная характеристика схемы, в идеализированном виде имеющая вид U2 = (—R2/Rl)Ul, где UI и U2 — входное и выходное напряжения, соответственно. Интегратор имеет идеализированную функциональную характеристику вида: U2 = ( -1/RС)INТ U1 (t) dt, в которой роль масштабирующего коэффициента играет произведение сопротивления точного резистора входной цепи на емкость конденсатора цепи обратной связи. В схемотехнике с дискретными (навесными) схемными элементами проблема реализации точных резисторов имеет удовлетворительное решение. Для технологии интегральных схем эта проблема намного сложнее, но существует альтернативное схемное решение, благодаря которому резисторы имитируются цепями, содержащими коммутируемые (переключаемые) конденсаторы (рис. 1.29). В такие цепи входят конденсатор С и ключевые транзисторы T1 и T2, управляемые тактирующими напряжениями Ut1 и Ut2. Транзисторы T1 и T2 под воздействием тактирующих напряжений замыкаются поочередно, и конденсатор С попеременно заряжается через замкнутый ключевой транзистор до напряжения U1 или U2. В момент замыкания ключевого транзистора заряд конденсатора изменяется на величину q — q1 = q2 = C(U1 — U2). Изменение заряда осуществляется короткими импульсами тока, протекаю -
94
Проектирование систем на микросхемах программируемой логики
щими через конденсатор при замыкании соответствующего ключевого транзистора. Среднее значение тока в цепи между точками 1 и 2 составляет величину i = q/T=(U1 -U2)C/T, где Т— период тактирующих импульсов. Из полученного выражения видно, что в определенном смысле (для средних значений сигналов) цепь ведет себя как резистор с сопротивлением R = Т/С, сопротивление которого пропорционально периоду тактирующих импульсов, т. е. обратно пропорционально их частоте. Разница состоит в том, что резистор регулирует поток передаваемого через него заряда плавно, а цепь с переключаемыми конденсаторами — импульсно.
Рис. 1.29. Цепь с переключаемыми конденсаторами, моделирующая резистор
На основе схем с переключаемыми конденсаторами можно строить разнообразные операционные звенья, аналогичные известным из традиционной аналоговой схемотехники, путем замены резисторов эквивалентными им цепями. Сопротивления эквивалентных цепочек управляются значениями тактовой частоты f= 1/Т, которые можно изменять и дистанционно. А это ставит аналоговые блоки в один ряд с цифровыми с точки зрения возможностей программирования в системе на расстоянии (например, через Интернет). В схемотехнике с переключаемыми конденсаторами строятся схемы с зависимостью функциональных характеристик только от отношения емкостей, которое может задаваться с высокой точностью. Именно схемотехника на основе переключаемых конденсаторов дает возможность реализовать АЦП и ЦАП с высоким уровнем параметров. Параметры емкостей мало критичны к изменению температуры и старению. Резко (в сотни раз) снижается площадь, занимаемая цепями с переключаемыми конденсаторами в сравнении с цепями, содержащими точные резисторы. Таковы технологические достоинства схемотехники переключаемых конденсаторов. В то же время применение цепочек с переключаемыми конденсаторами имеет и свои недостатки. В цепях с непрерывными сигналами (без переключаемых конденсаторов) отсутствует проблема отделения полезной информации (среднего значения пульсирующей величины) от сопровождающих ее паразитных высокочастотных составляющих, что благоприятно влияет на дина -
Глава 1. Элементная база электронных устройств и систем
g5
мические характеристики устройств. Кроме того, схемы с непрерывными сигналами имеют лучшие шумовые характеристики.
1.8.2. Практические разработки Впервые о создании БИС с массивом программируемых пользователем аналоговых элементов объявила фирма Motorola (1997 г.). Эти БИС были анонсированы под названием МРАА020 (Motorola Field Programmable Analog Arrays), но не были доведены до промышленного выпуска. В 1999 году фирма Lattice Semiconductor выпустила семейство внутрисхемно программируемых (In -System Programmable) аналоговых схем типов ispPACIO и ispPAC20, а затем и ispPACSO. Фирма Cypress Semiconductor выпустила микросхемы класса SOPC с реализацией цифровой и аналоговой части программируемой логики в пределах одного кристалла. В микросхемах фирмы Motorola для построения операционных звеньев используется схемотехника с переключаемыми конденсаторами, в микросхемах фирмы Lattice Semiconductor — традиционные решения с применением масштабирующих резисторов и, следовательно, непрерывных сигналов, в SOPC фирмы Cypress Semiconductor — оба вида схемотехнических решений, т. е. и схемы с точными резисторами, и схемы с переключаемыми конденсаторами. Микросхемы семейства ispPAC фирмы Lattice Semiconductor архитектурно просты (имеют немного конфигурируемых ресурсов и контактов ввода/вывода). Память конфигурации реализована по технологии EEPROM и может загружаться через специально выделенные контакты JTAG -интер фейса. Допустимое число циклов репрограммирования не менее 10 тыс. Конфигурация может быть закрыта от несанкционированного доступа битом секретности. В состав конфигурируемых ресурсов включены не только аналоговые, но и цифроаналоговые средства (схема ispPAC20 содержит встроенный восьмиразрядный цифроаналоговый преобразователь). Макроячейки ИС ispPACIO и ispPAC20 (рис. 1.30 и 1.31), называемые PACblocks, состоят из двух входных (инструментальных) усилителей IA и выходного усилителя ОА. В микросхеме ispPACIO таких макроячеек четыре, а в микросхеме ispPAC20 — две. Назначение других блоков микросхем указано на самих рисунках. Выходы IA подключены к потенциально заземленным (суммирующим) точкам выходных усилителей. Входные и выходные цепи усилителей выполнены по дифференциальной схеме, защищенной от воздействий других сигналов, что делает качество передачи сигнала независимым от -положения линии связи на кристалле и улучшает другие характеристики макроячеек. Входные сопротивления усилителей, реализованных в схемотехнике КМОП, настолько велики, что практически снимают вопрос нагрузки на источники сигналов, в том числе на датчики исходных физических величин. Взаимосоединения блоков программируются. Из нескольких макроячеек можно строить схемы
96
Проектирование систем на микросхемах программируемой логики
перестраиваемых активных фильтров. Восьмиразрядный цифроаналоговый преобразователь микросхемы ispPAC20 может воспринимать параллельные или последовательные данные. Для компараторов возможно программирование работы с гистерезисом или без него. В схемах выходных усилителей программируется подключение или отключение резисторов обратной связи. Емкости конденсаторов обратной связи могут программироваться на величины от 1 до 63 пФ (всего 128 возможных значений).
Рис. 1.30. Структура PACblock микросхем ispPACtO
Глава 1. Элементная база электронных устройств и систем
97
Рис. 1.31. Структура PACblock микросхем ispPAC20
Микросхемы ispPACSO предназначены для создания активных фильтров пятого порядка с программируемыми характеристиками. Могут строиться фильтры с аппроксимацией частотных характеристик по Баттерворту, Бесселю, Чебышеву, фильтры с аппроксимацией эллиптического типа. Аналоговые блоки следует характеризовать совокупностью их функциональных и точностных характеристик с учетом статических и динамических погрешностей. Укажем основные параметры семейства ispPAC. Микросхемы работают от источника питания 5 В и имеют источник образцового напряжения 2,5 В, позволяющий выводить рабочую точку усилителей в середину питающего напряжения для восприятия и выработки знакопеременных сиг -
j№
Проектирование систем на микросхемах программируемой логики 0.5
налов. Уровень шумов равен приблизительно 40 нВ/Гц , что дает динамический диапазон около 100 дБ в диапазоне частот до 100 кГц. Типовое значение коэффициента гармоник на частоте 10 кГц составляет —88 дБ, а на частоте 100 кГц — -67 дБ. Автоматическая калибровка смещения нуля (длительностью 100 мс) обеспечивает максимальное смещение менее чем на 1 мВ при типовом значении 200 мкВ и любых конфигурациях схемы и коэффициентах усиления. Коэффициенты усиления IA программируются в пределах от —10 до +10 с шагом 1. Типовая точность задания коэффициентов усиления IA характеризуется погрешностью 1,5%, максимальная погрешность 4%. Температурный дрейф 20 ррт/°С. Диапазон частот для создаваемых фильтров 10—100 кГц, значения частот задаются с погрешностями не более 3,5—5%. Эксплуатационный диапазон температур от —40 до +85 °С. Время установления выходного напряжения цифроаналогового преобразователя с погрешностью 0,1% не превышает 6 мкс. Дифференциальная нелинейность преобразователя не более единицы младшего разряда. Типовое время переключения компаратора при амплитуде перепада 10 мВ составляет 750 не. Максимальные токи потребления микросхем приблизительно 20 мА. Относительно скромные точностные возможности микросхем ispPAC, тем не менее, приемлемы для построения на них ряда работоспособных функциональных узлов. Программное обеспечение фирмы Lattice Semiconductor под названием PAC -Designer ориентировано на использование в PC совместимых компьютерах с ОС Windows. САПР позволяет вводить информацию о проекте, моделировать функционирование схем, компилировать проекты и загружать результаты компиляции в память конфигурации БИС. Фирма Cypress Semiconductor выпустила семейство CY8C25/26, сочетающее цифровые и аналоговые программируемые блоки. SOPC CY8C25/26xxx имеют восьмиразрядное процессорное ядро М8С с умножителем/аккумулятором. Возможен выбор частот тактирования. Емкости памяти программ и данных в зависимости от типа микросхемы варьируются (от 4 до 16 Кбайт Flash -памяти для программ и от 128 до 256 байт SRAM памяти для данных). В микросхемах CY8C25/26 вокруг быстродействующего процессорного ядра размещены и цифровые, и аналоговые программируемые блоки (SOC -бло ки), функционирование которых задается при конфигурировании системы (рис 1.32). Выделение в отдельную часть цифровых блоков является вариантом организации интерфейса между процессором и FPGA. SOC -блоки могут соединяться друг с другом двумя основными способами: параллельным и последовательным. При параллельных соединениях достигается повышение точности блоков (увеличение разрядности аналого -цифровых преобразователей, повышение разрешающей способности таймеров и т. п.). При последовательных соединениях создаются тракты из нескольких операционных звень -
Глава 1. Элементная база электронных устройств и систем
99
ев, например, последовательное соединение предварительного усилителя, фильтра и аналого -цифрового преобразователя.
Рис. 1.32. Структура с цифровыми и аналоговыми SOC -блоками микросхем семейства CY8C25/26
В состав SOC -блоков первого из выпущенных представителей семейства CY8C25/26 входят 12 аналоговых и 8 цифровых блоков. Из 12 аналоговых блоков 4 реализованы в схемотехнике с масштабирующими резисторами (блоки с непрерывными сигналами (СТ, Continues Time building blocks)) и 8 построены на переключаемых конденсаторах (SC, Switched -Capacitor blocks). Блоки с непрерывными сигналами оптимизированы для построения усилителей с программируемыми коэффициентами усиления и мультиплексируемыми каналами входов и выходов, дифференциальных усилителей и быстродействующих компараторов. Блоки, использующие технику переключаемых конденсаторов, ориентированы на создание программируемых фильтров, регистров последовательного приближения, аналого -цифровых и цифроаналоговых преобразователей и т. п. Цифровые блоки реализуют такие функции, как таймеры, универсальные асинхронные приемопередатчики, широтно -импульсные модуляторы и др.
100
Проектирование систем на микросхемах программируемой логики
С помощью аналоговых и цифровых средств коммутации, содержащих мультиплексоры и ключи, SOC -блоки соединяются в так называемые модули • пользователя (User modules), для формирования которых подготовлена специальная библиотека. Библиотека содержит несколько типов аналого цифровых преобразователей (последовательного приближения, следящего типа, с дельта -сигма модуляцией), цифроаналоговые преобразователи, компараторы, устройства выборки и хранения аналоговых данных, разнообразные виды фильтров (низкой частоты, высокой частоты, полосовых), генераторы и детекторы напряжений специальной формы, модуляторы и демодуляторы (всего около 40 аналоговых модулей пользователя). Цифровая часть библиотеки (около 30 модулей пользователя) включает в себя таймеры, широтно -импульсные модуляторы, приемопередатчики и законченные структуры UART, интерфейс SPI, CRC -генераторы, генераторы псевдослучайных последовательностей и схемы управления двигателями. Программируемые аналоговые микросхемы FPAD (Field Programmable Analog Devices) появились также в серии TRAC фирмы Fast Analog Solutions, входящей в группу ZETEX. Появилось сообщение о выпуске фирмой Anadigm Inc. микросхем FPAA с программированием операционных усилителей и схем их межсоединений. В микросхему входят 20 таких блоков, выполняющих обычные функции обработки аналоговых сигналов в диапазоне частот от нулевой до 500 кГц. На процесс реконфигурации схемы затрачивается 100 мкс.
1.9.0 некоторых проблемах разработки и использования БИС/СБИС с программируемой структурой 1.9.1. Конвертация проектов Промышленные изделия в своем жизненном цикле проходят несколько стадий. Крупными стадиями являются разработка изделия, стадия активной реализации, стадия спада производства в связи с устареванием изделия и заменой его более новым и совершенным. Для создания изделия электронной промышленности, как известно, можно пользоваться разными средствами (стандартными ИС, программируемыми ИС, полузаказными и заказными ИС). Учет особенностей разных стадий жизненного цикла изделия в сочетании с возможностями тех или иных вариантов его реализации необходим для эффективной организации процесса производства. На стадии разработки проекта трудно переоценить роль применения микросхем, репрограммируемых пользователем, как чрезвычайно полезных средств отработки прототипа изделия, позволяющих легко и быстро вносить в про -
Глава 1. Элементная база электронных устройств и систем
101
ект изменения, доводя его до полностью работоспособного устройства. Останется ли вариант с репрограммируемыми микросхемами конечной продукцией зависит от объема его производства. Если изделие имеет высокий спрос, то, возможно, целесообразно перевести его на реализацию в виде полузаказных или даже заказных схем, т. к. это позволит устранить из устройства средства программирования его структуры, что снизит стоимость изготовления каждого экземпляра микросхемы и, при необходимости, позволит повысить ее быстродействие. Затраты на проектирование некоторого числа фотошаблонов, необходимых для производства полузаказных или заказных схем, и другие однократные технологические затраты (NRE, Non Recurrent Expends) не зачеркнут указанный выигрыш, если тиражность изделия достаточно велика. На последней стадии жизненного цикла изделия объем его производства снижается и становится неустойчивым. При этом может оказаться выгодным возврат от варианта с полузаказными и заказными микросхемами к БИС/СБИС с программируемыми структурами (FPGA, CPLD, FLEX, SOPC), т. к. для них не существует проблемы заказа в виде только больших партий, и можно избавиться от риска экономических потерь при уценках и распродажах. Кроме того, несложно выпустить и дополнительную партию изделий любого объема, если конъюнктура этого потребует. Как видно из сказанного, между разными средствами реализации одних и тех же изделий должна существовать взаимосвязь, поскольку иначе процесс перехода от одних средств к другим (конвертация проектов) окажется затрудненным. Такая взаимосвязь оказывает влияние на архитектуры, электрические характеристики и конструктивные параметры как БИС/СБИС программируемой логики, так и БМК. Например, были выпущены специализированные репрограммируемые FPGA с триггерной памятью конфигурации, предназначенные для макетирования схем, реализуемых на определенных масочных БМК (фирма Quickturn System Inc.). Были созданы также специализированные масочные БМК (Hard Wire), по архитектуре идентичные схемам известных репрограммируемых FPGA. И в дальнейшем FPGA подстраивались под конкретные БМК с целью их эффективного макетирования, а определенные БМК приспосабливались по логической структуре, библиотеке схемных решений и электрическим параметрам к конкретным FPGA. Проиллюстрируем высказанные тезисы некоторыми примерами. Практика фирмы Xilinx дает следующие цифры: почти все проекты с логической емкостью меньше 20 тыс. вентилей остаются реализованными на микросхемах программируемой логики и в качестве конечной продукции. Для проектов с логической емкостью в диапазоне от 20 до 50 тыс. вентилей могут приниматься различные решения на основе конкретной ситуации. Для проектов с логической емкостью больше 50 тыс. вентилей конвертация, как правило, целесообразна. Указанные цифры довольно быстро изменяются в сторону увеличения и, соответственно этому, конвертации в направлении "ПЛИС -
102
Проектирование систем на микросхемах программируемой логики
ASIC" подвергается все меньший процент проектов. Большинство конвертируемых проектов переводится в схемы на БМК. В схемы, реализованные по методу стандартных ячеек и, тем более, в полностью заказные схемы конвертация производится реже, т. к. это обычно экономично только для очень сложных или высокотиражных проектов. Для конвертации своих проектов фирма Хilinх несколько лет назад создала микросхемы Hardwire FpgASIC, обеспечивающие полную совместимость контактов ввода/вывода при замещении ими конвертируемых FPGA. Каждая микросхема Hardwire FpgASIC соответствует функционированию и особенностям конкретной FPGA. Применение этих микросхем в два раза ускоряло процесс конвертации в сравнении с традиционным процессом проектирования на основе БМК. Конвертация основана на заранее созданной и проверенной базе данных, тогда как обычный перевод схемы из реализации на FPGA в реализацию на БМК нуждается в повторной верификации, что сопряжено с большими затратами времени. Если исходный проект выполнен на нескольких FPGA, то можно удешевить его переводом лишь некоторых FPGA в базис HardWireFpgASIC. Замена лишь части FPGA на HardWireFpgASIC и оставление других FPGA в обычном виде позволяет использовать их в традиционном варианте с возможностью реконфигурации. Перевод схемы в реализацию на HardWireFpgASIC позволяет также исключить соответствующую память загрузки конфигурации, что дополнительно упрощает и удешевляет схему. В противовес сказанному следует отметить, что реальная ситуация с продукцией Hardwire не совпала с прогнозом, и это направление не стало "серьезным бизнесом", имеющим достаточное число заказчиков. Ограниченное применение конвертации имеет несколько причин. Во -первых, часто не оправдываются ожидания большой тиражности выпуска изделия, во вторых, нередко через полгода -год у производителя возникает желание внести в проект изменения, для чего хороши именно ИСПС, в третьих, с усложнением схем и появлением в них разнородных областей все сложнее воспроизвести ИСПС в БМК или других ASIC с сохранением временных соотношений сигналов и работоспособности и быстродействия фрагментов ИСПС и схем в целом. Так или иначе, но фирма ХШпх прекратила усилия по внедрению микросхем Hardwire и сосредоточилась на удешевлении своих FPGA. Почти одновременно с прекращением предложений средств конвертации Hardwire фирмой ХШпх фирма Altera выступила с новым решением задачи перевода проектов, реализованных на ПЛИС, в проекты типа ASIC, объявив о выпуске микросхем HardCopy. Это решение дает удобства для тех, кто использовал ПЛИС фирмы на стадии проектирования и затем намеревается переключиться на реализацию по методу стандартных ячеек для тиражной продукции. Сообщается, что перевод проекта на микросхемы HardCopy дает 70% экономии площади кристалла при снижении стоимости микросхем и
Глава 1. Элементная база электронных устройств и систем
103
pin -совместимости исходного и конечного вариантов. Переход от проекта, реализованного на ПЛИС, к эквивалентному проекту на ASIC производится приблизительно за 8 недель. С учетом времени, которое будет затрачено заказчиком на верификацию проекта, время до выпуска продукции оценивается приблизительно в 16 недель. Технология HardCopy, по мнению фирмы Altera, дает хорошие предпосылки для повышения эффективности процесса конвертации, причем она нацелена, в основном, на конвертацию проектов высокой сложности. Фирма AMI (American Microsystems Inc.) извещает об эффективной конвертации в ASIC -реализацию таких сложных ПЛИС, как семейство Virtex фирмы Xilinx и семейство APEX фирмы Altera. Имея для такой конвертации отработанный набор схемных решений, фирма AMI обеспечивает быструю конвертацию проектов, содержащих разнообразные блоки, в том числе DLL, PLL, PCI, блоки памяти с разнообразными организациями, различные варианты схем ввода/вывода. Микросхемы семейства XL -3 фирмы AMI дешевле своих аналогов из семейств Virtex и APEX приблизительно в 4 раза.
1.9.2. Конфигурирование БИС/СБИС с программируемой структурой Способ конфигурирования БИС/СБИС ПЛ, т. е. настройки их на определенное функционирование, зависит от типа программируемых элементов. Для микросхем с необратимым изменением состояний программируемых элементов (типов fuse и antifuse) и реконфигурируемых микросхем с энергонезависимой памятью конфигурации (EPROM, EEPROM, Rash) для программирования используются специальные воздействия электрическими сигналами, характеристики которых существенно отличаются от характеристик рабочих (логических) сигналов. Конфигурирование таких микросхем может производиться вне создаваемой системы с помощью программаторов или же в составе системы (т. е. при сохранении монтажа микросхемы на плате), но также с использованием специальных режимов. При этом для процессов записи информации требуются повышенные напряжения программирования (для микросхем семейств МАХ7000 и МАХ9000 фирмы Altera, например, это 12 В при рабочем напряжении питания 5 В). Для старых микросхем вследствие этого требовались несколько источников питания, более новые стали снабжаться внутренними преобразователями рабочего напряжения в повышенное напряжение программирования. Для БИС/СБИС ПЛ со статической памятью конфигурации ее загрузка не требует каких -либо специальных электрических режимов, и процесс конфигурирования состоит в передаче в микросхему информации по заданному протоколу и с фиксированными форматами данных. Переданная информация обеспечивает создание требуемых соединений в логических блоках, блоках ввода/вывода и подключение их к трассам межсоединений. Опера -
104
Проектирование систем на микросхемах программируемой логики
ция конфигурирования выполняется после каждого включения питания, причем, если установлены специальные загрузочные БИС, сам факт очередного включения питания автоматически инициирует процесс конфигурирования, который может повторяться неограниченное число раз. Отсутствие специальных электрических режимов для записи информации в память конфигурации обеспечивает возможность ее проведения в работающей схеме, причем возможна и частичная реконфигурация, относящаяся лишь к части системы. Конфигурирование БИС/СБИС ПЛ со статической (триггерной) памятью конфигурации представляет собой запись во внутренние регистры (триггеры) данных, задающих структуру блоков системы и их межсоединений. Каждый бит настроечных данных задает состояние соответствующему триггеру, управляющему программируемым ключом в настраиваемой схеме. БИС/СБИС ПЛ обычно имеет несколько возможных режимов конфигурирования (например, у FPGA XC4000 фирмы Хilinх их 6, у СБИС семейства Virtex той же фирмы 4, у микросхем семейства Spartan — 2). У способов конфигурирования микросхем разных фирм и разных типов много общего. Рассмотрим, например, как конфигурируется СБИС ПЛ типа SOPC семейства Virtex. Для конфигурирования этой микросхемы используются как специализированные выводы, так и выводы, которые после завершения конфигурирования могут играть роль выводов общего назначения. К специализированным относятся выводы М2, Ml, МО, на которых задается код того или иного режима, вывод для синхросигналов процесса конфигурирования, выводы PROGRAM, DONE и выводы периферийного сканирования TDI, TDO, TMS, TCK (см. разд. 2.6). Вывод синхросигнала может быть выходом, когда этот сигнал генерируется микросхемой, или входом, когда поступает извне. Возможные способы конфигурирования: - пассивный последовательный (Slave -serial mode); - активный последовательный (Master -serial mode); - байт -последовательный (SelectMAP mode); - периферийного сканирования. В пассивном последовательном режиме микросхема получает данные конфигурирования в виде потока битов из последовательной памяти PROM или другого источника. Синхронизация осуществляется от внешнего источника, каждый положительный фронт синхросигнала вводит бит данных от входа DIN. Несколько микросхем могут быть соединены в цепочку для конфигурирования в едином процессе от общего потока битов. В этом случае после завершения конфигурирования очередной микросхемы данные конфигурации для следующих микросхем появляются на выводе DOUT микросхемы, завершившей конфигурирование.
Глава 1. Элементная база электронных устройств и систем
105
В активном последовательном режиме выходной синхросигнал микросхемы подается на последовательное ЗУ, с которого на вход DIN микросхемы поступает последовательный поток битов конфигурации. Микросхема воспринимает каждый бит под управлением положительного фронта синхросигнала. После загрузки очередной микросхемы, входящей в цепочку, данные для следующей снимаются с выхода DOUT той микросхемы, которая закончила конфигурирование. Для синхронизации процесса можно выбирать частоту из широкого диапазона значений. По умолчанию используется наименьшая частота 2,5 МГц. Максимальная частота — 60 МГц. Устанавливаемые частоты, естественно, должны соответствовать возможностям используемых PROM и включенных в цепочку микросхем. При включении питания устанавливается частота 2,5 МГц. Если не поступит команда на изменение этого значения (опция ConfigRate в программе генерации битового потока конфигурации), процесс продолжится до конца на частоте 2,5 МГц. В байт -последовательном режиме время конфигурирования минимально. Используется байт -последовательный поток данных, которые записываются в микросхему с учетом флажка ее готовности BUSY. Байтовый поток задается от внешнего источника, как и сигналы тактирования, разрешения работы CS и WRITE. В этом режиме данные могут и читаться. Если сигнал WRITE пассивен, то данные конфигурации читаются из микросхемы (этот процесс есть часть процесса Readback). В режиме SelectMAP также можно конфигурировать одновременно несколько микросхем, но в этом случае они включаются параллельно по входам синхронизации, данных, WRITE и BUSY. Загружаются микросхемы поочередно путем соответствующего управления сигналами разрешения их работы CS. В режиме периферийного сканирования конфигурирование осуществляется исключительно через выводы порта тестирования ТАР (Test Access Port) интерфейса JTAG. Используется специальная команда CFG_IN, позволяющая входным данным от вывода TDI преобразовываться в пакеты данных для внутренней шины конфигурации микросхемы. Процесс конфигурирования для микросхем Virtex состоит из трех этапов: очистки памяти конфигурации, загрузки в нее данных и активизации логических схем, участвующих в процессе. Конфигурирование начинается автоматически после включения питания, но может быть и задержано пользователем с помощью сигнала PROGRAM, снятие которого запрещает конфигурирование. Завершение очистки памяти выявляется с помощью сигнала INIT, а завершение всего процесса — с помощью сигнала DONE. Данные для загрузки памяти конфигурации формируются системой автоматизированного проектирования. Реконфигурация в системе (ISP, In -System Programmability) — одно из важнейших достоинств СБИС ПЛ, позволяющее легко изменять логику их ра -
106
Проектирование систем на микросхемах программируемой логики
боты. Потребности в изменениях возникают для устранения не выявленных при первоначальном тестировании ошибок, для модернизации (Upgrade) систем и в системах с многофункциональным использованием блоков. Наличие ISP облегчает работу с современными СБИС ПЛ, корпуса которых имеют большое число миниатюрных и легко повреждаемых выводов, что делает однократность установки микросхем на плату весьма желательной. Кроме того, реконфигурация микросхемы на расстоянии с использованием средств телекоммуникации или сети Интернет дает и экономическую выгоду, поскольку обходится дешевле, чем вызов техника для проведения этой операции у заказчика. Возможности программирования в системе растут, если при проектировании часть функциональных возможностей СБИС ПЛ оставлять свободной, имея также запас по скорости и ресурсам межсоединений. При реконфигурации в системе должно сохраняться назначение внешних выводов, иначе потребуется изменить монтаж печатных плат. Среди СБИС ПЛ имеются и такие, в которых реализованы одновременно триггерная и энергонезависимая память конфигурации. В этом случае конфигурирование СБИС ПЛ можно производить без внешних источников данных путем автоматической загрузки триггерной памяти из энергонезависимой. Конфигурирование СБИС ПЛ выполняется с помощью интерфейса JTAG.
1.9.3. Засекречивание проектов Проблема защиты интеллектуальной собственности для многих вариантов микросхем программируемой логики приобретает особую остроту. Имея дело с программируемыми схемами, во многих случаях легко воспользоваться плодами чужого труда, т. к. при этом не потребуется что -либо разрабатывать и изготовлять, а нужно лишь получить сведения о содержимом памяти конфигурации и затем загрузить их в готовую микросхему, купленную у поставщика. Возможности легкой кражи проектов создают большой соблазн для недобросовестных людей, которых следовало бы называть просто ворами, но мы, во избежание бытового оттенка изложения, назовем их взломщиками. Взломщики могут преследовать цели простого неосознанного дублирования чужих проектов для получения работающих схем без знания их внутреннего устройства. Такое дублирование называют клонированием проектов (Cloning). Более сложна задача расшифровки чужих проектов с раскрытием их архитектуры и деталей реализации. Такую операцию можно назвать реконструкцией проектов (Reverse -engineering), для нее подходит и встречающийся иногда термин "реинжиниринг". Имея реконструированный проект, можно внести в него какие -либо несущественные изменения и попытаться обойти вопросы лицензирования.
Глава 1. Элементная база электронных устройств и систем
107
Уязвимость микросхем программируемой логики по отношению к клонированию или реконструкции проектов зависит от характера проекта и схемо технологии микросхемы. В начале развития программируемых микросхем, когда они были представлены простыми комбинационными ПЛМ и ПМЛ, проекты можно было реконструировать, подавая на схему все возможные комбинации входных сигналов и фиксируя соответствующие им выходные комбинации сигналов. Из полученных сведений можно вывести булевы функции, воспроизводимые схемой, и, следовательно, реконструировать ее в соответствующем логическом базисе. Более сложные схемы программируемой логики, практически, не поддаются такому методу реконструкции. Они имеют большое число вводов/выводов, назначение которых заранее не известно (например, у двунаправленных выводов). Уже одно это создает очень большие сложности для логического анализа проектов, т. к. неизвестно, подавать ли на вывод входной сигнал, снимать ли с него выходной сигнал, или же использовать его поочередно в обоих вариантах. Сложность внутренней структуры микросхем, наличие в них фрагментов, являющихся последовательностными схемами, и различных встроенных функций чрезвычайно затрудняют логический анализ проектов. Для клонирования проектов нужно раздобыть сведения о содержимом памяти конфигурации микросхемы (битовом потоке конфигурирования). По возможностям защиты этой информации от несанкционированного доступа микросхемы разных схемотехнологий существенно различаются. Однократно программируемые 5ИС/СБИС с пробиваемыми при конфигурировании перемычками наиболее защищены от взлома. Для их эксплуатации битовый поток конфигурирования не нужен, поскольку программирование перемычек завершается на стадии изготовления микросхемы. В распоряжении взломщика находится лишь сам кристалл. Для раскрытия проекта требуется определить состояние всех перемычек, получив для каждой ответ на вопрос "замкнута -разомкнута". Это чрезвычайно трудно сделать по следующим причинам. Число перемычек очень велико (сотни тысяч). Наблюдением поверхности кристалла нельзя выявить не только состояние перемычек, но и их местоположение, т. к. по виду они не отличаются от простого пересечения шин. Чтобы рассмотреть перемычку и определить ее состояние (наличие проводящей нити), нужно сделать в ней несколько поперечных срезов, а это, вероятнее всего, разрушит остальную часть кристалла. Таким образом, для выявления состояний всех перемычек потребуется испортить столько кристаллов, сколько перемычек имеется на каждом из них. Задаваясь вопросом, есть ли проекты, ценность раскрытия которых оправдает затраты на их взлом, можно ответить, что возможность раскрытия проекта в данных ситуациях есть категория скорее теоретическая, чем практическая.
108
Проектирование систем на микросхемах программируемой логики
Описанная ситуация касается микросхем фирмы Actel с перемычками PLICE (ONO), фирмы QuickLogic с перемычками типа ViaLink, фирмы Xilinx с перемычками типа MicroVia. Репрогроммируемые БИС/СБИС с энергонезависимой памятью конфигурации (EPROM, EEPROM, Flash) в рабочих режимах также не используют файлы конфигурирования. Взломщик, как и в предыдущем случае, имеет в своем распоряжении сам кристалл, в котором скрыта информация о проекте. Чтение памяти конфигурации может быть запрещено битом секретности, сбросить который можно только при операции стирания всего содержимого этой памяти (заметим, что в литературе имеются сведения о случаях проникновения в запертую память конфигурации с помощью специальных электрических режимов микросхемы). Исследовать сам кристалл проще, чем кристалл с перемычками, но также очень нелегко. Если предположить, что расположение транзисторов с плавающими затворами, состояния которых программируются, известно или может быть визуально определено, то задача раскрытия проекта сводится к исследованию состояний каждого из многих тысяч или даже миллионов транзисторов. Наличие или отсутствие заряда в плавающем затворе можно выявить без разрушения кристалла несколькими способами. Заряды создают электрические поля, которые можно обнаруживать специальными методами, можно использовать также электронный микроскоп или материалы, накладываемые на кристалл и изменяющие цвет под воздействием электрических полей. Трудоемкость и стоимость исследования состояний плавающих затворов остаются все же очень высокими, и подобные исследования имеют смысл только для высокоценных проектов. Далее, даже если станут известны местоположение и состояния всех транзисторов, то для простого клонирования проекта нужно транслировать эти сведения в битовый поток конфигурирования БИС/СБИС, а для реконструкции проекта еще и в саму схему. Решение этих задач очень сложно, поэтому схемы с энергонезависимой памятью конфигурации можно считать хорошо, хотя и не абсолютно, защищенными от взлома. Самыми уязвимыми для взломщиков являются БИС/СБИС программируемой логики с триггерной памятью конфигурации, которую нужно загружать при каждом включении питания от внешнего источника хранимых данных. Для клонирования проекта достаточно прочитать содержимое этой внешней памяти и использовать его для конфигурирования клонов. Установление соответствия недокументированного битового потока конфигурирования и внутренней структуры схемы (реконструкция проекта) является более сложным, но не считается невозможным. С целью повышения защищенности проектов, в первую очередь для БИС/СБИС с триггерной памятью конфигурации, принимается ряд мер: организационных, юридических, конструктивных и др. К организационным мерам можно отнести договоренность с поставщиком о поставке немаркированных кристаллов, что эффективно затрудняет попытки взлома проектов.
Глава 1. Элементная база электронных устройств и систем
109
К юридическим мерам можно отнести встраивание в проект некоторого недокументированного идентификатора (например, инициалов автора проекта). К конструктивным мерам можно отнести покрытие кристалла и его связей с другими кристаллами непроницаемым слоем (например, эпоксидной смолой). Естественно, это имеет и отрицательные последствия, не позволяя в дальнейшем дорабатывать проект и ухудшая тепловой режим кристалла. Сходен с этим прием размещения трассы передачи битового потока конфигурирования между энергонезависимой памятью и микросхемой в скрытых внутренних слоях печатной платы. Можно вообще обойтись без энергонезависимой памяти конфигурирования, если вместо нее разместить на плате автономный источник питания (литиевую батарею), который будет сохранять запрограммированную конфигурацию в самой триггерной памяти микросхемы. Однако в этой ситуации потребуются специальные схемы для изоляции источника автономного питания от всех цепей, кроме памяти конфигурации, что увеличивает площадь кристалла и снижает его быстродействие. Кроме того, при истощении батареи схема все же разрушится. Разрушение может произойти и от мгновенной потери питания вследствие удара, действия помехи и т. д. В качестве приема защиты проекта используется и разделение его между частями с триггерной и энергонезависимой памятью конфигурации при наличии в обеих частях одного и того же уникального идентификатора, который должен согласовываться. Можно использовать в ПЛИС с энергонезависимой и с триггерной памятью конфигурации сдвигающих регистров с линейными обратными связями, причем первая ПЛИС имеет целью только разрешать работу второй. Сложность расшифровки функционирования сдвигающего регистра связана с его структурой и разрядностью. Существуют и другие возможности затруднить процесс взлома проектов, реализованных в БИС/СБИС программируемой логики [45].
1.10. Способы оценки параметров ПЛИС. Обзор новой продукции ведущих фирм -производителей ПЛИС В силу своих достоинств ИС с программируемыми структурами занимают быстро растущую долю рынка. Подводя итоги сказанному ранее, можно выделить две крупнейшие положительные черты ПЛИC. во -первых, улучшение параметров разрабатываемых устройств и систем, включая их компактность, быстродействие, надежность, стоимость, низкую потребляемую мощность, и, во -вторых, чрезвычайную
110
Проектирование систем на микросхемах программируемой логики
легкость и быстроту изменения проектов, малое время выхода продукции на рынок. Для БИС/СБИС с программируемыми структурами модификация реализуемых алгоритмов производится без изготовления наборов фотошаблонов. Области применения интегральных схем разных видов в качестве окончательной продукции, как показано на рис. 1.33, зависят от тиражности их производства (предполагается, что тиражность растет в направлении слева направо).
SPLD
Рис. 1.33. Связь объемов производства изделий с элементной базой, целесообразной для их реализации
При объеме производства изделия меньше 50—70 тыс. шт. применение FPGA и CPLD, согласно мнению ряда специалистов, становится стоимост но -эффективной альтернативой для базовых матричных кристаллов и более сложных ASIC. Подробные соображения по выбору элементной базы при разных условиях разработки проектов приводятся в гл. 2. Область применения программируемых схем в качестве прототипов при отработке систем значительно шире. Микросхемы с программируемой структурой конкурируют со стандартными ИС, с базовыми матричными кристаллами и с заказными схемами, реализованными по методу стандартных ячеек. Активнее всего программируемые схемы отвоевывают области применения у стандартных ИС невысокого
Глава 1. Элементная база электронных устройств и систем
111
уровня интеграции и у базовых матричных кристаллов. В меньшей степени они вытесняют ИС со стандартными ячейками, хотя, возможно, это положение вскоре может измениться. Нельзя не отметить, что в последнее время ИСПС хорошо дополняют схемы со стандартными ячейками, позволяя создавать системы разного назначения с помощью одного и того же набора фотошаблонов за счет модификации программируемой части кристалла. Подробнее об областях применения различных типов микросхем также говорится в гл. 2. Достоинства ПЛИС рождают спрос на них, спрос стимулирует предложение, в результате появилось много разновидностей ПЛИС, в которых непросто ориентироваться без понимания особенностей различных архитектур. Знание архитектур и особенностей существующих ПЛИС нужно для успешного выполнения ряда этапов процесса проектирования устройств и систем на их основе, в частности этапа выбора элементной базы и оценки, а при необходимости, и "ручной" коррекции результатов работы компилятора САПР по синтезу схемной части проекта. Свойства и возможности ПЛИС выражаются многими параметрами, поэтому разумно ранжировать их по степени важности для того или иного применения и, после выбора претендентов на использование, переходить к детальному ознакомлению с их характеристиками. Разнообразие и насыщенность все более расширяющегося рынка ПЛИС не отменяет, а даже обостряет для системотехников необходимость глубокого знания особенностей и сравнительных характеристик существующих микросхем. Подробное описание сложной программируемой микросхемы в фирменных справочниках может занимать десятки или даже сотни страниц, и его изучение требует немалого времени. Сравнительная оценка ПЛИС затрудняется не только многочисленностью их параметров, но и тем, что методика определения некоторых параметров у разных фирм не только различна, но порою приводит к существенно расходящимся результатам. При выборе микросхем для применения в конкретном проекте приходится оценивать многие их параметры, и, как обычно в подобных ситуациях, возникают трудности учета разнородных характеристик. Тем не менее, не приходится говорить о формировании многокритериальной функции качества, поскольку практика проектирования не подтвердила, как и следовало ожидать, эффективности такого подхода.
1.10.1. Об оценке логической сложности (уровня интеграции) ПЛИС Сложность программируемых микросхем с давних пор оценивается, как уже было сказано выше, с использованием понятия "число эквивалентных вентилей", причем под вентилем понимают обычно логический элемент 2И -НЕ.
112
Проектирование систем на микросхемах программируемой логики
В свое время программируемые схемы (базовые матричные кристаллы) содержали именно такие или близкие к ним вентили, поэтому подсчет числа вентилей на кристалле давал достаточно точную оценку его логической емкости (логической мощности, уровня интеграции). Однако для последующих ПЛИС, более разнообразных по схемотехнике, стало невозможным просто подсчитывать число вентилей на кристалле, поскольку схемы кристалла отнюдь не состояли из таких вентилей. На начальном этапе развития ПЛИС разнобой в подходе разных производителей к оценке логической сложности схем очень затруднял их сопоставление по этому параметру. На ранней стадии развития ПЛИС упорядочить эту ситуацию удалось консорциуму компаний PREP (Programmable Electronics Performance Corporation). Согласно широко признанной в свое время методике подсчета по рекомендациям этого консорциума, оценка сложности ИС проводится с помощью набора эталонных схем. Для измерения сложности кристалла определяется максимально возможное число реализаций в нем каждой схемы из этого набора. Из практики работы с взятым для образца БМК сложность, выраженная в числе эквивалентных вентилей, для каждой эталонной схемы известна. Далее можно получить и сложность оцениваемого кристалла по данной эталонной схеме, определяемую как произведение ее сложности на максимально возможное число реализаций таких схем на кристалле. В качестве эталонных схем были выбраны 10 типовых функциональных узлов (регистры, счетчики, дешифраторы и т. д.). Усредненная по всем эталонным схемам величина характеризует итоговый (окончательный) показатель сложности микросхемы в целом. Идея эталонного (тестового) набора функциональных узлов явилась основой и для созданных другими авторами, в частности в работе [4], методик измерения сложности (а также и быстродействия) программируемых микросхем. Далее ситуация осложнилась, стали широко применяться крупнозернистые функциональные блоки сложной структуры, и вместе с ними появились спорные интерпретации различных параметров. Разнобой в методиках оценки логической емкости кристалла увеличивался, и параметр "число эквивалентных вентилей" становился все более шатким. Этот параметр, тем не менее, чаще всего фигурирует в качестве одного из основных в таблицах, приводимых в справочниках фирм -изготовителей ПЛИС, хотя нередко вместо этой единой оценки сложности кристалла производители стали указывать отдельно размерности разных по функциональному назначению областей кристалла или даже переходить к прямому сравнению своей продукции со сходной продукцией других фирм, выполняемому по выбранным конкретным ситуациям. Сложность ПЛИС первых поколений достаточно точно оценивалась числом эквивалентных вентилей в двух вариантах — общим числом (Total) и/или пользовательским (Usable), поскольку не все элементы схемы кристалла мо -
Глава 1. Элементная база электронных устройств и систем
113
гут быть использованы системотехником в его проекте. К сожалению, не всегда в документации на схему четко указывается, о каком варианте оценки идет речь (и это относится не только к параметру "число эквивалентных вентилей"). В последнее время, как правило, приводится число пользовательских эквивалентных вентилей. В дальнейшем изложении определение "эквивалентные" для краткости будет иногда заменяться термином "число вентилей". В ходе дальнейшего развития ПЛИС положение с оценкой их сложности осложнилось еще более. В качестве функциональных блоков стали применять табличные преобразователи (LUT -блоки), которые допускают неоднозначное использование — они способны воспроизводить логические функции или работать в качестве блоков памяти с той или иной организацией. В зависимости от режима работы существенно меняется и оценка сложности одного и того же фрагмента схемы, поскольку эквивалентные реализации разных режимов работы LUT -блоков средствами БМК сильно различаются по сложности (в несколько раз). На этом этапе возникли понятия числа логических вентилей и числа системных вентилей. При подсчете числа логических вентилей предполагается работа функциональных блоков в режиме воспроизведения логических функций. При подсчете числа системных вентилей предполагается, что часть функциональных блоков работает в режиме блоков памяти и, следовательно, имеет другую эквивалентную сложность. Естественно, числа логических и системных вентилей в одной и той же микросхеме не совпадают. Позднее положение с оценкой сложности ПЛИС дополнительно осложнилось из -за появления на кристалле специализированных областей встроенной памяти и других структурных неоднородностей. Встроенная память, в частности, также может применяться как По прямому назначению, так и для воспроизведения логических функций табличным методом. Подсчитывая число вентилей в своих микросхемах, три крупнейших производителя ПЛИС занимают неодинаковые позиции. К методике оценки логической емкости программируемой микросхемы, принятой фирмой Xilinx, склоняется также фирма Altera, тогда как фирма Actel пользуется другой методикой, приводящей к иным результатам, и считает показатели фирм Хilinх и Altera завышенными. Например, фирмы Actel и Cypress, указав для одной из своих ПЛИС семейства pASIC сложность в 12 тыс. эквивалентных вентилей, сопроводили свою оценку замечанием, что по методике измерений фирм Altera и Xilinx это соответствовало бы сложности в 36 тыс. эквивалентных вентилей. Из сказанного следует, что при" рассмотрении параметра сложности ПЛИС нужно внимательно следить за тем смыслом, который вкладывается в каждом конкретном случае в приводимый показатель. Методика фирмы Altera основана на сравнении аппаратных затрат при реализации одних и тех же устройств в двух вариантах: на оцениваемой ПЛИС
114
Проектирование систем на микросхемах программируемой логики
и на известном базовом матричном кристалле LCA300K, логической основой которого являются вентили, подобные принятым в качестве эквивалентных. Основная проблема оценки логической емкости ПЛИС создается наличием в ней как логической части (FPGA, CPLD), так и модулей памяти. Для оценки логической емкости микросхемы в этих условиях используются несколько параметров [4]: - емкость логического массива; - логическая емкость массива памяти при реализации логических функций; - логическая емкость массива памяти при реализации запоминающих устройств; - диапазон изменения логической емкости; - типичная логическая емкость. Емкость логического массива определяется как произведение логической емкости одного логического элемента q на их число М в данной ПЛИС. Для нахождения емкости одного логического элемента рассматриваются схемы, которые могут быть в нем реализованы. Эти схемы сопоставляются с библиотечными модулями эталонного БМК (LCA300K), что дает их оценку в числах эквивалентных вентилей. За логическую емкость элемента q принимается число эквивалентных вентилей, усредненное по всему множеству проанализированных схем. Таким образом, емкость логического массива L1 = qN1. Логическая емкость массива памяти при реализации логических функций L2 определяется как произведение логической емкости модуля памяти р на число N2 таких модулей в данной ПЛИС. Параметр р определяется опять таки на основе анализа библиотечных модулей БМК — это среднее число эквивалентных вентилей, необходимых для воспроизведения функций, реализуемых модулем памяти. Таким образом, LI = pN1. Логическая емкость массива памяти при реализации запоминающих, устройств L3 определяется как произведение числа s вентилей БМК, необходимых для создания схемы хранения одного бита данных, на емкость М массива памяти ПЛИС. Таким образом, L3 = sM. Диапазон изменения логической емкости. Значение логической емкости ПЛИС, как можно видеть, зависит от способа использования модулей памяти. Оценки сложности отдельных схемных элементов, принятые фирмами Altera и Xilinx, таковы, что вариант с использованием памяти по прямому назначению даст верхнюю границу диапазона значений логической емкости ПЛИС, а вариант с использованием всей памяти для воспроизведения логических функций — нижнюю. Следовательно, минимальная логическая емкость ПЛИС Lmin = L1 + L2, а максимальная Lmax = L1 + L3.
Глава 1. Элементная база электронных устройств и систем
115
Типичная логическая емкость. Для оценки типичного значения логической емкости кристалла привлекаются статистические данные о доле массива памяти, используемой для реализации логических функций, усредненные по множеству проанализированных проектов. Как правило, эта доля лежит в пределах 15—35%. Обозначив эту долю через d, для нахождения типичной логической емкости кристалла Ltyp, выраженной в числе системных вентилей, можно записать соотношение Ltyp = L1 + dL2 + (1 — d)L3. Приведенные формулы справедливы для оценки основной части ПЛИС, занятой функциональными ячейками и памятью. Наличие областей с блоками ввода/вывода и другими блоками в некоторой мере изменяет соотношение между указанными параметрами. В справочных данных фирм часто указывается типичный диапазон числа вентилей, в котором нижняя граница соответствует числу вентилей в составе функциональных блоков, работающих в режиме воспроизведения логических функций, а верхняя определяется при указании доли этих блоков, реализующих функции памяти (обычно это 20—30%). Укажем для примера цифры, полученные фирмами Altera и Xilinx для своих популярных семейств. Фирма Altera для семейства FLEX10K приняла следующие параметры: q = 12, р = 150, s = 4. Фирма Xilinx для семейства Virtex II считает каждую логическую ячейку в логическом режиме соответствующей 12 системным вентилям, а в режиме распределенной памяти — 64 -м (16 битх4 ЛЭ/бит). Каждая схема автоподстройки по задержкам синхросигналов DLL дает 7К вентилей, каждая логическая ячейка в режиме программируемого элемента задержки — 112 вентилей, каждый бит блока памяти — 4 системных вентиля. Цифра 4 как оценка эквивалента одного бита памяти при реализации памяти с помощью логических вентилей, принятая многими фирмами, объясняет резкий рост оценок уровня интеграции современных ПЛИС относительно их недавних предшественников. Действительно, введение в состав ПЛИС относительно больших массивов встроенной памяти при оценке их сложности числом эквивалентных вентилей путем умножения емкости в битах на четыре сразу дает большую прибавку к оценке уровня интеграции. Иными словами, скачкообразный рост расчетного уровня интеграции современных сложных ПЛИС только отчасти объясняется совершенствованием процессов их производства и во многом стал следствием принятой методики оценки логической емкости микросхем. При выборе подходящей ПЛИС для своего проекта системотехник не может полагаться на какой -либо параметр микросхем или даже 2—3 параметра. Проблема выбора достаточно сложна и требует проведения квалифицированного анализа совокупности параметров ПЛИС с учетом специфики подлежащего реализации проекта.
116
Проектирование систем на микросхемах программируемой логики
Почему нельзя полагаться на параметр "число вентилей"? Во -первых, из -за различия архитектур ПЛИС. Логические блоки ПЛИС уже не являются "мелкозернистыми" и представляют собой довольно сложные схемы. Какой будет эффективность использования логических ресурсов кристалла при реализации данного проекта? Называя цифру "число вентилей", производители ПЛИС часто имеют в виду 100% их использования (некоторые фирмы указывают более скромные цифры). На самом деле, в составе сложных логических блоков может оказаться значительная доля неиспользуемых ресурсов. Кроме того, проект может исчерпать трассировочные ресурсы раньше, чем будет использована имеющаяся на кристалле логика, и, таким образом, часть логических ресурсов "пропадет". Очень спорны вопросы пересчета встроенной (дискретной) и распределенной памяти кристалла, т. е. памяти, реализованной в виде специальных блоков, и находящейся в составе функциональных блоков типа LUT, в число эквивалентных вентилей. В этом случае получаемое число эквивалентных вентилей резко зависит от того, в каком качестве будет служить память. Если она применяется по своему назначению для создания той или иной конфигурации ЗУ (очень часто в проектах интенсивно используются блоки FIFO), то ее присутствие сильно увеличивает оценку числа эквивалентных вентилей на кристалле. А какую роль будет играть память в реализуемом проекте — это еще вопрос. Далее, большую роль играет технология проектирования схем. Например, схема может быть реализована с помощью неэффективного компилятора САПР или же вручную доработана опытным специалистом. Ясно, что затраты оборудования на реализацию проекта для этих вариантов могут существенно отличаться. Ясно также, что, пользуясь оценками по затратам оборудования на построение разных функциональных узлов, фирмы -производители обеспечивали высококачественное проектирование. Сможет ли потребитель для своего проекта обеспечить такое же качественное проектирование? Кроме того, разные производители включают в состав средств для счета вентилей разные ресурсы. Могут быть включены или не включены в этот состав буферные элементы, схемы граничного сканирования по интерфейсу JTAG, дополнительные схемы быстродействующих декодеров и т. д. Понятно, что это тоже вносит разночтения в приводимые оценки. Отмеченные обстоятельства не исчерпывают проблематику сложности оценки логической емкости кристалла, достоверной для конкретного проекта, но убедительно свидетельствуют о сугубо ориентировочном характере группы параметров, связанных с понятием "число эквивалентных вентилей". Наряду с числом эквивалентных вентилей в числе параметров ПЛИС указываются числа макроячеек (для CPLD), логических блоков или логических ячеек (для FPGA и микросхем комбинированной архитектуры). Сведения об этих
Глава 1. Элементная база электронных устройств и систем
117
параметрах, пожалуй, более репрезентативны, т. к. говорят о числе функций, которые могут быть воспроизведены данной микросхемой. Однако и здесь не все однозначно, поскольку воспроизводимые функции неидентичны, и малое число сложных функций может дать больше функциональных возможностей, чем большое число простых. Кроме того, в схемах используются различные функциональные расширители, цепи быстрых переносов и каскадирования и другие фрагменты, которые не отображаются как самостоятельная логика, но могут существенно влиять на функциональные возможности кристалла, причем степень такого влияния опять -таки зависит от характера конкретного проекта. В связи со сказанным в приведенном ниже обзоре новых микросхем с программируемой структурой даны сведения о них как по числу вентилей, так и по числу логических элементов (макроячеек, логических блоков).
1.10.2. Об оценке быстродействия ПЛИС Быстродействие ПЛИС характеризуется либо задержками распространения сигналов по указанным путям, либо максимальными частотами их работы в указанных условиях. Пути распространения сигналов в классических CPLD жестко предопределены их архитектурой и задержки по путям от любого входа до любого выхода (Pin -to -pin, Corner -to -corner, Clock -to -pin) могут достаточно хорошо характеризовать быстродействие CPLD. Пути распространения сигналов в FPGA разнообразны, и для них с целью оценки быстродействия целесообразно пользоваться максимально возможной частотой тактирования, причем эта частота может быть указана для различных схем. Часто указывают либо максимально возможную частоту работы счетчика FCNT либо частоту работы (тактирования) схемы в целом Fc, называемую системной. Обычно системная частота приблизительно вдвое ниже, чем частота работы счетчика. Могут быть указаны и другие частоты, например, частота тактирования передач типа "регистр -регистр" Frr или частота F m a x , называемая просто "максимальной" без конкретного уточнения схемы, к которой она относится. Именно эта частота фигурирует в описаниях многих микросхем, хотя ясно, что без указания схемы, о тактировании которой идет речь, приводимая цифра теряет смысл. Иногда понятно, как следует трактовать величину Fmax (например, в случае получения результата при однократном прохождении сигналов от входов к выходам микросхемы). Но в более сложных ситуациях (например, при использовании в схеме обратных связей) требуется конкретная оценка максимальных частот тактирования для данного устройства, реализованного в той или иной микросхеме. Тракт прохождения сигналов в цифровом устройстве можно представить в виде последовательности секций
118
Проектирование систем на микросхемах программируемой логики
"регистр -комбинационная схема -регистр". Согласно формулам расчета параметров синхросигналов для устройств, содержащих подобные секции [27], минимальный период синхроимпульсов для однофазной системы синхронизации определяется как Т= 2А + Tsu + Ттг.mах + Ткц.тах, где А — нестабильность положения фронта синхроимпульса во времени, Tsu — параметр предустановки информационных сигналов на входах триггеров регистра -приемника, Ттг.тах — максимальная задержка от поступления на вход триггера регистра -передатчика тактового сигнала до установления данных на его выходах, Ткц.тах — максимальная задержка сигнала в комбинационных схемах и цепях связи между регистром -передатчиком и регистром -приемником. Величина A есть "поле допуска" для временного положения фронта синхросигналов, т. е. интервал появления фронта синхросигнала задается от t — А до t + A, где t — теоретический момент появления фронта синхроимпульса. Минимальный период тактирования схемы при данных параметрах (Tsu и Ттг.mах) синхронизируемых триггеров (регистров) и нестабильности фронтов синхросигналов зависит от Ткц.mах, т. е. от задержки выработки логической функции комбинационной схемой и задержки в цепях связи для соответствующей секции (яруса схемы или ступени конвейера). Секция с максимальным значением Т ограничит возможную частоту тактирования устройства. Максимальная частота синхронизации Fmax = 1/T. Нередко в сведениях о ПЛИС приводятся тактирующие частоты для синхронизации внутреннего ядра и цепей ввода/вывода микросхемы. Встречаются различные соотношения между этими частотами. Внутренняя частота при многоразрядных трактах передач информации, как правило, выше, чем частота ввода/вывода, но в других ситуациях может наблюдаться и противоположная картина. В частности, в новых сложных ПЛИС все чаще используются линии последовательного ввода/вывода, которые в сочетании с малосигнальными дифференциальными схемами передачи сигналов (например, по стандарту LVDS) обеспечивают чрезвычайно высокие скорости обмена. В таких случаях даже при параллелизации данных внутри приемника скорости передач могут оказаться приемлемыми. Например, для линии со скоростью передачи 2,5 Гбит/с переход к байт -последовательной передаче даст частоту передачи байтов выше 300 МГц. Четыре таких скоростных линии последовательной передачи смогут обеспечить передачу с частотой 300 МГц 32 -разрядных слов, а 8 линий смогут передавать 32 -разрядные слова с частотой 600 МГц. Преобразования данных из последовательной формы в параллельную и наоборот связаны с применением сдвигающих регистров типа SIPO (Serial Input — Parallel Output) или PISO (Parallel Input — Serial Output). Естественно, при этом требуется строгая синхронность подачи последовательных данных и синхросигналов, управляющих сдвигами данных в реги -
Глава 1. Элементная база электронных устройств и систем
119
страх. При работе на высоких частотах обеспечение синхронизации становится сложной проблемой. Для ее решения в состав соответствующих ПЛИС включают блоки CDR (Clock Data Recovery). Оценка быстродействия ПЛИС дается также с применением понятия градация быстродействия. Этот параметр входит в состав кода обозначения схемы в виде цифры, перед которой ставится дефис ( -3, -4, -5 и т. д.). Для архитектур типа CPLD с характерной для них независимостью задержек распространения сигналов от их конкретных путей цифра, приводимая на позиции "градация быстродействия", приближенно совпадает с округленным значением задержки распространения сигнала через данную ПЛИС. Для архитектур типа FPGA и комбинированных архитектур цифра, определяющая градацию быстродействия, имеет лишь относительное значение. Она ранжирует микросхемы по быстродействию, но не указывает абсолютные значения динамических параметров, являясь, таким образом, как бы указателем для их поиска в таблице. Указание градаций быстродействия целесообразно для сравнительной оценки ПЛИС одного и того же семейства, но будет бесполезно для сравнения микросхем разной архитектуры [4]. Для сравнения разнотипных ПЛИС лучше оценивать тактовые частоты устойчивой работы типовых функциональных узлов, реализованных в данной микросхеме. Важной экономической характеристикой ПЛИС является их стоимость. Стоимость ПЛИС, как и других БИС/СБИС, меняется со временем. Цена новых сложных ПЛИС вначале высока, но довольно быстро снижается и затем устанавливается на относительно стабильном уровне, испытывая лишь небольшие конъюнктурные колебания. Стоимость микросхем во многом определяется типом их корпусов — в зависимости от этого фактора цена одного и того же кристалла может измениться более чем в 10 раз. Значительно повышаются и цены микросхем, имеющих специальную приемку (военную и др.). Стоимость, как и для других видов продукции, зависит от размера приобретаемой партии микросхем (лота) и ряда других факторов. Кстати говоря, одним из преимуществ ПЛИС перед БМК и другими микросхемами, объявляемым многими фирмами-производителями, является отсутствие минимального порога при их заказе: допускается заказ любого количества микросхем.
1.10.3. Сведения о современной продукции крупнейших фирм -производителей микросхем с программируемой структурой В заключение главы приведем краткую сводку сведений о продукции основных производителей ИС с программируемыми структурами. В материалах этого раздела использованы справочные данные фирм -производителей, а также обзора [44].
120
Проектирование систем на микросхемах программируемой логики
Сведения, не включающие описаний блочных "систем на кристалле" с процессорными ядрами Ниже приводятся рисунки и комментарии к ним, отображающие основные параметры и свойства ИСПС. На рисунках представлены только новые семейства, перспективные для будущих разработок. Не показаны семейства, которые пока не сняты с производства и могут применяться по тем или иным соображениям, но имеют более современных преемников. Сведения о некоторых таких семействах, не показанных на рисунках, даются в тексте. Хотя приводимые ниже материалы освещают достаточно широкую область в производстве ИСПС, они все же не являются полностью исчерпывающими и не претендуют на описание всех без исключения разработок. Микросхемы сгруппированы по признаку кратности программирования (т. е. по типу памяти конфигурации), а внутри этих групп по фирмам производителям (маркировки микросхем не приводятся). При первом упоминании фирмы указывается и ее интернет -адрес. Каждое семейство ИСПС изображается горизонтально расположенной прямоугольной областью с несколькими поперечными вертикальными линиями, которым соответствуют микросхемы -члены семейства. Против каждой вертикальной линии сверху (а при нехватке места, и снизу) проставлена цифра, указывающая число эквивалентных вентилей в данной микросхеме. Если в справочных данных для микросхемы имелась конкретизация параметра "число вентилей", то это отображается и на рисунке, где приняты следующие обозначения: NB — число эквивалентных вентилей, Nbc — число системных эквивалентных вентилей, Nbtyp — типовое число эквивалентных вентилей. Данные о числе вентилей приводятся для всех членов семейства. Рядом с названием семейства записывается напряжение питания ядра микросхемы. Левее прямоугольника, при необходимости (если на одном и том же рисунке встречаются разнотипные архитектуры ИСПС), указывается архитектура микросхемы. Остальные параметры приводятся только в виде диапазона их значений для данного семейства (указываются значения для младшего и старшего членов семейства). Сведения о быстродействии включают в себя указание на ту или иную максимально допустимую частоту. Системная частота Fc или Fmax — максимальные частоты, на которых могут работать собранная в данной микросхеме сложная схема, содержащая множество функциональных блоков, или (если это отмечено) конкретное устройство, Fcnt - максимальная частота работы счетчика (чаще всего в качестве испытательного образца берется 16 -разрядный двоичный счетчик), Frr— максимальная частота передач "регистр -регистр". К параметрам, задаваемым диапазоном значений для всего семейства, могут относиться следующие: - число макроячеек Nмя (для CPLD) или логических элементов Nлэ (для FPGA);
Глава 1. Элементная база электронных устройств и систем
121
- суммарная емкость памяти Mlut в схемах табличных функциональных преобразователей (блоков типа LUT); - суммарная емкость встроенных блоков памяти Mвбп; - число пользовательских вводов/выводов Nвв; - стоимость микросхем, $. Число вентилей измеряется в тысячах, емкости блоков памяти — в битах. Диапазон значений NBB дается с учетом разных вариантов корпусов микросхем, иначе говоря, к различным цифрам могут относиться и разные типы корпусов, в которых выпускаются микросхемы данного семейства. Стоимость микросхем приводится по американским данным 2001 года для лотов в 10 тыс. шт., для самых дешевых корпусов, схем минимального быстродействия и коммерческого диапазона температур. В виде отдельных примечаний для некоторых семейств, обладающих ярко выраженными особенностями, они указываются текстовой надписью. На рис. 1.34 приведены сведения об однократно конфигурируемых FPGA с программированием перемычек типа antifuse. В этом секторе рынка доминируют фирмы Actel и QuickLogic. Полезные свойства ПЛИС с перемычками типа antifuse — невысокая стоимость, высокое быстродействие, высшая степень засекречивания проекта, повышенная стойкость к воздействию радиации. Недостаток — однократность программирования. Естественно, конфигурация схем сохраняется при снятии питания микросхемы. Большинство выпускаемых FPGA с перемычками типа antifuse имеют уровень интеграции, оцениваемый числом вентилей от 3 до приблизительно 100 тыс. Исключение составляет семейство Eclipse фирмы QuickLogic с уровнем интеграции до 580 тыс. эквивалентных вентилей. Отличительными чертами FPGA семейства Eclipse, кроме высокого уровня интеграции, можно считать большие возможности входных и выходных буферов. В них введены триггеры для фиксации входных и выходных сигналов, а также сигналов управления третьими состояниями буферов, поддерживается множество стандартов выходных сигналов, в том числе и для дифференциальных передач. Введены 4 схемы PLL, реализован большой объем встроенных блоков двухпортовой памяти RAM. В группе реконфигурируемых ПЛИС с электрическим программированием состояний транзисторов типа ЛИЗМОП представлена продукция 5 фирм (рис. 1.35). Память конфигурации типов EEPROM и Flash характерна почти исключительно для CPLD, где эти типы памяти сменили применявшуюся ранее память типа EPROM. Пионер в разработке CPLD — фирма Altera, впервые
Глава /. Элементная база электронных устройств и систем
125
реализовавшая их в конце 1980 гг. Основой большинства современных CPLD этой фирмы явилась архитектура семейства МАХ7000, вслед за которым появились модификации, развивавшиеся в двух направлениях. В рамках первого направления возросшие технологические возможности использовались для увеличения уровня интеграции микросхем, числа их макроячеек и быстродействия при одновременном снижении напряжений питания, потребляемой микросхемами мощности и стоимости в расчете на одну макроячейку. Начиная с семейства MAX7000S, микросхемы снабжаются средствами программирования в системе (ISP). Отличительной чертой микросхем становится также большое разнообразие в выборе стандартов для сигналов ввода/вывода, уровни которых могут быть как ниже, так и выше рабочего напряжения ядра (Multivolt I/O Technology). Семейство МАХ9000 также ориентировано на повышение уровня интеграции. Его старший представитель имеет 12 тыс. макроячеек против 5 тыс. у старшего представителя семейства МАХ7000. Однако при этом пришлось перейти к иерархической системе межсоединений, что привело к утере ценного свойства CPLD классической структуры — предсказуемости и постоянства задержек сигналов независимо от их конкретного пути. Второе направление, представленное семейством МАХЗОООА, связано со стремлением к удешевлению микросхем. Семейство МАХЗОООА отличается от базового семейства МАХ7000 снижением требований к некоторым параметрам схемы, прежде всего, к потребляемой ими мощности. Микросхемы семейства МАХЗОООА тестируются по пониженным нормам, уменьшен выбор типов их корпусов, реализованы не все возможности базового семейства МАХ7000. Следствием стало снижение цен почти вдвое. Фирма Cypress Semiconductor в секторе продукции CPLD с памятью конфигурации EEPROM представлена семейством микросхем Ultra37000. Это семейство реализовано на основе архитектуры семейства МАХ7000 фирмы Altera, но, как указывает фирма Cypress Semiconductor, имеет ряд усовершенствований в сравнении с базовым вариантом. Изменения касаются временных параметров схем, у них отсутствует ощутимое влияние коэффициента разветвления на задержку распространения сигналов, снижены задержки, вносимые логическими расширителями, отсутствует рост задержек сигналов с увеличением числа термов макроячеек вплоть до 16 и др. Фирма Atmel известна как поставщик популярных PAL типов 16V8, 20V8, 22V10 (в этой главе из -за широкой известности эти PAL подробно не рассматривались). В области CPLD высокого уровня интеграции фирма производит семейство ATF1500. Семейство ATF1500, как и семейство Ultra3700 фирмы Cypress Semiconductor, сходно с семейством МАХ7000 фирмы Altera и конкурирует с ним. В микросхемах фирмы Atmel увеличено число входов у логических блоков и ресурсы трассировки. Фирма Atmel считает, что в ее микросхемах можно размещать более сложные проекты, чем в микросхемах
126
Проектирование систем на микросхемах программируемой логики
семейства МАХ7000 со сравнимым числом макроячеек. В микросхемах семейства ATF1500 используется память конфигурации типа Flash. Фирма Xilinx подключилась к производству CPLD лишь во втором поколении своих ПЛИС и в ограниченном масштабе. Ею выпущено семейство ХС9500 с памятью конфигурации типа Flash. Схемотехника микросхем семейства ХС9500 рассматривалась выше в качестве примеров решений, характерных для CPLD. Фирма Lattice Semiconductor стала в области ИСПС также и преемником фирмы AMD в связи с приобретением у нее подразделения Vantis, с давних пор занимавшегося производством PAL и CPLD. Эта фирма известна, в частности, тем, что впервые применила программирование в системе (ISP) для ПЛИС невысокого уровня интеграции. С тех пор активность фирмы в области ISP подчеркивается даже в названиях ее микросхем. В сфере CPLD продукция фирмы делится на секторы: особо быстродействующей (SuperFast), особо "широкой" (SuperWide) и особо сложной (SuperBig). Особо быстродействующие микросхемы второго поколения семейства ispLSI2000VE имеют время распространения сигнала от входа к выходу около 3 не и максимальную частоту 300 МГц, особо "широкие" микросхемы семейства ispLSISOOOVE имеют по 68 входов на каждый логический блок (однако в один логический блок этих микросхем входят 32 макроячейки, так что отношение "число входов блока/число макроячеек в блоке" не является столь уж большим и даже уступает этому показателю некоторых других CPLD). В особо сложных микросхемах семейства ispLSISOOO введена двухуровневая система межсоединений. Средства локальной трассировки объединяют по 20 макроячеек в так называемые мегаблоки, а 6 мегаблоков связываются между собой средствами глобальной трассировки. Микросхемы имеют встроенные шины с тремя состояниями и 108 линиями. Буферы ввода/вывода имеют триггеры для возможности выбора комбинационного или регистрового варианта для всех сигналов входов, выходов и управления дву направленностью. Фирма Lattice Semiconductor выпускает также микросхему специальной архитектуры ispG, в которой мало логических элементов и почти все ресурсы кристалла отданы под программируемые средства коммутации. Напомним, что фирма Lattice Semiconductor принадлежит также к пока малому числу производителей аналоговых схем с программируемыми структурами (ПАЙС). Фирма Actel, наиболее известная как производитель ПЛИС с перемычками типа antifuse, приняла участие и в выпуске реконфигурируемых микросхем, что связано с покупкой ею фирмы Gatefield Corporation с ее производством семейства ProASICSOOK. По своей архитектуре микросхемы ProASICSOOK относятся к FPGA (это единственный представитель класса FPGA среди микросхем с памятью конфигурации типа EEPROM или Flash). Произведет -
Глава 1. Элементная база электронных устройств и систем
127
вом микросхем ProASICSOOK с Flash -памятью конфигурации фирма Actel поддерживает концепцию тесной преемственности FPGA и БМК, заботясь об их подобии. Микросхемы ProASICSOOK имеют крайне мелкозернистые логические ячейки, что позволяет в значительной мере сохранить для этого семейства методику и инструменты проектирования, освоенные ранее для БМК. В группу оперативно репрограммируемых ИСПС входит большое число микросхем разной архитектуры и разных уровней интеграции (рис. 1.36).
Рис. 1.36. Основные параметры оперативно репрограммируемых ИСПС с триггерной памятью конфигурации (см. продолжение)
128
Проектирование систем на микросхемах программируемой логики
129
Глава 1. Элементная база электронных устройств и систем
Фирма Atmel www.atmel.com Семейство АТ6000; 3 ... 5,5 В NB
FPGA Млэ NBB
6
15
9
30
1024 84
Fc= 100МГц $6... 40
6400 240
Особенность - реализуемость кэш -логики Семейство АТ40К; 3 ... 5,5 В NB
10
FPGA Млэ NBB
20
30
_L
_Е
Рс=100МГц
50
$ 5 ... 50
6400 352
256 84
Особенность - реализуемость кэш -логики Имеется память объемом 2048... 18432 бит
Фирма Cypress www.cypress.com Семейство Delta 39K; 3,3 В; 2.5 В; 1,8В NB
15 50
Fc = 250 МГц 165
250
350
CPLD NB NMH
NBB
30 100 256 208
200 5376 676
Имеется память объемом 40960... 860160 бит
Рис. 1.36. Продолжение
$18... 145
130
Проектирование систем на микросхемах программируемой лотки Фирма Agere Systems www.agere.com Семейство ORCA3; 5 В, 3,3 В; 2,5 В NBC
244
340
FPGA Nlut 8192 Mlut 131000 NBB 206
11552 185000 660
Рсмт=176МГц $ 9,6 .. 206
Семейство ORCA4; 1,5В NBC
470
720
970
1350
1700
FPGA Nlut 4992 Nu6n 73728 NBB 400
39960 221184 1068
рс = 250МГц $
4 1
-
6 9 7
Особенность семейств - наличие встроенного интерфейса для процессора Рис. 1.36. Окончание
Среди ИСПС с триггерной памятью конфигурации преобладают архитектуры FPGA и комбинированные архитектуры, а по уровню интеграции эти схемы располагаются в диапазоне от нескольких тысяч до 10 млн. эквивалентных вентилей. Последняя цифра относится к микросхемам типа "системы на кристалле". Оперативное репрограммирование появилось в разработках фирмы Хilinх — создателя FPGA с триггерной памятью конфигурации (SRAM -based FPGA). Перечень выпущенных фирмой Хilinх FPGA с оперативным репрограмми рованием насчитывает несколько семейств. К современным микросхемам можно отнести семейства, начиная с XC4000E/XL, в состав которого входит довольно много представителей и архитектура которого послужила базой для последующего семейства Spartan. В дальнейшем технологический прогресс позволил усложнить схемы, увеличить в них число логических блоков и ресурсы трассировки, улучшить технико -экономические показатели. На новую ступень развития архитектуры и схемотехники продукция фирмы
Глава 1. Элементная база электронных устройств и систем
131
Xilinx перешла при создании семейств Virtex и их модификаций, достигнутый уровень был затем использован при разработке семейства Spartan II. Архитектура логических элементов у всех микросхем фирмы Xilinx традици онна, они содержат табличные функциональные преобразователи, триггеры и программируемые мультиплексоры. Память в течение довольно длительного времени аккумулировалась в ресурсах LUT -блоков, но в семействе Virtex и последующих появились и встроенные блоки памяти. При переходе к семействам Virtex и Virtex E были изменены параметры LUT -блоков и характер схем памяти. Распределенная память дополнилась 4 -К.битными двухпортовыми блоками памяти SRAM, для блоков верхнего уровня памяти были применены высокоскоростные буферы ввода/вывода с целью реализации скоростного интерфейса как между этими блоками, так и для обмена между ними и внешними статическими и динамическими ЗУ. Число блоков DLL было доведено до 8, был введен протокол обмена информацией с производительностью более чем 300 Мбит/с на контакт (SelectLink). В семействе Virtex EM два верхних слоя межсоединений выполнены на медных проводниках для распределения по кристаллу мощных сигналов тактирования с большой скоростью. Семейство Spartan II основано на технических новшествах, разработанных при создании микросхем Virtex, но его микросхемы проще и дешевле. Семейство Spartan II родственно по архитектуре семейству Virtex, но в нем сокращен состав функциональных блоков (нет параллельного интерфейса для одного из режимов конфигурирования, нет средств создания декодеров методами монтажной логики и т. д.), используются только дешевые корпуса. Последняя разработка фирмы в рамках данного направления — семейство Spartan IIE с цепями передачи данных типа LVDS (малосигнальными дифференциальными линиями связей), ориентированное на реализацию быстрых алгоритмов ЦОС. Отмечается, что микросхемы семейства Spartan IIE сочетают такие ценные свойства, как уровень интеграции, приближающийся к возможностям ASIC, малое время выхода продукции на рынок и репро граммируемость при хорошем соотношении цена/вентиль. Сложность микросхем семейства лежит в пределах от 50 до 300 тыс. вентилей. Последнее на сегодня мегавентильное семейство микросхем фирмы Xilinx — Virtex II. В его архитектуре продолжена линия усложнения логических блоков, увеличены объемы памяти и ресурсы трассировки. Введена специализированная схема быстрого умножителя 18x18. Появились внутрикристальные резисторы -терминаторы для линий передачи сигналов с возможностью выбора их сопротивлений, которые автоматически устанавливаются соответственно внешним условиям. На будущее планируется выпуск семейства Virtex IIРго с интегрированным ядром процессора Power PC фирмы IBM. Если фирма Xilinx имеет приоритет в применении триггерной памяти конфигурации, то лидером в развитии ПЛИС комбинированной архитектуры
132
Проектирование систем на микросхемах программируемой логики
можно считать фирму Altera. Первым семейством микросхем с комбинированной архитектурой были микросхемы семейства FLEX8000, затем появились семейства FLEX10K/KE и FLEX6000. По типу логических блоков эти семейства можно отнести к FPGA, но по типу системы межсоединений, напротив, они имеют близость к CPLD, т. к. фирма Altera избегает сегментированных линий связи, стремясь по возможности сохранить предсказуемость задержек в связях. Структура и схемотехника микросхем семейства FLEX10K/KE рассмотрена ранее в этой главе. Семейства FLEX6000 и FLEX6000A структурно упрощены в сравнении с семейством FLEX10K/KE, но одновременно с этим выполнены на более новом и совершенном технологическом базисе, имеют улучшенные показатели по плотности и быстродействию схем. Эти схемы расцениваются как удачное решение с точки зрения сочетания параметров "цена -производительность" для проектов, не требующих наличия памяти на кристалле и не слишком сложных. В сравнении с семейством FLEX10K/KE в микросхемах FLEX6000 и FLEX6000A исключены блоки PLL, сокращены ресурсы глобальной трассировки и усилены ресурсы местных связей, ограничен выбор типов корпусов. Семейство АСЕХ1К — вариант микросхем FLEX10K/KE, реализованный с уменьшенными топологическими нормами, но значительно более дешевый, чем его мегавентильные "соседи" того же технологического поколения. Микросхемы семейства АСЕХ1К имеют сравнительно небольшой уровень интеграции, меньший выбор типов корпусов. Эти микросхемы популярны у отечественных разработчиков вследствие невысокой стоимости при хороших технических параметрах. Последнее семейство микросхем фирмы Altera — Mercury (Меркурий) оптимизировано по критерию быстродействия и ориентировано на использование в высокопроизводительных системах ЦОС и сложных коммуникационных системах. Имеет высокоскоростную систему межсоединений с использованием приоритетностей и конвейерный умножитель, до 18 каналов поддержки CDR (Clock Data Recovery), и способно поддерживать протоколы Gigabit Ethernet и другие скоростные протоколы передачи данных. Семейства микросхем АРЕХ20К/КЕ и APEX II типа "система на кристалле" рассмотрены выше в разд. 1.6. Фирма Agere Systems (ранее Lucent Technology и еще ранее AT&T Microelectronic) в соответствии с изначальной проблемной ориентацией фирмы AT&T концентрирует свои усилия на производстве микросхем для систем цифровой связи. Эта фирма на современном этапе выпускает семейства ORCA2, ORCA3, ORCA4 и несколько специализированных ПЛИС на их основе. Указанные семейства модифицируются с течением времени и переводятся на производство по новым технологическим процессам, что сразу же отражается на уровнях питающих и сигнальных напряжений. Логические
Глава 1. Элементная база электронных устройств и систем
133
элементы серий ORCA основаны на использовании LUT -блоков и триггеров, четыре таких комбинации группируются в блок PFU (Programmable Function Block), память функциональных блоков может быть использована как RAM или ROM. Отличием семейств, начиная с ORCA3, является наличие интерфейса для сопряжения с процессором, допускающее параллельное программирование конфигурации микросхем и подключение процессоров i960 или Power PC. При переходе к семейству ORCA4 акцент был сделан на совершенствовании сигнальной трассировки, задержки сигналов в которой все более определяют общее быстродействие микросхемы. На основе семейств ORCA выпущены схемы FPSC (Field Programmable System Circuits), в том числе OR3TP12, OR3LP26B, ORT4622, ORT8850, ORT82G5, ORLI10G. В этих микросхемах матрицы типа FPGA сочетаются с ядрами на элементах ASIC, причем вначале применялись ядра PCI, а позднее эти ядра стали заменяться на схемы дуплексных синхронных интерфейсов с высокими скоростями передач и встроенными средствами CDR (Clock Duty Recover). В микросхемах на основе серии ORCA4 достигнуты наивысшие скорости передач: в микросхеме 4622 реализованы 4 канала с пропускной способностью 622 Мбит/с, в микросхеме 8850 — 8 каналов и 850 Мбит/с, в микросхеме 82G5 получены скорости 1,25; 2,5 и 3,125 Гбит/с, в микросхеме 10G — 10 Гбит/с. Фирмой Atmel выпускаются сходные семейства FPGA: AT6000 и АТ40К, причем семейство АТ40К новее и больше приспособлено к широкому применению в универсальных проектах. Компания делает акцент на возможностях частичного динамического реконфигурирования своих FPGA (возможностях так называемого reconfigurable computing). Подробнее о микросхемах АТ40К сказано ранее при описании SOPC типа FPSLIC. К сведениям о микросхемах FPSLIC можно добавить, что в последнем нововведении фирмы (архитектуре AT49S) приняты меры по повышению засекреченности разработанных проектов. Фирма Cypress Semiconductor использует триггерную память конфигурации в своих микросхемах Delta39K, имеющих сходство с описанными ранее микросхемами Ultra37000. Переход от памяти конфигурации типа EEPROM в UltrаЗ7000 к триггерной памяти в Delta39K сопровождался значительным увеличением емкости пользовательской памяти. Вариантом -пониженной стоимости является семейство Quantum38K, отличающееся от семейства Delta39K рядом упрощений. На основе микросхем Delta39K разработаны кристаллы PSI (Programmable Serial Interface) с сочетанием областей БМК и программируемой логики, в которых достигнуты - скорости передачи сигналов от 200 Мбит/с до 2,5 Гбит/с на контакт и общая пропускная способность тракта в 12 Гбит/с. При этом поддерживаются стандарты PCI, SONET, Gigabit, Ethernet, Fibre Channel и InfiniBand. В отличие от других архитектур с триггерной памятью конфигурации, схемы Delta39K относятся к CPLD.
134
Проектирование систем на микросхемах программируемой логики
В производстве встроенных FPGA -ядер для схем на основе ASIC участвует пока что небольшое число фирм. Фирма Actel выпускает микросхемы VariCore с напряжением питания 1,8 В, числом логических ячеек от 1024 до 8192 и встроенной памятью в диапазоне от 36 864 до 73 728 бит. Фирма Adaptive Silicon производит семейство MSA2500 с напряжениями питания 1,8; 1,3 и 1,0 В и числом логических ячеек от 64 до 1024 (схемы памяти отсутствуют). Фирма Agere Systems поставляет микросхемы eORCA (embedded ORCA) с напряжением питания 1,5 В, числом логических ячеек 800 и памятью в составе LUT -блоков емкостью 102 400 бит. Фирма Atmel разработала микросхемы под названием Embedded FPGA с напряжением питания от 1,8 до 3,3 В, числом логических ячеек от 256 до 6400 и встроенной памятью емкостью от 2048 до 51 200 бит.
Сведения о блочных "системах на кристалле", содержащих процессорные ядра Принятая выше форма представления параметров более или менее удовлетворительна применительно к микросхемам, не имеющим разнообразного состава аппаратных ядер. Для блочных систем указание числа эквивалентных вентилей, объема памяти и т. п. недостаточно характеризует микросхему, т. к. первоочередной интерес для таких систем представляет состав реализованных ядер, их типы, количество и характеристики. Для блочных систем с процессорными ядрами ниже дается краткое словесное описание основных представителей современной продукции ведущих фирм. Более подробные сведения о некоторых блочных SOPC, были даны ранее в этой главе. В современной номенклатуре 32 -разрядных hard -ядер процессоров имеется несколько вариантов, которые могут быть эффективно встроены в кристаллы со схемами программируемой логики вследствие своей настроенности на процессы изготовления FPGA. Такие hard -ядра компактны и могут занимать всего лишь 1,5—2 мм 2 (без кэшей). По архитектуре это, в сущности, стандартные RISC -процессоры. Производителями FPGA применяются hard -ядра с процессорами ARM9T, MIPS4KC, PowerPC405C. В маломощных портативных системах доминируют процессоры ARM, следом идут архитектуры MIPS и Power PC. В этих процессорах достигаются рабочие частоты до 200 МГц и более, в них применяются 5—6 ступенчатые конвейеры, выполняются скалярные операции, достигнута малая мощность потребления. Hard -ядро ARM922T фирмы ARM имеет площадь 11,8 мм 2 (при топологических нормах 0,18 мкм), рабочие частоты до 200 МГц и используется фирмами Altera и QuickLogic. С этим ядром связано применение шинной системы АМВА с шинами АНВ, ASB и АРВ, в обозначениях которых средние буквы означают соответственно High -Speed, System и Peripheral. Имеются кэши данных и команд емкостью по 16 Кбайт, 6 -ступенчатый конвейер, аппаратный умножитель, рассеиваемая мощность 160 мВт.
Глава 1. Элементная база электронных устройств и систем
/35
Ядро ARM740T, используемое фирмой Triscend, имеет площадь 2,5 мм 2 , рабочую частоту до 60 МГц, смешанный кэш команд/данных емкостью 8 Кбайт, 4 канала прямого доступа к памяти и контроллеры/интерфейсы для работы с внешней памятью. Ядро MIPS (Microprocessor without Interlocked Pipeline Stages, что, в сущности, означает "микропроцессор без задержек ожидания конвейера") фирмы MIPS Technologies сейчас лицензируется многими крупными производителями электронной аппаратуры. Ядро MIPS4C занимает площадь 3 мм 2 . Используется фирмой QuickLogic, а вариант MIPS4KC также и фирмой Altera. Имеет кэши команд и данных по 16 Кбайт, 5 -ступенчатый конвейер, аппаратные средства для выполнения операций умножения, деления, умножения с накоплением. Рабочая частота ядра 200 МГц, рассеиваемая мощность 400 мВт. Используется с шинной системой АМВА. Ядро Power PC405C фирмы IBM Microelectronics имеет площадь 3 мм 2 , используется фирмой Xilinx с шинной системой CoreConnect фирмы IBM. Кэши команд и данных имеют объемы по 32 Кбайта, применяется 5 -ступенчатый конвейер, аппаратные схемы умножения и деления, мощность рассеяния составляет 400 мВт. Soft -ядра Nios фирмы Altera и Microblaze фирмы Xilinx кратко рассмотрены выше (см. разд. 1.5 и 1.6 данной главы). Информация об однородных системах на кристалле приведена на рисунках в разделах ПЛИС с триггерной памятью конфигурации и в тексте главы (семейства Virtex, APEX и др.). Блочные "системы на кристалле" перечислены ниже с указанием фирм -производителей. О Фирма Triscend выпускает CSOC (Configurable SOC) семейств Е5 и А7, в которых объединяются процессор (8 -разрядное ядро 80С51 для семейства Е5 с производительностью 10 MIPS на 40 МГц или 32 -разрядное ядро ARMA7 для семейства А7 с производительностью 54 MIPS на 60 МГц), скоростные шины на кристалле и FPGA с триггерной памятью конфигурации. Работа процессора поддерживается наличием кэша емкостью 8 и 16 Кбайт статической памяти. На кристалле имеется 4 -ка нальный контроллер прямого доступа к памяти и схемы интерфейса для работы с внешней памятью и стандартной периферией, а также обычная для контроллеров периферия (2 таймера, 2 UART, сторожевой таймер). FPGA дает до 40К вентилей (до 3200 логических элементов, до 51 200 бит памяти в LUT -блоках и до 521 288 бит встроенной памяти). Имеется блок внутрисхемной отладки. Стоимость микросхем лежит в диапазоне 5—19 долларов для семейства Е5 и составляет приблизительно 20 долларов для пока единственного представителя семейства А7 (микросхемы А7520). Несмотря на достаточно универсальный характер блоков CSOC, фирма отмечает ее проблемную ориентацию — для систем коммуникации. Triscend ведет совместную работу с фирмой Hitachi с целью выпуска
136
Проектирование систем на микросхемах программируемой логики
CSOC на основе ее процессора SuperH. Предполагается и дальнейшее расширение перечня процессорных ядер в CSOC фирмы Triscend. О Фирма Atmel выпускает микросхемы FPSLIC с 8 -разрядным процессорным ядром AVR, имеющим производительность 30 MIPS на 40 МГц. Процессорное ядро объединено с FPGA емкостью до 40К вентилей (до 6400 логических элементов) и собственной памятью RAM емкостью 18 Кбит, На кристалле размещены также память команд и память данных с общей емкостью 32 Кбайт, блок регистров размерностью 32x8, аппаратный умножитель размерностью 8x8 и стандартная для микроконтроллеров периферия (2 UART, 3 таймера, двухпроводной стандартный последовательный интерфейс, сторожевой таймер). Особенностью FPSLIC являются возможности динамической частичной реконфигурации системы, обеспечивающие реализуемость решения задач методом, называемым reconfigurable computing. Стоимость микросхем находится в пределах 7—58 долларов. - Фирма Altera производит SOPC семейство Excalibur, в состав которого обычно включают как SOPC с soft -ядром процессора Nios, размещаемым на кристалле семейств APEX, так и SOPC с hard -ядрами типов ARM или MIPS. Имея в качестве основы ПЛИС APEX высокой сложности, SOPC Excalibur занимают позиции в верхней части спектра SOPC. Типичное число эквивалентных вентилей доходит у них до 1 млн., число логических элементов до 38 400, 32 -разрядное процессорное ядро ARM922T работает на частотах до 166 МГц, используется высокоскоростной вариант шинной системы АМВА (шина АНВ). Имеются раздельные кэши по 8 Кбайт для команд и данных, несколько видов оперативной памяти, модуль для отладки программного обеспечения, гибкий контроллер прерываний, UART, таймеры (общего назначения и сторожевой). Стоимость микросхем находится в пределах 265—925 долларов. - Фирма Cypress Semiconductor выпускает кристаллы PSOC, архитектурно представляющие собою микроконтроллер, дополненный программируемыми цифровыми и аналоговыми блоками, ориентированными на создание специального набора периферийных функций. Для цифровой части это таймеры, последовательные порты, генераторы, для аналоговой — цифроаналоговые и аналого -цифровые преобразователи и фильтры (низких частот, высоких частот, полосовые). Имеется умножитель 8x8 с 32 -разрядным аккумулятором, до 16 Кбайт Flash -памяти и 256 Кбайт статического ОЗУ. Микросхема работает на частотах до 24 МГц. - Фирма Semiconductor Design Solution выпускает "системы на кристалле" FIPSOC с процессорным ядром 8051 и цифровыми и аналоговыми подсистемами программируемых периферийных устройств. Цифровая часть содержит функциональные блоки типа LUT + RG, аналоговая часть может программироваться на такие заказные функции, как усиление диф -
Глава 1. Элементная база электронных устройств и систем
137
ференциальных сигналов, сравнение и преобразование данных, т. е. ориентирована на так называемое front -end design. - Фирма Motorola намеревалась войти в сферу производства блочных SOPC с микросхемой MPACF250, которая расценивалась многими специалистами как весьма перспективная, поскольку планировавшееся для нее процессорное ядро имело преимущества перед существовавшими. Однако по каким -то причинам имевшиеся планы пока не реализуются. - Фирма LSI Logic совместно с фирмой Adaptive Silicon разработала SOPC, в которой объединены традиционные схемы, реализованные по методу стандартных ячеек, ядро процессора ARM и программируемая логика для реконфигураций, адаптирующих проект к новым требованиям. - Фирма Agere Systems объявила о выпуске SOC Ultra Mapper, содержащей до 8 млн. вентилей, для реализации функций, характерных для систем передачи речи и другой информации в проводных системах.
ГЛАВА 2
Основы технологии проектирования ИСПС и структуры систем автоматизированного проектирования Задача данной книги — помочь в освоении современных подходов к проектированию систем, ориентированных на широкое использование в них новой элементной базы — микросхем с программируемой структурой (ИСПС) и их наиболее ярких представителей — конфигурируемых систем на кристалле (SOPC). Краеугольными составляющими любого проектирования являются: - элементы, из которых строится проектируемый объект; - инструментарий, при помощи которого выполняются отдельные этапы изготовления документации и собственно результирующего объекта; - методика применения инструментария для получения конечных результатов; - абстракции (определения, понятия и т. д.), вводимые для упрощения описания процесса проектирования. Строительными "кирпичиками" интересующих нас систем являются рассмотренные в гл. 1 элементы с конфигурируемой структурой (по сути, представляющие собой конфигурируемую аппаратуру, для которой в английской терминологии обычно используется термин Hardware, HW) и программируемым поведением (в основе которого лежит программное обеспечение, в английской терминологии Software, SW). Термины HW и SW, благодаря своей краткости (при сохранении однозначности трактовки), получили широкое распространение в отечественной литературе и будут применяться в последующих разделах. Основными абстрактными понятиями, которыми приходится пользоваться в процессе проектирования, являются языки опи -
140
Проектирование систем на микросхемах программируемой логики
сания аппаратуры, рассматриваемые в гл. 3, и средства описания программной части проектируемых систем (универсальные языки программирования), которые достаточно подробно разобраны в существующей литературе. Инструментарий проектирования и методика его использования составляют содержание данной главы. Основным инструментом проектирования для рассматриваемой прикладной области (проектирование на основе ИСПС) является программное обеспечение ЭВМ, в комплексе образующее системы автоматического проектирования, САПР. Наиболее значимым для проектирования на основе ИСПС (и отличающим его от многих других) является не столько резкое увеличение возможностей, предоставляемых современными САПР, сколько взаимопроникновение и взаимное влияние составляющих процесса проектирования. Стремительное увеличение степени интеграции современной элементной базы и постоянное улучшение характеристик ЭВМ (не в последнюю очередь благодаря этой элементной базе) вызывает адекватное наращивание как количественных, так и качественных возможностей САПР, т. е. инструментария проектирования. Динамика изменения возможностей САПР предопределяет изменение методологии их применения и все большую интеграцию в рамках одной САПР смешанных методик и объектов проектирования. Темпы изменений всех составляющих процесса проектирования электронных систем заставляют периодически пересматривать и переосмысливать различные аспекты проектирования. Материал данной главы посвящен рассмотрению возможностей и особенностей использования современных методик проектирования цифровых устройств с ориентацией на существующие САПР. В области структурной организации схем с программируемой структурой и средств их проектирования состояние весьма подвижно. Если базовые архитектурные и структурные решения для схем ПЛИС в значительной мере уже определились и перешли в стадию простого наращивания количественных характеристик, то для схем ПАИС и SOPC архитектурные и структурные решения еще только развиваются. О степени подвижности этого аспекта проектирования говорит тот факт, что новые семейства БИС ПЛИС появляются с частотой приблизительно раз в два года, а принципиально новые архитектурные решения появляются не чаще чем раз в пять лет. Что касается инструментария проектирования — САПР и самой методики проектирования, то эта составляющая в настоящий момент находится в состоянии стремительного нарастания своей интеллектуализации, предоставляемых средств и возможностей автоматизации. Подтверждением интенсивности изменений в методике проектирования является тот факт, что новые версии САПР поставляются фирмами с частотой раз в квартал. Вместе с тем, в отечественной литературе вопросам создания и даже выбора современных средств проектирования (если не считать переводов или переложений фирменных руководств по использованию САПР) уделяется явно не -
Глава 2. Основы технологии проектирования ИСПС
141
достаточное внимание. Последние издания отечественной литературы по этому направлению [1, 2] вышли более 10 лет назад. Поэтому материал данной главы, кроме изложения общих концепций, содержит и справочные данные. Авторы надеются, что включение справочного материала (несмотря на ожидаемое быстрое устаревание) поможет читателю лучше сориентироваться в основных направлениях и тенденциях развития современных методик проектирования.
2.1. Общие сведения о процессе проектирования Проектирование — комплекс работ, целью которого является получение технической документации, позволяющей реализовать или изготовить новый или модернизируемый объект с заданными свойствами и с заданным функционированием в заданных условиях. В общем случае, объектами проектирования могут быть изделия (например, мобильный телефон, ЭВМ, стиральная машина) или процессы (например, технологические, вычислительные). Сущность процесса проектирования изложена в работах [12, 16]. В контексте рассматриваемой проблематики нас интересуют процессы, связанные с созданием электронных систем. Стратегия проектирования — функциональная декомпозиция. Для системы в целом и ее блоков используется концепция "черного ящика". Для "черного ящика" разрабатывается функциональная спецификация, включающая внешнее описание блока (входы и выходы) и внутреннее описание — функцию или алгоритм работы: F= Ф(Х, t), где X— вектор входных величин, F — вектор выходных величин, t — время. При декомпозиции функция Ф разбивается на более простые функции Ф1 -.Ф к , между которыми должны быть установлены определенные связи, соответствующие принятому алгоритму реализации функции Ф. В результате разбиения, в конечном счете, получается структура. Переход от функции к структуре — синтез. Синтез неоднозначен. Выбор наилучшего варианта осуществляется по результатам анализа, когда проверяется правильность работы и некоторые показатели, характеризующие устройство. Процедуры синтеза и анализа постоянно чередуются. Декомпозиция функций блоков выполняется до тех пор, пока не получатся типовые функции, каждая из которых может быть реализована на элементах выбранного уровня иерархии. Процесс проектирования — многоуровневый, многошаговый и итерационный, с возвратами назад и пересмотром ранее принятых решений. Комплекс проектных работ, как правило, включает в себя теоретические и экспериментальные исследования, расчеты и конструирование.
142
Проектирование систем на микросхемах программируемой логики
Различие теоретической базы и понятийного аппарата, используемых на разных стадиях проектирования, приводит к тому, что традиционным является разбиение процесса проектирования как электронных систем, так и БИС/СБИС, на этапы, приведенные на рис. 2.1.
Рис. 2 . 1 . Традиционные этапы проектирования
На этапе системного проектирования определяется архитектура, состав компонентов и основные характеристики будущей системы, выбирается элементная база для ее построения. В ходе работ на этом этапе наиболее сложным, трудно формализуемым и, следовательно, слабо поддающимся автоматизации, является, например, принятие решения о разделении функций между программной и аппаратной или между цифровой и аналоговой частями системы. Большую роль здесь играют индивидуальные аспекты и опыт разработчика. Весьма сомнительной представляется возможность введения какого -либо обобщенного критерия качества, позволяющего однозначно определить наилучшую архитектуру проектируемой вычислительной системы. При структурно -алгоритмическом проектировании определяются алгоритмы функционирования аппаратных и программных компонентов системы. На этапе функционально -логического проектирования разрабатываются функциональные и принципиальные электрические схемы, программы, подготавливаются тестовые и контрольные данные. На конструкторском этапе производится привязка элементов проекта к конструктивным элементам.
Глава 2. Основы технологии проектирования ИСПС
143
Разбиение процесса проектирования на этапы связывают с различием технических средств, как привлекаемых для создания проекта в роли инструментария, так и используемых в качестве компонентов проекта, а также и технологических особенностей реализации конечного продукта. Хотя общая методология процесса проектирования не зависит от варианта разбиения процесса проектирования на отдельные уровни, содержание, а также методы и средства проектирования для различных уровней оказываются очень специфичными и существенно зависят как от типа применяемой элементной базы, так и от способа реализации (изготовления) конечного продукта. Представленная последовательность действий характерна для всех уровней проектирования. Для каждого уровня декомпозиция заканчивается при получении типовых функций, соответствующих этому уровню иерархии. Так, например, при многоплатной реализации проекта декомпозиция заканчивается на верхнем уровне иерархии при представлении проекта в виде отдельных плат, на следующем уровне — в виде отдельной платы (типового элемента замены), еще ниже декомпозиция осуществляется до реализации функций при помощи той или иной микросхемы. При ориентации на программируемые (разрабатываемые) пользователем микросхемы процедура декомпозиции осуществляется уже для этой микросхемы в соответствии с составом функциональных библиотек программируемых БИС/СБИС. На любом этапе проектирования может быть выявлена ошибочность или не оптимальность выбранного ранее варианта реализации или принятого решения. Такая ситуация требует оценки целесообразности возврата и пересмотра решений. С учетом возможностей современных САПР проектирование может считаться законченным после верификации проекта в целом, когда завершена отладка готового изделия. Последовательная декомпозиция проекта на отдельные фрагменты (с определением функций каждого фрагмента и его интерфейса) характерна для любого этапа проектирования и применяется при разработке широкого спектра цифровых устройств, начиная от устройства целиком и кончая проектированием отдельных БИС/СБИС. Такая методология проектирования отображает процесс проектирования "сверху вниз": от технического задания до электрических схем, файлов прошивки ПЗУ и конфигурации программируемых приборов, а также конструкции устройства в целом. Другая последовательность, соответствующая методологии "снизу вверх", предусматривает объединение простейших модулей в более сложную структуру до тех пор, пока, в конце концов, не будет создан конечный проект. Исходные модули — это решения, созданные проектировщиком на более ранних этапах работы или в ходе работ над другими проектами, или доступные проектировщику и входящие в состав имеющихся библиотек САПР.
144
Проектирование систем на микросхемах программируемой логики
2.1.1. Факторы, влияющие на методику проектирования электронных устройств Первым фактором, влияющим на специфику проектирования и, как следствие, на возможные САПР, является тип обрабатываемой информации и связанные с ним методы и способы ее обработки. Проект или его отдельные фрагменты могут включать аналоговые, аналого -цифровые и/или цифроана логовые элементы, строиться на основе дискретных (цифровых) компонентов или опираться на встроенные микропроцессорные средства. Отсюда следует многообразие вариантов проектирования, которые в современных технологиях часто называют потоком проектирования (Design Flow). Поток проектирования при этом определяется тем, какие компоненты превалируют в проекте. Следующим определяющим фактором является выбор технической базы для реализации фрагментов проекта, а также технологического способа реализации самого проекта. Как правило, одно и то же электронное изделие может быть реализовано различными способами. Здесь должен быть дан ответ на вопрос — будет ли проект построен на стандартных микросхемах, будут ли использоваться те или иные специализированные ИС или комбинация различных типов ИС. Более того, в разные моменты жизненного цикла проекта в зависимости от тиражности изделия в составе проекта могут меняться используемые типы ИС. В наибольшей степени появление и широкое распространение БИС с программируемой структурой и конфигурируемых систем на кристалле повлияло на два соседних иерархических уровня проектирования: проектирование собственно ИС с программируемой структурой (ИСПС) и проектирование печатных плат, содержащих такие БИС. Хотя во многих чертах проектирование для этих двух уровней близко, специфика проектирования и, соответственно, применяемые САПР заставляют рассматривать их, в зависимости от анализируемой проблемы, раздельно или последовательно.
2.1.2. Области применения СпИС различных типов Все типы СпИС имеют свои целесообразные области применения, поскольку каждому типу свойственно определенное соотношение таких параметров, как сложность (достижимый уровень интеграции), быстродействие, стоимость. На выбор типа СпИС для реализации проекта влияет совокупность свойств. Основные соображения можно пояснить с позиций экономики, обратившись
Глава 2. Основы технологии проектирования ИСПС
145
к формуле стоимости ИС, изготовляемой в соответствии с уже освоенным технологическим процессом: С и с = С и з г + C n р /N,
где С и з г — стоимость изготовления ИС (стоимость кристалла и других материалов, стоимость технологических операций по изготовлению ИС, контрольных испытаний). Затраты на изготовление относятся к каждой ИС, т. е. повторяются столько раз, сколько ИС будет произведено; С п р — стоимость проектирования ИС, т. е. однократные затраты для данного типа ИС; N— объем производства (тиражность), т. е. число ИС, которое будет произведено. Стоимость проектирования БИС/СБИС велика и может достигать сотен миллионов долларов. Для дорогостоящих вариантов проектирования БИС/СБИС производство становится рентабельным только при большом объеме их продаж. Затраты С п р и С и з г находятся во взаимосвязи. Рост затрат на проектирование, как правило, ведет к снижению С и з г , поскольку чем совершеннее проект, тем рациональнее используется площадь кристалла и другие его ресурсы. Отсюда видно, что выигрыш по экономичности могут получать те или иные типы СпИС в зависимости от тиражности их производства и сложности. Применительно к микросхемам программируемой логики справедливы следующие положения. Простые устройства со сложностью в сотни эквивалентных вентилей целесообразно реализовывать на PLD (PAL, GAL, PLA). При росте сложности проекта естественен переход к FPGA и CPLD, если тиражность ИС сравнительно невелика. Рост тиражности (приблизительно свыше десятков тысяч) ведет к преимуществам реализаций на БМК, т. к. стоимость изготовления небольшого числа шаблонов для создания межсоединений разложится на большое число микросхем, а стоимость изготовления каждой ИС уменьшится благодаря исключению из схемы программируемых связей и средств их программирования. При еще большей тиражности выгодным оказывается метод стандартных ячеек (СЯ), позволяющий дополнительно улучшить параметры схемы, плотнее разместить ее элементы на кристалле, т. е. уменьшить С и з г и улучшить быстродействие. При этом, слагаемое Cnp/N в формуле стоимости ИС не окажется слишком большим благодаря большой величине N, хотя необходимость проектировать весь комплект шаблонов для технологических процессов приводит к большим затратам С п р . Полностью заказное проектирование для СпИС не характерно. Оно стоит настолько дорого, что применяется практически только для создания стандартных БИС/СБИС массового производства. Диаграмма областей целесообразного применения разных типов СпИС в зависимости от их сложности и тиражности приведена на рис. 2.2.
146
Проектирование систем на микросхемах программируемой логики Сложность проекта, вент / крист ' '
10 2
10"
Объем выпуска, шт
Рис. 2.2. Рациональные объемы выпуска СпИС разных технологий проектирования и изготовления
2.1.3. Место БИС с программируемой структурой в процессе создания современной аппаратуры Проектирование стандартных ИС массового применения, как и проектирование заказными методами вообще, — удел крупных специализированных фирм. На долю системотехников приходятся главным образом другие разработки: цифровые устройства малой сложности на МИС и СИС, микропроцессорные системы для целей управления техническими объектами и технологическими процессами, малотиражная аппаратура либо прототипы систем на основе ИС с программируемой структурой. Проектирование на основе МИС и СИС — наиболее традиционный процесс, в котором используются как эвристические подходы, так и формализованные методики. Проектировщик задает структуру устройства на базе своих знаний, идей и освоения опыта предшественников, а при определении функций отдельных блоков пользуется и формальными методами. Требуется знание функциональных возможностей ИС из выбранных наборов ИС, их свойств и параметров. В современных условиях, когда наблюдается тенденции снижения стоимости схем с программируемой структурой, следует ожидать замещения систем, построенных на МИС/СИС, на системы с ИСПС. При этом МИС/СИС останутся в тех фрагментах схемы, где требуются спе -
Глава 2. Основы технологии проектирования ИСПС
147
цифические характеристики (оптронная развязка, повышенное выходное напряжение и т. д.). Микропроцессорная система создается в результате разработки комплекса программно -аппаратных средств. Проектирование аппаратной части сводится к компоновке системы из типовых модулей: центрального процессорного элемента, различных видов памяти, адаптеров, контроллеров и внешних устройств. Способы подключения модулей к шинам микропроцессорной системы, описания основных модулей, сведения о типах и методике их выбора, о методике их программирования и применения изложены в литературе [27]. Ключевой проблемой при проектировании микропроцессорных систем была и остается проблема разработки программного обеспечения. Помимо проектирования микропроцессорных систем различного уровня и функционального назначения, львиной долей инженерных разработок аппаратуры в условиях современной России, по -видимому, явится использование схем с программируемой структурой как для создания автономных устройств, так и их применения в составе микропроцессорных систем. Более того, в соответствии с ростом возможностей построения систем на одном кристалле сами микропроцессорные системы могут оказаться одним из элементов, входящих в состав БИС с программируемой структурой. В подобной ситуации уже трудно определить — являются ли подобные СБИС программируемой логикой со встроенным микропроцессором или это МП -система со встроенной программируемой периферией. Также трудно провести четкую грань между проектированием собственно МП, проектированием его периферии и, тем более, проектированием связи между МП -ядром и периферией. Сведения о средствах и методике отладки ПО, входящего в состав SOPC, приведены в данной главе. Целесообразность использования того или иного типа СпИС может определяться различными соображениями. Наиболее распространенной ситуацией оказывается случай, когда с целью обеспечения минимального времени выхода конечного изделия на рынок (time -to -market), производимые приборы на начальном этапе жизненного цикла изделия строятся на основе схем с программируемой структурой, затем (по мере готовности) продукция переводится на использование полузаказных БИС. На рис. 2.3 показана такая зависимость. Выбор типа полузаказных БИС (БМК или стандартные ячейки) может определяться необходимостью сокращения времени выпуска серийной продукции (time -to -silicon). На рисунке также отражена ситуация, соответствующая случаю, когда на заключительных этапах жизненного цикла могут оказаться нецелесообразными заказы новых партий полузаказных БИС, а экономически обоснованным будет возврат к использованию ИСПС. Кроме соображений быстрого выхода на рынок, причиной ориентации первых опытных партий конечной продукции на использование ИСПС может служить простота корректиро -
148
Проектирование систем на микросхемах программируемой логики
вок внутренней конфигурации БИС по результатам эксплуатации опытной партии.
Время
Рис. 2.3. Зависимость применяемого типа СпИС от времени в жизненном цикле устройства
Достоинством применения БИС типа ИСПС, и в том числе типа SOPC, является не только легкость корректировок как макетов, так и опытных партий продукции, но и определенная секретность разработок. В отличие от традиционной реализации на стандартных дискретных элементах, при воплощении системы на ИСПС структура ее оказывается невидимой, и этим соответственно затрудняется несанкционированное повторение разработок, а тем более выпуск их усовершенствованных вариантов. Широкое внедрение БИС типа SOPC в настоящее время сдерживается не только и не столько экономическими соображениями (БИС пока относительно дороги), сколько издержками новизны (недостаточная подготовленность кадров, малое количество у разработчиков апробированных решений, недостаточное качество и количество методических и учебных материалов). В силу сказанного, отечественным разработчикам следует уделять особое внимание вопросам проектирования схем с программируемой структурой.
2.2. Основы организации проектной процедуры для ИСПС Приведенная выше последовательность этапов проектирования соответствовала самому общему взгляду на эту процедуру и не учитывала специфики работ, выполняемых на каждом из этапов. Практически для любой современной системы содержание работ и используемый при этом инструментарий на всех этапах проектирования тесно связаны с выбором элементной базы. В настоящее время, независимо от примененной элементной базы,
Глава 2. Основы технологии проектирования ИСПС
149
проектирование выполняется с помощью систем автоматизированного проектирования САПР. САПР для проектирования и комплексной отладки программного обеспечения МП -систем обычно называют интегрированной средой разработки или оболочкой. Для единства терминологии, кроме случаев, узко ориентированных на разработку ПО МП -систем, будем использовать общий термин "САПР" для любых систем автоматизированного проектирования. Для схем с программируемой структурой, даже для ПЛИС не очень высокой сложности, проектирование связано с обязательным применением тех или иных САПР. Для лучшего уяснения специфики современного проектирования произведем параллельный сравнительный анализ традиционной и современной методик проектирования. Чтобы охватить наибольшее число возможных сценариев проектирования и, тем самым, обеспечить общность дальнейшего рассмотрения, предположим необходимость проектирования традиционной многоплатной системы, требующей как программной, так и аппаратной реализации, необходимость обработки аналоговой информации и последующей стыковки с цифровыми фрагментами системы. Сравнение станем производить с учетом как уже существующей элементной базы, так и современных тенденций ее развития. Будем предполагать проектирование, опирающееся на возможности современных БИС с программируемой структурой (для реализации как цифровых, так и аналоговых фрагментов системы) и возможности современных САПР. Укрупненная структура организации процесса проектирования для подобных систем показана на рис. 2.4. Хотя относительно традиционных методик процедура проектирования внешне осталась той же, изменилось содержание и взаимодействие отдельных ее этапов. Проектирование на концептуальном уровне возлагается на проектировщика и слабо связано с автоматизацией. Сложность автоматизации этого этапа связана со спецификой работ для различных прикладных областей и систем. Автоматизация касается скорее современных способов получения, копирования и отображения исходной информации для проектирования и автоматизации вычислительных работ. Исходные данные для проектирования на этом этапе содержат требования к основным технико -экономическим показателям (производительности, энергопотреблению, стоимости, надежности), конструктивным и другим параметрам. Кроме того, для управляющих фрагментов системы должны быть определены реализуемые алгоритмы управления, для типовых дискретных фрагментов — классы выполняемых задач, для аналоговых — требуемые преобразования и их - свойства (точность, скорость). Это уровень принятия концепций, используемых абстракций, методик решения и т. д. Только в отдельных случаях, для тех приложений, которые характеризуются единством методики решения и используемого математического аппарата, возможно сквозное применение средств автоматизации. Целый ряд фирм раз -
150
Проектирование систем на микросхемах программируемой логики
Рис. 2.4. Структура автоматизированного проектирования
рабатывает средства и методы автоматизации системного уровня проектирования. Решения, принятые на этом самом первом этапе проектирования, на 80% предопределяют цену конечного продукта, затраты на реализацию проекта и скорость появления конечного продукта на рынке. Примерами прикладных областей, где обеспечивается достаточно легкая стыковка средств автоматизации системного и последующих этапов проектирования, является цифровая обработки сигналов (DSP), анализ и синтез динамических систем. Фирма Elanix (www.elanix.com) предлагает редактор SystemView, обеспечивающий взаимодействие с проектным потоком фирмы ХШпх, используемым для разработки DSP -систем. Работа редактора ориентируется на применение схем ПЛИС фирмы ХШпх и предлагаемых этой же фирмой стандартных аппаратных решений, оформленных в виде модулей интеллектуальной собственности (DSP IP -core) и настраиваемых на конкретные условия применения специальной программой — генератором ядер (Core Generator). Редактор SystemView обеспечивает не только решение задач системного уровня проектирования DSP -систем, но и выполняет функции управления взаимо -
Глава 2. Основы технологии проектирования ИСПС
151
действием отдельных проектных средств. В результате SystemView позволяет проектировать, оптимизировать и тестировать DSP -алгоритмы. На рис. 2.5 приведены традиционный и предлагаемый фирмой Elanix процессы проектирования.
К производству кристалла
Рис. 2.5. Начальные этапы проектирования DSP -систем на базе схем фирмы Xilinx
Другой проблемной областью, имеющей хорошо отработанную математическую базу, и для которой возможно использование САПР, начиная с самых начальных этапов проектирования, является разработка вычислительных комплексов, управляющих динамическими системами. Примером САПР, поддерживающей проектирование подобного класса приложений, может служить пакет Professional VisSim фирмы Visual Solutions, Inc. (www.vissim.com). Программный пакет VisSim объединяет в своем составе интуитивно простой блочный диаграммный интерфейс с мощными моделирующими программами. Структура взаимодействия основных компонентов пакета приведена на рис. 2.6. В состав Professional VisSim входит блок VisSim Viewer, который по -
Проектирование систем на микросхемах программируемой логики
152
зволяет разработчику еще до покупки лицензии определить необходимый и целесообразный набор средств пакета.
Г
Рис. 2.6. Основные компоненты пакета Professional VisSim
Все версии Professional VisSim включают интегрированные с ним известные пакеты MATLAB, SIMULINK и MathCAD. Задачей блока VisSim/Analyze является линеаризация нелинейных систем. В основе работы блока лежит анализ корневого годографа и частотный анализ непрерывных и дискретных систем. Блок VisSim/OptimizePRO —вычисляет оптимальные значения основных характеристик и параметров проекта исходя из ограничений, установленных пользователем, и начиная от заданных им приближенных значений. Блок VisSim/C Code автоматически преобразует модели пакета в оптимизированный на языке С код, который может быть скомпилирован для работы на большинстве вычислительных платформ. Блок VisSim/Real Time обладает способностью объединять системные модели с реальным процессом или контроллером для моделирования в реальном масштабе времени работы проектируемого устройства управления. Ряд дополнительно подключаемых блоков, таких как VisSim/ModelWizard и VisSim/matLab Compiler, еще больше упрощает работу проектировщика. Фирма выпускает также программные прототипные пакеты для ускорения разработок. Графический метод доступа к моделям элементов позволяет легко создавать, модифицировать и комбинировать состав будущей системы. Пакет позволяет разработчику быстро создать программное обеспечение или виртуальный прототип
Глава 2. Основы технологии проектирования ИСПС
У S3
системы или процесса, чтобы определить основные характеристики и параметры проекта до его физической реализации. Конечно, далеко не для всех прикладных областей ситуация складывается столь удачно, и поэтому проектирование и средства, используемые на системном уровне проектирования, требуют значительных временных затрат, плохо автоматизируются и предполагают высокий профессионализм проектировщика. Следующий этап проектирования связан с предварительной (концептуальной) проработкой проекта. На этом этапе, исходя из требуемого функционирования системы, проектировщик осуществляет разбиение проекта на физически реализуемые части, определяет множества входных и выходных сигналов (как системы в целом, так и ее составных частей), их характер и взаимосвязь, а также выбирает способы конструкторской реализации отдельных составных частей. Основным результатом этапа является распределение алгоритмов работы системы между программным и стандартным аппаратным обеспечением выбранного типа МП -ядра. Другим важным результатом может стать выделение задач, требующих для своей реализации разработки нетипового оборудования (как цифрового, так и аналогового). Отличия между традиционным и современным подходом намечаются именно на этом этапе. Выбор проектировщиком элементной базы будущего проекта и привлекаемой САПР предопределяет весь дальнейший процесс проектирования. Чаще всего работы этого этапа выполняются одним проектировщиком, называемым проектным менеджером. При традиционном подходе вопрос об используемой элементной базе решался отдельно для каждой из ветвей (направлений) проектирования. Более того, конструктивная реализация в форме отдельных печатных плат для аналогового фрагмента, МП -фрагмента и цифрового фрагмента на дискретных компонентах позволяли разделить во времени процедуру проектирования на отдельно выполняемые работы, включая конструкторскую разработку отдельных плат, их индивидуальную реализацию и автономное тестирование. И лишь на заключительных этапах производилась совместная отладка многоплатной реализации системы. Существующая тенденция интеграции проектных решений приводит к возможности построения всей системы на одной печатной плате, а возможно даже в одной БИС (вся система реализуется на одном кристалле SOPC). При современном уровне развития техники и технологии изготовления БИС вопрос выбора элементной базы оказывается значительно более важным, чем раньше. Например, анализ возможных вариантов реализации может привести к выводу о целесообразности создания смешанной аппаратно программной системы (для МП, совмещенного с ПЛИС) или гибридной системы (для ПЛИС, совмещенной с ПАИС) в форме одиночной БИС. После определения варианта реализации системы проектировщик для выполнения последующих этапов должен выбрать САПР из жестко предопреде -
154
Проектирование систем на микросхемах программируемой логики
ленного набора. Таким образом, выбор элементной базы, осуществленный на этом этапе, может задавать стиль, методы и средства решения задач по требуемым направлениям проектирования. Для многих приложений БИС теперь начинают конкурировать с традиционными решениями и вытеснять не только многоплатные конструкции, но даже вычислительные комплексы на базе персональных компьютеров. Те задачи, которые ранее решались с помощью подключения разрабатываемого устройства к ПК, теперь могут быть реализованы в одной БИС. Например, целый ряд сервисных задач, который раньше мог быть решен только компьютером, подключенным к телефонной линии, сейчас может быть реализован в одной БИС, встроенной в мобильный телефон. Если предположить, что проектируемая система требует интеллектуальности, достижимой только при использовании МП или МК, то, прежде всего, должен быть решен основной вопрос этого этапа — вопрос о технической реализации микропроцессорного ядра. Возможные варианты реализации сводятся либо к ориентации на автономный МП, либо на МП, встроенный в БИС ПЛИС. Если планируется использовать МП, встроенный в БИС ПЛИС, то возникает очередной вопрос — каким образом будем встраивать МП? Будет ли МП -ядро представлять собой библиотечный элемент (Softcore) для ПЛИС типа generic, или это будет аппаратное процессорное ядро (Hardcore) в ПЛИС типа SOPC. Результаты выполнения работ двух рассмотренных этапов позволяют перейти к последующим параллельным этапам проектирования. В отличие от традиционного подхода, когда порядок работы сильно зависел от конструкторской реализации и достаточно жестко увязывался во времени с окончательной готовностью макетных плат отдельных проектных направлений, современный подход позволяет выполнять проектирование одновременно для нескольких направлений. Современные средства и технологии проектирования позволили разрушить существовавшую ранее жесткую взаимосвязь отдельных направлений и обеспечить возможность выполнения проектных работ в произвольных взаимных сочетаниях. Даже этап конструкторско -технологи ческого проектирования, благодаря легкости перепрограммирования ИСПС, может начинаться (а иногда даже заканчиваться) до получения окончательных результатов по всем параллельным ветвям проектирования. Процедуры проектирования по всем параллельным ветвям в САПР для ИСПС сходны. Как разработка программного обеспечения для МП(МК) ядра, так и разработка дискретной и аналоговой частей проекта могут рассматриваться как последовательность трех основных этапов: О ввод исходной информации (спецификации проекта); О компиляция проекта; О тестирование полученных результатов.
Глава 2. Основы технологии проектирования ИСПС
155
Конкретное содержание этапов для аппаратной и программной частей проекта, цифровой и аналоговой частей, естественно, различное. Компиляция аппаратной части проекта приводит к синтезу устройства (или устройств) в базисе выбранных элементов (со стандартной и/или программируемой структурой), а компиляция программной части проекта приводит к синтезу кодового представления программ. Полученные результаты требуют тщательной проверки, поэтому за этапом синтеза следует этап тестирования, выполняемого моделированием и/или реальными экспериментами. Моделирование, как правило, имеет несколько уровней с разной степенью отображения свойств реального объекта. Оно может быть как функционально -логическим, проверяющим правильность функционирования устройства или программы, так и функционально временным, учитывающим задержки элементов, составляющих проект. Поведение реальной системы будет зависеть еще от ряда факторов, в том числе результатов окончательной трассировки межсоединений или времен исполнения отдельных программных фрагментов. В результате тестирования могут быть выявлены ошибки, которые требуют исправлений, это придает процессу проектирования итеративный характер с возвратами к прежним этапам и введением в проект необходимой коррекции. По мере отработки решений по отдельным ветвям проектирования отрабатываются и вопросы связи между этими ветвями (например, между программной и аппаратной частями проекта), хотя комплексный анализ и отладка могут быть выполнены только после завершения проектирования соответствующих ветвей процедуры проектирования. Естественно, такое последовательное представление о проектировании является условным и в реальных условиях выполняется последовательно -параллельно и с многократными итерационными возвратами к началу проектных процедур. Окончание проектирования по отдельным ветвям создает исходные данные для завершающего конструкторско -технологического этапа проектирования, результатом которого явится создание реальной системы. Физическая реализация проекта, в свою очередь, создает основу для комплексной отладки решений, полученных на отдельных ветвях проектирования. Современный этап развития САПР направлен на ускорение работ по всем направлениям. Для этого разрабатываются средства, методы и методология их использования, позволяющие сдвигать работы каждого этапа работ в направлении их более ранней реализации и совмещения с другими направлениями или даже опережения по определенным направлениям. Изменения произошли по всем составляющим проектных процедур. Существующая элементная база позволяет легко трансформировать проектные решения в рамках одной ветви проектирования и перемещать решения между параллельными ветвями. Современный инструментарий проектирования дает возможность в рамках одной САПР или за счет передачи информации в другие САПР (легко pea -
156
Проектирование систем на микросхемах программируемой логики
лизуемой как на конечном этапе, так и на промежуточных) выполнять этапы всех типов работ с недостижимой ранее скоростью. Даже для экспериментальной проверки совсем не обязательно ждать реализации будущей системы целиком. Возможна практическая проверка всего устройства или его отдельных фрагментов с помощью либо специально разработанных устройств, либо предлагаемых различными фирмами достаточно универсальных наборов отладочных средств, включающих, как правило, отладочную плату, программные средства и методические материалы. Названия таких средств отражают целевую направленность отладочного средства. Спектр отладочных средств включает следующие разновидности: О средства, предназначенные для предварительного знакомства с БИС рассматриваемого класса (обычно это комплекс HW - и SW -средств, называемых стартовый набор, Starter Kit); О средства для оценки применимости проектных решений (обычно включают так называемую оценочную плату или демонстрационную плату, Evaluation Board); - средства для отладки прикладных проектных решений (обычно базируются на макетной плате или проектной плате, Development Board); - средства, замещающие на начальных этапах выпуска готовой продукции оборудование, которое еще находится в конструкторско -технологической разработке (обычно называемые прототипными платами, Prototype Plate). Несмотря на некоторые отличия по имеющимся ресурсам и предлагаемым возможностям, любой тип плат позволяет выполнять широкий круг экспериментов. Все платы позволяют также изменять программное обеспечение МП для средств отладки МП -систем, либо содержимое памяти конфигурации для микросхем с программируемой структурой, либо и то и другое для БИС типа SOPC. Естественно, что допустимый объем выполняемых экспериментов значительнее у более дорогих средств. В стартовых наборах обычно удается реализовать и проверить работоспособность лишь отдельных фрагментов будущей системы. После успешного завершения экспериментальных работ файлы с программным обеспечением или файлы памяти конфигурации могут использоваться либо для изготовления требуемых ИСПС, либо для записи в соответствующие виды промежуточных ПЗУ. Файлы отчетов о результатах компиляции обычно содержат информацию о конкретных данных по монтированию проекта в реальную систему или БИС. Поэтому уже после этапа компиляции проектов возможен переход к разработке технологической реализации проекта, например, к разработке топологии печатных плат, являющихся, как правило, конечной продукцией проектирования. Ввиду легкости перепрограммирования как программной, так и аппаратной части проекта, этап экспериментальных работ с ним может быть отложен до
Глава 2. Основы технологии проектирования ИСПС
157
завершения конструкторской разработки печатной платы. Даже значительные изменения схемы на основе ИСПС обычно не влекут за собой столь катастрофических последствий, как в случаях, использования жесткой стандартной логики. Для упрощения реализации этого подхода фирмы -изготовители предлагают набор схем, отличающихся логической мощностью, но имеющих одинаковое расположение выходных контактов, что делает модификацию проектов вопросом скорее экономическим (более мощные БИС стоят дороже), чем техническим. Поэтому экспериментальные работы целесообразно проводить на различных отладочных прототипных системах исключительно для ускорения общего процесса проектирования, поскольку для большинства ИСПС возможно совмещение во времени этапов конструкторской разработки и экспериментальных работ. Итерационные возвраты к повторным процедурам компиляции в ходе кон структорско -технологического этапа проектирования возникают в том случае, когда, исходя из соображений повышения помехоустойчивости или более эффективной разводки соединений БИС на печатной плате между собой, целесообразно изменить расположение входных и/или выходных контактов ИСПС и их подключение к выходным разъемам печатной платы. Подобная возможность следует из способности современных ИСПС обеспечивать различные варианты монтирования одного и того же проекта в одну и ту же БИС. Современные методы проектирования продолжают сосуществовать с традиционными. И те, и другие сильно зависят от варианта реализации проекта (ветви реализации для рис. 2.4) и в некоторых деталях отличаются друг от друга, поэтому далее рассмотрим параллельные ветви проектирования по отдельности.
2.2.1. Проектирование цифровых фрагментов на заказных ИС и стандартных дискретных компонентах Необходимость проектирования цифровой части современных систем (обычно отвечающей за логику функционирования) на дискретных компонентах малой и средней интеграции, несмотря на рост интеграции ИС, сохранилась, хотя объем такой продукции существенно уменьшился и в настоящий момент составляет около 10—20%. В любом проекте может возникнуть ситуация, когда часть ИС не может быть включена в БИС общего назначения и целесообразно использование элементов МИС. В методике проектирования при ориентации только на этот тип элементной базы за последнее время особых изменений не произошло. Наиболее существенные изменения произошли в самом подходе к созданию проектов, замещающих ранее созданные системы, которые были реализованы на дискретных компонентах или включали значительные фрагменты с подобной реализацией.
158
Проектирование систем на микросхемах программируемой логики
При решении задачи перевода реализации таких фрагментов на современную элементную базу разработчик ставится перед выбором наиболее рационального варианта. Необходимость перевода диктуется не только и не столько престижными соображениями, сколько экономическими. Стоимость ИС старого типа (из разных соображений и причин) не только не уменьшается, а иногда даже и увеличивается (малый спрос, например, приводит к сокращению или даже прекращению выпуска неперспективных СИС и МИС). Вместе с тем, во многих проектах остаются фрагменты, требующие использования специализированных ИС. Примерами фрагментов, которые обычно не включаются в состав общецелевых БИС, являются фрагменты, решающие следующие общесистемные проблемы: создание ИС осцилляторов частоты со средними или высокими требованиями к точности реализации, гальваническая развязка на основе оптронных элементов, отдельные мощные элементы, элементы сопряжения различных систем элементов и т. д. Поэтому наряду с выпуском ИС с увеличенной логической мощностью и функциональными или эксплуатационными возможностями продолжается выпуск МИС, реализующих отдельные логические функции. Например, фирма Fairchild Semiconductor производит семейство ИС под названием TinyLogic, которое представляет собой реализацию в одном корпусе (различных габаритов) одной единственной функции, например функции 2И -НЕ или аналогового ключа. Для разработчиков цифровых фрагментов фирмы -производители электронного оборудования предлагают различные варианты технологической реализации. Если исключить разработку полностью заказных схем, то у разработчика остаются направления, показанные на рис. 2.7.
Конвертация
ASIC (новые свойства)
Рис. 2.7. Технологии проектирования и реализации цифровых фрагментов
Глава 2. Основы технологии проектирования ИСПС
159
Возможно проектирование по четырем основным направлениям: традиционная реализация на дискретных схемах СИС/МИС, реализация на ПЛИС, программная интерпретация цифровой схемы на МК и реализация в форме полузаказного кристалла того или иного типа. Естественно, при физической реализации конечной продукции может оказаться целесообразным применение любых комбинаций перечисленных вариантов. Более того, реализация ряда комбинаций может оказаться целесообразной и в рамках единой БИС. Так, например, уже появлялись сообщения [43] и [46] об объединении в одной БИС схемы ASIC и фрагмента ПЛИС. Этот вариант иногда считают средним путем реализации полузаказных схем. Его же ряд производителей называет вариантом ПЛИС со встроенными стандартными блоками. Последнее определение представляется предпочтительным, т. к. в большей мере отражает способ создания структуры такой комбинированной БИС. Следует ожидать, что номенклатура блоков, относимых к стандартным, будет постоянно увеличиваться, и у разработчика появится большая свобода выбора реализации БИС. В тех случаях, когда при переходе к реализации в другом типе БИС проект не меняет своего функционирования, а сама процедура перевода выполняется в автоматическом или полуавтоматическом режимах, процесс носит название конвертация проекта. На рис. 2.7 показаны такие варианты переходов от одного способа реализации к другому. Каждый базовый вариант проектирования характеризуется своим специфическим потоком проектирования, более того, маршруты проектирования у разных фирм могут отличаться. Представляется целесообразным более подробно остановиться на потоках проектирования, характерных для основных вариантов реализации.
Реализация в базисе дискретных элементов типа МИС и СИС Рассмотрим традиционную реализацию в базисе дискретных элементов типа МИС и СИС. На рис. 2.8 показан маршрут проектирования, характерный для такого способа реализации цифровых фрагментов. При традиционном проектировании основные изменения коснулись предоставляемой элементной базы и возможностей САПР. Эти изменения взаимосвязаны, например, увеличение объема доступной к использованию номенклатуры ИС потребовало включения характеристик этих элементов в состав библиотек САПР. Целый ряд фирм — Mentor Graphics Corporation, Synplicity, Innoveda (прежде ViewLogic, Inc.) — предлагают САПР, ориентированные на задачи проектирования систем класса ASIC. Приведенное на рисунке распределение функций, естественно, является условным. В некоторых случаях фирма -изготовитель готова взять на себя большую долю проектных работ, чем изображено на рисунке.
160
Проектирование систем на микросхемах программируемой логики Традиционная процедура
Современные добавки
Рис. 2.8. Типовая последовательность проектирования цифровых фрагментов
Для рассматриваемого направления САПР изменяют и сам подход к проектированию, существенно расширяя и добавляя к нему новые возможности. Наибольшее внимание в современных САПР при этом уделяется проблеме верификации и тестирования разработки, где главным инструментом служит моделирование. Основной проблемой в моделировании раньше являлась ограниченная вычислительная мощность компьютеров, на которых устанавливались САПР. Производительность современных компьютеров (даже персональных) настолько возросла, что стало возможно моделирование сложных систем (содержащих большое число элементов) за приемлемые времен -
Глава 2. Основы технологии проектирования ИСПС
161
ные сроки, при этом не только увеличена адекватность результатов моделирования, но и скорость и простота получения результатов, теперь почти не связанных со сложностью проекта. В САПР последних поколений не только увеличены объемы библиотек стандартных элементов, но и предпринимаются значительные усилия по упрощению корректировки состава и параметров этих библиотек, включая корректировки через ресурсы сети Интернет. Современные САПР, в отличие от САПР предыдущего поколения, предполагают выполнение значительно большего числа сервисных операций. Значительная часть улучшений сосредоточена в сфере моделирования свойств будущего проекта. Например, САПР позволяют автоматически определять: критические пути (фрагмент схемы, имеющий максимальный путь с критическими по скорости распространения сигнала задержками); максимально допустимую тактовую частоту; места возникновения рисков; места и условия возникновения самопроизвольной генерации фрагмента; вычисление 'требуемых значений времен предустановки или удержания сигналов и т. д. Увеличивается число сервисных функций САПР, предназначенных для выпуска пригодной к тестированию аппаратуры (например, выполняется автоматическая генерация тестовых векторов как для моделирования, так и для организации экспериментов с реальной аппаратурой).
Реализация цифровых фрагментов на ПЛИС Возможным, а зачастую целесообразным вариантом реализации системы, является ее полное или частичное воплощение на ПЛИС. Поскольку проектированию цифровых фрагментов систем на основе ПЛИС и положительным эффектам, связанным с такой реализацией, будут уделены последующие разделы книги, здесь отметим только те моменты, которые могут, по нашему мнению, препятствовать переводу проектов на этот вариант изготовления. Проектирование на ПЛИС является существенно новым направлением, которое еще недостаточно поддержано выпуском учебной и научной литературы. Одним из моментов отказа от реализации на ПЛИС может стать необходимость при проектировании обязательно (хотя бы на этапах программирования) пользоваться специальными САПР и, конечно, требование модернизации на начальных этапах парка средств сопровождения разработок. Отсутствие отечественных разработок современных ПЛИС — еще один фактор, в определенных ситуациях останавливающий реализацию конечной продукции на этом типе БИС. Нехватка соответствующих квалифицированных кадров, и отсутствие у разработчиков навыков грамотного схемотехнического проектирования схем на основе ПЛИС может также являться причиной нежелания создания продукции на этом типе ИС. Специфика внутренней организации ПЛИС требует замены целого ряда традиционных схемотехнических решений на другие. Наиболее важной представляется ориентация на организацию тактированной работы отдельных узлов ПЛИС, и непривычным для многих разработчиков оказывается невозмож -
162
Проектирование систем на микросхемах программируемой логик»
ность построения различных времязадающих цепей на основе резисторов и конденсаторов. - Помощь даже мощной САПР не заменяет опыта проектировщика, а только упрощает и ускоряет его работу, и далеко не всегда САПР может отличить хороший проект от плохого.
Реализация цифровых фрагментов в форме однокристального микроконтроллера Выполнение цифрового фрагмента в микроконтроллерной форме также во многих случаях может быть удачным решением задачи, стоящей перед разработчиком. В момент появления первых МК многим проектировщикам показалось, что понадобится совсем немного времени, и все цифровые проекты окажутся реализованными на однокристальных МК или, в худшем случае, на МПС. В действительности этого не произошло. Конечно, определенный (и не малый) сектор рынка электронной продукции этот способ реализации цифровых фрагментов захватил и продолжает удерживать. Однако подобная реализация требует от проектировщика знаний и умений по разработке программного обеспечения, привлечения специального оборудования для целей отладки ПО и т. д. Кроме того, опыт использования МК -техники показал, что далеко не все проекты удачно ложатся в русло традиционной однокристальной реализации. Существенным ограничением, например, является трудность создания цифровых фрагментов, реализующих быстрое взаимодействие нескольких параллельных процессов управления. Для таких приложений воплощение на ПЛИС может оказаться более предпочтительной. Как и в варианте перевода МК -проекта на реализацию в форму SOPC желательно, чтобы проектировщик совмещал в одном лице и схемотехника, и программиста. Более подробно современный подход к реализации фрагментов, обрабатывающих цифровую информацию с помощью МП -систем, будет рассмотрен в разд. 2.2.2. А средства, предназначенные для проектирования на основе кристаллов SOPC, объединяющих в себе плюсы ПЛИС и МК, будут обсуждаться в разд. 2.5.
Реализация цифровых фрагментов в форме полузаказных кристаллов Помимо перевода продукции на реализацию в форме ПЛИС (как видно из рис. 2.6 и как указывалось в разд. 2.1), существуют и другие варианты технологического воплощения аппаратных фрагментов с цифровым представлением информации в форме конечного продукта. Выбор каждого варианта на начальном этапе проектирования является скорее вопросом экономическим и стратегическим и лишь после этого переходит в плоскость технической реализации. Как уже отмечалось выше, при достаточной тиражности проектируемой продукции целесообразной оказывается ориентация на техноло -
163
Глава 2. Основы технологии проектирования ИСПС
гаю класса ASIC с реализацией по одной из возможных технологий изготовления полузаказной БИС. Выбор способа реализации зависит не только от сроков изготовления, тиражности, объема начальных затрат, но и от функционального состава проекта. Общий объем продукции, выполненной по технологии стандартных ячеек (СЯ), за последние годы резко увеличился и составляет значительный и постоянно увеличивающийся сектор конечной электронной продукции. Общее увеличение доли продукции на базе СЯ связано с улучшением технологии проектирования и изготовления устройств этого класса. Уменьшаются сроки разработки, уменьшается риск выпуска неработоспособной продукции, упрощается взаимодействие с изготовителем ИС. Существенным аргументом в пользу реализации на том или ином виде полузаказной БИС являются лучшие окончательные характеристики конечной БИС. В табл. 2.1 приведены сравнительные данные для различных способов реализации межсоединений. В качестве базового варианта сравнения принят вариант полностью заказного кристалла. Таблица 2.1. Сравнение характеристик для различных технологий задания системы межсоединений Laser -programmable MPGA/SC gate array
FPGA/CPLD
Время до выпуска первого кристалла
Дни
Недели
Минуты или часы
Тактовая частота
В 1,1 раза меньше
В 1,25 раз меньше
В 3—5 раз меньше
Площадь
В 3,3 раза больше
В 1,6 раз больше
В 10—20 раз больше
Если разработчик ориентируется на реализацию проекта в виде полузаказной БИС, то, независимо от способа ее изготовления, в процессе разработки требуется выполнение согласованных и/или совмещенных работ заказчика (или проектировщика) и фирмы -изготовителя ИС. Формы взаимодействия и используемое оборудование зависят от многих факторов, в том числе от фирмы -изготовителя и от формы заказа. Далее рассмотрим проектные процедуры для некоторых типичных примеров, отличающихся технологией изготовления конечного продукта. Фирма American Microsystems, Inc. (AMI) обеспечивает производственный выпуск семейства БИС типа AMI3HS с проектными нормами 0,35 мкм, относящихся к классу ASIC и с технологией изготовления по методу стандартных ячеек (Standard Cell).
164
Проектирование систем на микросхемах программируемой логики
Архитектура БИС, предлагаемая фирмой AMI, строится на основе следующих основных фрагментов: индивидуальных функциональных ячеек, мега ячеек (megacells), информационных функциональных блоков (datapath functions) и блоков памяти, которые с целью уменьшения размеров и повышения быстродействия являются оптимизированными и предварительно скомпилированными. Фирма специализируется на проектировании дополнительных схем заказчика, связанных с выполнением логических и даже простых аналоговых функций. Библиотека мегаячеек фирмы весьма обширна, чрезвычайно гибка и включает: процессорные ядра от 8 до 32 разрядов, набор периферийных элементов от таймеров до дисковых контроллеров, информационные фрагменты от сдвигающих регистров и сумматоров до умножителей, различные виды буферных блоков FIFO. Рассмотрим типовую процедуру проектирования БИС этого типа. БИС позволяют реализовать проекты заказчика, содержащие до 4 млн. вентилей в кристалле плюс емкость встраиваемой памяти. Основные этапы проектной процедуры, принятой фирмой, приведены на рис. 2.9. Из рисунка видно, что проектирование выполняется в тесном - взаимодействии заказчика и изготовителя. Работы требуют стыковки САПР, используемых заказчиком и изготовителем. Фирма AMI имеет собственную САПР под названием ACCESS Design Tools, которая интегрирует программные средства для верификации цифровых ASIC -проектов, для конвертации FPGA - или ASIC -проектов в ASIC -проекты или для корректировок и конвертации ASIC -проектов в другие формы. Пакет и методология его использования обеспечивают значительное сокращение времени проектных работ, уменьшают величину однократных (начальных) денежных вложений заказчика в проект (в английской терминологии NRE, Non Recurrent Expends), увеличивают вероятность успешности выпуска уже первых образцов кристалла. Пакет поддерживает методологию компактного проектирования, хорошо согласованного с производственным процессом фирмы, а сама фирма предлагает помощь разработчикам на любых этапах проектирования. Для ускорения и упрощения импортирования описаний из САПР различных фирм, AMI ориентируется на языки Verilog и VHDL. Стандартизация описаний предопределяет простоту переводов проектов в различные технологические реализации, включая перевод в MPGA, другие классы ASIC и т. д. Заказчик ИС для выполнения своей части работ может использовать САПР фирм Cadence, Mentor Graphics, Synopsys, Viewlogic, Veribest и некоторых других. Проектирование начинается с передачи изготовителем ИС заказчику проектного набора, содержащего библиотеку ячеек, их символьного изображения, моделей для симуляции, а также программного обеспечения для проектной верификации, вычисления временных соотношений и генерации списка соединений. Временное моделирование до разводки опирается на среднестатистические фирменные данные о значениях емкостей и сопротивлений межсоединений. После детальной разводки, выполняемой фирмой -
Глава 2. Основы технологии проектирования ИСПС
Рис. 2.9. Этапы проектирования продукции класса ASIC SC, используемые фирмой American Microsystems, Inc.
165
166
Проектирование систем на микросхемах программируемой логики
изготовителем, таблицы емкостей и сопротивлений действительных соединений передаются разработчику и используются им для определения ожидаемых фактических временных параметров прибора. Одновременно с работой над собственно проектом, заказчик и изготовитель подготавливают тестовые процедуры для проверки доводочных модификаций и готовых изделий. К доводочным испытаниям прибегают после вставок элементов граничного сканирования JTAG/SCAN, выполнения оптимизации размещения In -Place Optimization (IPO), а также после выполнения процедуры балансировки времен синхронизации (ВСТ) отдельных фрагментов. Только после получения удовлетворительных результатов моделирования, произведенных заказчиком, фирма -изготовитель приступает к выпуску масок и подложек. Тестовые программы разрабатываются заказчиком и изготовителем совместно на базе САПР и тестируются на прототипах перед их окончательной сдачей. Существенными факторами, которые предопределяют ориентацию разработчика на продукцию той или иной фирмы, являются логическая мощность кристаллов, тактовая частота или задержка на вентиль, а также предоставляемый фирмой -изготовителем набор библиотечных элементов, сроки изготовления, стоимость при различных объемах партии, потребляемая мощность, возможность управления различными режимами потребления и т. д. Приведенная выше процедура проектирования остается справедливой и при реализации в форме матричных кристаллов. Фирма AMI, кроме технологии стандартных ячеек, поддерживает выпуск кристаллов класса МРСА. Производимые фирмой БМК -кристаллы семейства AMI5HG с проектными нормами 0,5 мкм (от 4,6 до 1320 тыс. вентилей в кристалле) выполняются по бесканальной технологии типа "море вентилей", разрабатываются на той же САПР ACCESS Design Tools и по такой же технологической схеме. Некоторые отличия наблюдаются только в составе библиотек. Другой фирмой, выпускающей БИС класса ASIC с технологией изготовления по методу базовых матричных кристаллов МРСА, является фирма LSI Logic Corporation. Фирма является ведущей в мире по числу вентилей в кристалле (до 33 млн. вентилей). В качестве примера рассмотрим проектный процесс при ориентации на кристаллы типа Gl0p с проектными нормами 0,35 мкм. В основе проектной процедуры лежит использование фирменной технологии под названием FlexStream, которая интегрирует в своем составе как специфические собственные проектные средства, так и встроенные лучшие САПР других фирм, таких как Avanti, Cadence, Mentor Graphic и Synopsys. Подобное объединение различных средств в единой оболочке позволяет использовать эту технологию на всех уровнях проектирования (системном, логическом и физическом).
Глава 2. Основы технологии проектирования ИСПС
167
В состав собственных средств фирмы, помимо библиотек, включаются проектные средства, которые позволяют осуществлять проектный анализ, интерфейс со стандартными САПР, вычисление задержек, генерацию модулей, контроль проектных норм и т. д. Так же, как и фирма AMI, фирма LSI Logic в процессе работ над выпуском кристалла предполагает тесное взаимодействие с заказчиком -проектировщиком. Основное различие состоит в ориентации фирмы LSI Logic на описания проектов на уровне регистровых передач. В процедуре проектирования фирма выделяет семь основных контрольных точек. Содержание этапов и взаимодействие разработчика и изготовителя приведены на рис. 2.10. Рассмотрим последовательно маршрут проектирования и кратко охарактеризуем работы, выполняемые на отдельных этапах. - Этап 1. Начало работ над проектом. Заказчиком создается описание проекта на блочном уровне и спецификация на уровне регистровых передач (RTL). В проекте могут использоваться стандартные решения фирмы LSI Logic — CoreWare. Описание вводится в САПР, САПР контролирует проект и выполняет синтез до вентильного уровня. Одновременно с синтезом производится проверка функционирования и соблюдения указанных временных ограничений. Фирма LSI Logic просматривает спецификации проекта и может осуществлять консультирование и обучение разработчиков. Процесс контроля и синтеза итерационный. Результатом работ этого этапа является предварительное разбиение проекта на части и составление списка соединений. - Этап 2. Начальное физическое размещение. Список соединений и ограничения анализируются совместно, чтобы быть уверенными в том, что проект хорошо структурирован и не содержит фрагментов, которые смогут создать проблемы (во временной области) при физической реализации. Осуществляется статический временной анализ и функциональная верификация. - Этап 3. Пробная разводка. Блоки разводятся, размещаются шины питания и синхронизации, определяются места максимального скопления трасс и цепи, нарушающие временные ограничения. Информация о топологическом распределении элементов и граф их соединений объединяются в общий отчет для просмотра. - Этап 4. Если параметры межсоединений и временные характеристики оказываются приемлемыми, тогда переходят к окончательному размещению и трассировке. В случае неудовлетворительных результатов предыдущего этапа производится повторное разбиение проекта на части, их новая организация или производится синтез с измененными ограничениями. После завершения размещения выдаются данные для верификации законченного изделия. Приступают к генерации тестирующих программ.
168
Проектирование систем на микросхемах программируемой логики
Рис. 2.10. Маршрут проектирования MPGA, используемый фирмой LSI Logic
Глава 2. Основы технологии проектирования ИСПС
169
- Этап 5. Заказчик анализирует данные, полученные после окончательной разводки изготовителем. Производится просмотр результатов разводки на моделях. Осуществляется разработка тестовых программ. При выполнении всех требований проект утверждается и передается на изготовление. - Этап 6. Фирма -изготовитель выпускает фотошаблоны, изготавливает и проверяет подложки. Готовность прототипных образцов и тестов позволяют приступить к системному тестированию. - Этап 7. Удачное завершение системных тестов, производимых заказчиком, служит признаком принятия ИС и завершения проекта. Основное внимание при выборе технологического процесса и используемых проектных средств фирма уделяет уменьшению числа итерационных возвратов к процедуре синтеза проекта. Важным средством, которое существенно улучшает методологию проектирования схем класса ASIC в форме MPGA/SC, можно считать добавление этапа прототипирования схемы MPGA схемами FPGA/CPLD. Для обеспечения эффективности процесса прототипирования желательно выполнение двух условий. Во -первых, чтобы для конечного и прототипного вариантов продукции либо использовался совпадающий способ задания исходной информации, либо взаимные переводы осуществлялись простыми методами. При этом методы и средства задания исходной информации могут быть различными. Общение между САПР изготовителя MPGA и САПР изготовителя FPGA/CPLD может осуществляться при помощи различных стандартных языков описания аппаратуры (EDIF, Verilog или VHDL). Вторым условием является обеспечение структурно -архитектурной близости между двумя вариантами реализации, которые гарантировали бы преемственность функциональных характеристик проекта. Описание на уровне регистровых передач в наибольшей степени позволяет сохранить близость поведения оригинала и прототипа. Максимальное совпадение между характеристиками ПЛИС и БМК может быть обеспечено при совмещении в одном лице фирмы -изготовителя MPGA и фирмы -изготовителя FPGA/CPLD и при наличии у нее соответствующих типов БИС. В таком случае наиболее рациональным представляется предварительная реализация проекта в форме ПЛИС. Ведущие фирмы -производители схем ПЛИС Xilinx и Altera стараются поддержать такое направление. И та и другая фирма выпускают БМК, соответствующие определенным схемам ПЛИС. В качестве примера проектной процедуры конвертации проекта на рис. 2.11 приведена процедура переноса проекта, реализованного на БИС фирмы Altera типа АРЕХ20КЕ или АРЕХ20КС, в форму БМК. Из рисунка видно, как много проверок содержит конвертационная процедура, включая проверку основных проектных правил и ограничений DRC (Design Rule Check). В том числе, показано формирование файлов для автоматической генерации тестовых последовательностей для оборудования как общего
170
Проектирование систем на микросхемах программируемой логики Файл ' конфигурационных^ данных
К изготовлению масок Рис. 2 . 1 1 . Процедура конвертации проектов для БИС типа APEX
Глава 2. Основы технологии проектирования ИСПС
171
назначения ATPG (Automatic Test Pattern Generation), так и встроенных блоков памяти ESB (Embedded System Blocks). Фирма Altera анонсировала в 2001 году выпуск БМК типа HardCopy. Семейство БМК этого типа позволяют поддерживать методологию конвертации проектов из ПЛИС типа APEX с минимальным риском иметь расхождение в поведении прототипа и конечного продукта (при условии, что логическая емкость приборов лежит в диапазоне от 400 тыс. до 1,5 млн. вентилей). Минимизация достигается сохранением всех основных ресурсов ПЛИС типа APEX при переводе ее реализации в жесткие соединения вместо соединений, определяемых памятью конфигурации. Особенностью процедуры конвертации является отсутствие необходимости у проектировщика вмешиваться в ее процесс. Этот процесс не требует от проектировщика разработки и создания специальных средств тестирования (типа генерации Test -Bench, методика создания и использования которых будет более подробно рассмотрена в гл. 3), разработки тестовых векторов или временного и функционального моделирования. Естественно, что определенные тестовые проверки разработчик выполнял при разработке и проверке реализации своего проекта на ПЛИС типа APEX. Для проведения миграции требуются выходные файлы работоспособного проекта, сгенерированного САПР Quartus II для БИС типа APEX. На выполнение процесса конвертации и изготовление функциональных прототипов фирма Altera затрачивает порядка 8 недель, для выпуска промышленной партии требуется около 16—18 недель. Экономическая выгода применения БМК типа HardCopy видна из следующих сравнительных данных. Стоимость изготовления комплекта масок для БИС с проектными нормами 0,13 мкм и с шестью слоями металла, которая выполняется по технологии стандартных ячеек, превышает 750 тыс. долларов. Поскольку к этой стоимости необходимо добавить дополнительные расходы фирмы -изготовителя БМК на подготовительные операции к проектированию и производственному процессу, то общая сумма расходов превышает 1 млн. долларов. Для проектирования БМК типа HardCopy фирма Altera обещает затраты на уровне 300 тыс. долларов [33]. Фирмы, специализирующиеся на производстве полузаказных БИС, также стараются поддерживать технологии конвертации проектов, выполненных на схемах типа ПЛИС, что делает целесообразным проектирование по ветви FPGA -ASIC. Однако временное отставание фирм -изготовителей БИС БМК в выпуске схем, соответствующих определенному классу схем ПЛИС, от темпов снижения цены на перспективные типы ПЛИС фирмами -производителями БИС ПЛИС часто создает ситуацию, когда экономически невыгодно отказываться от выпуска продукции на основе схем ПЛИС. Целесообразность конвертации проектов из ПЛИС в форму БМК может следовать не только из экономических соображений. Как правило, помимо
172
Проектирование систем на микросхемах программируемой логики
большей уверенности в работоспособности проекта, этот подход дает и определенные дополнительные выгоды, например, допускает работу на больших системных частотах, меньшую стоимость, меньшую потребляемую мощность и т. д. Еще одним важным моментом, который следует учитывать при поиске рациональной формы реализации конечного продукта, является отработанность у фирм технологии конвертации проектов ASIC -ASIC. Наличие таких технологий создает предпосылки для сохранения у проекта резервов за счет простоты перевода в реализации с другими и более перспективными характеристиками. Необходимость таких переводов может быть связана как с экономическими соображениями (схемы с меньшими топологическими нормами, как правило, имеют лучшие эксплуатационные характеристики и стоят дешевле), так и с возможностью реализовать проект с другими электрическими или эксплуатационными характеристиками (примером может служить перевод проекта на современные значения напряжения питания, включение проекта в систему со смешанными выходными напряжениями и т. д.). Современное возрастание сложности проектов заставляет искать технологические варианты реализации проектов с гарантированными свойствами. Одним из основных путей увеличения надежности проектирования при условии сокращения времени на проектирование является увеличение доли уже отработанных и проверенных или просто стандартных решений. Варианты реализации стандартных решений и способы их использования проектировщиком могут существенно отличаться. Непрерывно увеличивается число фирм, специализирующихся на разработке библиотек стандартных фрагментов для различных типов и видов ASIC продукции (IP -core). Процесс добавления такого стандартного фрагмента может иметь различную технологическую реализацию. Чаще всего фрагменты разрабатываются и записываются на одном из языков описания аппаратуры и вставляются в проект перед процедурой синтеза. Реже используются варианты добавления стандартных фрагментов на этапах топологического проектирования, хотя именно топологическая оптимизация может резко улучшить временные характеристики фрагмента при сохранении его размеров. Для БМК фирма -разработчик IP -core должна обеспечить простоту переноса топологии стандартного фрагмента (систему межсоединений) на произвольное место среди массива вентилей. Для технологии стандартных ячеек может использоваться как перенос топологии стандартной ячейки на любое место массива ячеек, так и фиксированное размещение в кристалле стандартных фрагментов. Фирма AMI для фрагментов первого типа, в зависимости от их сложности, использует название мегаячейка (megacell) или информационный функциональный блок (datapath function), a для второго типа — скомпилированный блок (compiled block). Скомпилированные блоки (в подавляющем большинстве случаев это те или иные вари -
Глава 2. Основы технологии проектирования ИСПС
173
анты блоков памяти) оптимизированы по площади, скорости и потребляемой мощности, но могут размещаться только в заранее определенных местах кристалла.
2.2.2. Проектирование микропроцессорных фрагментов систем Для большого числа современных проектов (от 60 до 80%) основой функционирования является работа программного обеспечения на платформах либо общецелевых, либо заказных (чаще DSP) процессоров. Причины появления МП в системе могут быть различными — от необходимости использовать сложные программные системы в минимальном конструктивном исполнении, до просто престижных соображений разработчика. Несмотря на то, что использование 8 -битовых микроконтроллеров в разнообразных встроенных системах насчитывает уже почти 20 -летнюю историю, не приходится сомневаться, что существующая практика ориентироваться на встроенные микропроцессорные решения сохранится и в будущем. Однако в свете новейших технологических и архитектурных достижений микроэлектроники, и особенно в связи с развитием ИС с программируемой структурой, целесообразные варианты построения и проектирования современных систем явно изменились и желателен их пересмотр. Широкое практическое распространение двух альтернативных способов оперативного изменения поведения системы на уровне корректировки памяти программы МП или на уровне корректировки памяти конфигурации ПЛИС привели к возникновению новых архитектурных решений. На рис. 2.12 приведены некоторые возможные варианты. На крайних полюсах этих решений располагаются, с одной стороны, обычная микропроцессорная система или однокристальный микроконтроллер МК, а с другой — обычная ПЛИС. При определенных условиях оба варианта могут решать одну и ту же задачу. Ранее замена реализации системы из дискретных компонентов на МПС (МК) диктовалась либо требованием миниатюризации конструкции, либо способностью к корректировкам поведенческой реакции без каких -либо конструкционных изменений на любых этапах жизни конструкции. В современных условиях оба варианта отвечают этим требованиям. Вариант решения в форме связанных между собой БИС МП и БИС ПЛИС соответствует реализации с очень гибкими возможностями модификации организации всей интерфейсной части микропроцессорной системы, а по гибкости значительно опережает традиционную архитектуру микропроцессора, соединенного с набором программируемых периферийных БИС. Подобная организация системы позволяет сформировать периферию МП в произвольных сочетаниях — ограничениями являются не столько логиче -
174
Проектирование систем на микросхемах программируемой логики
екая мощность ПЛИС (обычно можно в том же корпусе установить более мощную ПЛИС), сколько количество конструктивно предусмотренных контактов ввода/вывода. Классические МПС могут достигать таких возможностей только при многоплатных или мезонинных технологиях, когда за счет изменения типа платы, подключаемой к основной плате, создается конфигурация системы с заданными ресурсами.
Рис. 2.12. Современная организация систем с оперативно корректируемым поведением
Еще большими потенциальными возможностями обладают системы, совмещающие в одном кристалле оба подхода к реализации изменений поведения проектируемой или модифицируемой системы. Вопросы технической реализации БИС этого типа подробно рассматривались в предыдущей главе, такие БИС носят обобщенное название SOPC. Однако объединение в одном кристалле устройств, поддерживающих два разных подхода к модификации поведения, не приводит к чисто арифметическому сложению их возможностей, а вызывает и будет вызывать поистине революционные изменения в методике проектирования электронных систем. Два основных момента требуют подробного рассмотрения процедуры проектирования традиционных микропроцессорных систем. Во -первых, в связи с тем, что в архитектуре современных и будущих SOPC присутствует микропроцессорная состав -
Глава 2. Основы технологии проектирования ИСПС
175
ляющая, рассмотрение процедуры проектирования традиционных МПС важно для последующего анализа процедуры проектирования SOPC. Во -вторых, широкое распространение ИСПС оказало и оказывает существенное влияние на различные аспекты процедуры проектирования традиционных МПС. Таким образом, тесная взаимосвязь и фактическая близость проблем проектирования традиционных МПС и SOPC заставляют более подробно остановиться на особенностях реализации микропроцессорных фрагментов в современной аппаратуре. Вместе с тем, следует учитывать, что методы, решения и средства, которые создавались и продолжают разрабатываться для систем на кристалле SOPC, далеко не всегда могут быть применены в традиционных микропроцессорных системах. Поскольку методика проектирования микропроцессорной составляющей в БИС SOPC в значительной мере опирается на опыт, полученный при проектировании традиционных МПС, приводимый ниже материал посвящен анализу влияния ПЛИС на различные этапы разработки традиционных МПС. А специфика и проблематика проектирования микропроцессорной составляющей в SOPC будет рассмотрена в разд. 2.5. Важнейшим аспектом современного проектирования является ориентация на привлечение проектных средств, поддерживающих проектирование микропроцессорных ядер. Методика привлечения заключается либо во включении этих средств в состав САПР ПЛИС, либо в организации связи инструментальных средств проектирования программных средств и САПР ПЛИС. Методика проектирования микропроцессорных систем на традиционной элементной базе к настоящему времени в достаточной мере стабилизировалась. Состав и назначение отдельных этапов проектирования при ориентации на традиционные реализации сохранились, однако произошли изменения содержания отдельных этапов. Эти изменения связаны с тем, что теперь не обязательно ожидать реализации аппаратной части проектируемой системы перед переходом к проектированию программной части системы, как это приходилось делать до последнего времени. Это положение наглядно иллюстрируется рис. 2.13.
Рис. 2 . 1 3 . Традиционное временное распределение процессов проектирования
176
Проектирование систем на микросхемах программируемой логики
Стремление уйти от этого периода ожидания потребовало изменения инструментария проектирования, методологии его использования и применения. В проектировании систем, базирующихся на успехах современной электронной технологии, намечается явное перераспределение целей и задач, этапов, инструментария и методологии, появляется ряд новых подходов. Далеко не все из них окончательно оформились к настоящему времени. Некоторые отличия видны из сравнения современной и традиционной методологии проектирования, приведенного на рис. 2.14.
Рис. 2.14. Проектирование микропроцессорных фрагментов систем
Глава 2. Основы технологии проектирования ИСПС
177
Из рисунка видно, что возросло число этапов работы. Вновь введенные этапы позволяют проектировщикам обнаружить на этих новых этапах моделирования и верификации большее число ошибок и нестыковок между программами и аппаратурой. За счет увеличения эффективности работы современных средств проектирования, этап спецификации и разработки программного обеспечения существенно упростился. Те ошибки, которые прежде обнаруживались только на этапах комплексной отладки, теперь, как правило, обнаруживаются на более ранних этапах проектирования в процессе моделирования. Рассмотрим последовательно основные этапы проектирования фрагментов, ориентированных на микропроцессорную реализацию.
Этап выбора типа МП Первым этапом является этап выбора типа МП. Для традиционного подхода система команд и архитектура МК или МП всегда носили предопределяющий характер и оказывали исключительное влияние на эксплуатационные характеристики проектируемой системы, поэтому этап выбора типа процессорного ядра был особенно важен. Выбор процессорного ядра предопределяет все составляющие проектного процесса: доступные аппаратные ресурсы, имеющиеся программные заготовки (библиотеки стандартных программ, наличие разработанных систем реального времени), наличие разработанного инструментария проектирования и отладки, методики проектирования. Это положение было особенно существенно для микроконтроллерной реализации, поскольку выбор семейства предопределяет и допустимые варианты процессорной периферии (объемов и типов памяти, скоростей и типов других периферийных устройств, достаточного количества входных/выходных портов и т. д.). К настоящему времени острота проблемы несколько уменьшилась как со стороны HW, так и со стороны SW. В части HW, во -первых, произошла стандартизация свойств и параметров периферийных блоков, а во -вторых, в них появилась гибкость и возможность выполнения в определенных пределах корректировок внутренней организации. В части SW разработчиками постоянно предпринимаются усилия, чтобы облегчить переносимость его с одной аппаратной платформы на другую. Тем не менее, выбор МП или МК был и остается важнейшим этапом проектирования. Для оценки возможных направлений поиска обратимся к табл. 2.2 и 2.3, составленным на основании данных, приведенных в [41, 42]. Таблица 2.2. Количество фирм, производящих МП/МК (кроме процессоров DSP и сетевых)
8 разрядов
16 разрядов
32 разряда
64 разряда
Число фирм
20
9
28
6
Число типов МП/МК
38
15
71
13
178
Проектирование систем на микросхемах программируемой логики
Таблица 2.3. Количество фирм, производящих процессоры DSP и сетевые
16 разрядов
32 разряда
Специализированные
Число фирм
10
3
10
Число типов МП/МК
13
5
12
В табл. 2.2 приведено количество фирм, производящих МП/МК выбранной разрядности и общее число выпускаемых типов МП/МК. В таблицу не включены процессоры DSP и сетевые процессоры. Табл. 2.3 содержит информацию о DSP -процессорах и специализированных DSP -ядрах. После 2000 года процессоры DSP по рыночным показателям (объем продаж) переместились на первое место среди процессорных ядер, сменив традиционного лидера — 8 -разрядные МП -ядра. Содержание таблиц подтверждает следующие выводы. МП и МК, имеющие 8 -разрядную организацию, сохраняют большую часть уже завоеванного рынка продукции, причем (из данных тех же источников) более 40% фирм поддерживают выпуск клонированных MCS -51. Стремительно развивающийся сектор телекоммуникационных приложений существенно увеличил выпуск 32 -разрядных МП, а 16 -разрядные решения и для МК, и для МП имеют достаточно ограниченную и стабильную сферу приложений. Для традиционной МП -реализации определенное распространение получил промежуточный вариант — 16 - или даже 32 -разрядное процессорное ядро и 8 -разрядная организация периферии. Отмеченная ситуация еще более четко прослеживается на отечественном рынке. Сложившаяся ситуация возникла потому, что затраты при замене 8 -разрядной шины на 16 -разрядную или, тем более, 32 -разрядную достаточно велики. В то же время, вполне возможна эмуляция особенностей 16/32 -разрядного процессорного ядра, опираясь на дешевое 8 -разрядное ядро. Поэтому проектировщикам приходится тщательно оценивать соотношение экономического выигрыша и потерь скорости и увеличения объемов исполняемого кода. Для отечественных разработчиков на выбор МП -ядра, по видимому, существенное влияние оказывает широкое распространение персональных компьютеров (ПК) класса PC для реализации разнообразных задач. Необходимость использования в этих компьютерах плат расширения с 32/64 -разрядной организацией шинного интерфейса, составляющих существенную часть отечественных разработок, создает предпосылки для переноса центра тяжести перспективных разработок в область больших разрядностей. Сокращается число употребляемых процессорных ядер. Лишь незначительное число систем команд и базовых архитектур МП получают широкое распространение. Большинство фирм, выпускающих МП и МК, пытаются
Глава 2. Основы технологии проектирования ИСПС
179
обеспечить распространение своей продукции не за счет оригинальности внутренней архитектуры МП или, тем более, системы команд, а за счет более эффективных сопровождающих решений (например, удобные типоразмеры корпусов, малое потребление мощности, малая стоимость, удобный набор встроенных блоков памяти и т. д.). Такие клонированные МП в некоторых случаях полностью замещают продукцию фирмы -разработчика исходной архитектуры МП. Стремление разработчиков максимальным образом обеспечить преемственность и применимость решений из ранних разработок не создают плацдарма для появления новых типов МП и МК. Вновь разрабатываемые БИС SOPC также ориентируются на включение в свой состав^наиболее распространенных типов МП и МК. Это позволяет сэкономить усилия при создании новых вариантов фрагментов программного обеспечения, базируясь на модификации блоков, ранее разработанных и отлаженных в предшествующих реализациях. Многие из фирм, учтенные в таблицах, специализируются на выпуске интеллектуальной собственности (Intellectual Property, IP), соответствующих архитектуре наиболее популярных процессорных ядер. Для реализации SOPC можно ожидать постепенного смещения центра тяжести на использование МП с большей разрядностью. Для 32 -разрядных приложений в настоящее время наибольшее распространение получили два типа RISC -процессорных ядер — это разработка фирмы ARM Limited (система команд ARMv4T с расширениями для семейства ARM7/ARM7TDMI или семейства ARM9 Thumb) и разработка фирмы MIPS Technologies (MIPS32 4КсВ). Достаточно широкое распространение имеют архитектуры и системы команд таких МП, как Power PC, 68K/CPU32, ColdFire, MiniRISC, TinyRISC.OakDSPCore.
Этап выбора периферии Выбор периферии, необходимой для реализации многих функций МП -системы, является следующим шагом проектирования. Основной проблемой была и остается проблема создания нестандартных устройств ввода/вывода. Наряду с традиционным вариантом реализации периферийного оборудования на поставляемых различными фирмами дискретных схемах, новым подходом является реализация на ПЛИС всего интерфейсного блока системы (исключение могут составлять экономически обоснованная целесообразность установки действительных схем СБИС -памяти большой емкости, очень сложных и логически емких контроллеров). Широкая номенклатура выпускаемых БИС ПЛИС с различным количеством выводов и логической мощностью позволяет реализовать в одном корпусе практически любой вариант набора стандартных периферийных схем (включающей таймеры, последовательные и/или параллельные регистры и т. д.). Выгодами реализации на одной БИС ПЛИС всего интерфейсного блока, помимо традиционных преимуществ интеграции, таких как уменьшение потребления, габаритов и т. д., является легкость добавления или удаления из проекта отдельных элементов.
180
Проектирование систем на микросхемах программируемой логики
Другим вариантом является интегрирование в кристалле МП, интерфейсных средств и блока программируемой логики, что соответствует традиционной идеологии SOPC и будет рассматриваться в разд. 2.5. Промежуточным вариантом является идеология фирмы Agere Systems. В выпускаемые этой фирмой ПЛИС семейства ORCA4, помимо элементов программируемой логики, включен определенный набор стандартных встроенных периферийных устройств, а также интерфейсных средств, упрощающих связь с целевым МП (не входящим в состав БИС). Возможность настройки интерфейса на подключение различных типов МП порождает достаточно широкие перспективы подобного подхода. Реализация в форме БИС SOPC имеет, помимо обычно перечисляемых достоинств, еще одну особенность — согласованность характеристик МП и встроенных блоков памяти. Последнее позволяет существенно поднять тактовую частоту встроенного МП, например, для БИС Е5 фирмы Triscend тактовая частота типового МП -семейства 8032 поднята до 40 МГц.
Этап разработки программного обеспечения После выбора стандартной аппаратуры и разработки специфического оборудования ввода/вывода (по крайней мере, после четкой спецификации свойств и характеристик этого оборудования) переходят к этапу разработки и отладки программного обеспечения. Временное запаздывание начала работ по разработке программного обеспечения (отраженное на рис. 2.13) является основной болевой точкой проектирования аппаратно -программных систем. В разд. 2.5, посвященном проектированию БИС SOPC, будет показано, как эта проблема решается при современном подходе. Однако и для традиционной реализации МПС появление ПЛИС существенно повлияло на применяемые средства и методы разработки и отладки программного обеспечения. На рис. 2.15 показан состав средств, поддерживающих типовую процедуру разработки программного обеспечения. Если отладку программного обеспечения предполагается производить сразу в конечной системе, то этой отладке должна предшествовать отладка аппаратуры, и только затем отладка аппаратных и программных средств может производиться совместно. Необходимость подобного совмещения отражена на рис. 2.13. Существенным вопросом, решаемым в начале этого этапа, является выбор технических средств, поддерживающих разработку и отладку программного обеспечения. На разных этапах отладки может использоваться различный набор отладочных средств. Стремление ускорить проектирование может приводить к тому, что одним из оснований выбора типа МП -ядра может оказаться ориентация на определенную САПР и спектр поддерживаемых ею отладочных средств. Конечно, при этом приходится учитывать и другие характеристики САПР, такие как доступность, цена, эффективность, удобство работы и пр. Для проектирования программной части МП -фрагментов набор используемых программ, как правило, объединяется в единый комплекс
Глава 2. Основы технологии проектирования ИСПС
181
и управляется программой, обычно называемой оболочкой проектирования. Для комплексной отладки набор используемого оборудования не ограничивается ЭВМ и находящимся в ней программным обеспечением, а требует дополнительного привлечения достаточно большого количества разнообразного вспомогательного оборудования. Поэтому для такого комплекса средств, как правило, используется понятие система разработки. Причем, для всех этих средств разработки и отладки характерна большая ориентация на возможности и ресурсы, предоставляемые основным (Host) компьютером. Иногда его называют инструментальным или отладочным компьютером. Отлаживаемую систему, соединенную с Host -компьютером, называют в этой cвязке Target -системой.
Рис. 2.15. Состав современной системы разработки МПС
182
Проектирование систем на микросхемах программируемой логики
Большое значение имеет возможность прототипирования проектируемой системы. Традиционно используемые типы прототипных плат и их назначение были рассмотрены в разд. 2.2.
Средства поддержки создания программного обеспечения Рассмотрение состава средств разработки ПО микропроцессорных систем целесообразно начать с важнейшей составляющей этих систем — средств упрощения и ускорения процесса создания программного обеспечения. Вопросам, методологии и технологии создания программного обеспечения МПС посвящено достаточно большое количество работ [7, 10]. Необходимость ускорения разработки специализированного ПО вызвана тем, что от этого зависят сроки выхода на рынок конечной продукции. Скорость создания ПО при ориентации на традиционные методы проектирования не может быть существенно увеличена из -за трудности распараллеливания процесса разработки, обусловленного ограниченными возможностями проектировщиков управлять многосвязными проблемами. Вместе с тем, в реальных приложениях число параллельно решаемых задач может лежать в диапазоне от десятков до сотен. Скорость проектирования, достигаемая при применении существующих методов разработки прикладного ПО, вступает в противоречие с технологией создания новых аппаратных решений. Наряду с разработкой ПО по классическим схемам (линейный подход, процедурный подход и использование концепций ОСРВ) идет поиск новых подходов к проектированию прикладного ПО для МПС. В настоящее время наибольшее распространение получили два подхода. Один заключается в использовании систем визуального проектирования, суть другого — применение стандартных библиотек классов для проблемно ориентированного программирования. В различных странах идет интенсивный поиск методов и средств, переводящих процесс разработки прикладного ПО для МПС из творческого и уникального процесса в стандартный поток выпуска серийной продукции [5]. Не останавливаясь на всей проблематике создания ПО МПС, отметим только, что одним из основных направлений быстрой и надежной реализации программных проектов является широкое использование предшествующих наработок. Они по источнику возникновения могут быть либо результатом собственных предыдущих разработок проектировщика, либо входить в состав библиотек стандартных программ. В состав любой современной системы проектирования включаются стандартные библиотеки, а также средства для создания собственных библиотек пользователей. Стандартные библиотеки могут иметь различную прикладную направленность. Наиболее удобными для использования являются библиотеки, органически входящие в состав систем проектирования. Боль -
Глава 2. Основы технологии проектирования ИСПС
183
шинство фирм, предлагающих инструментальные средства разработки ПО, одновременно предлагают и обширные библиотеки, ориентированные на наиболее распространенные типы МПС и МК. Программные средства поддерживают все стадии разработки пользовательских приложений. Интегрированные среды для МП и МК выпускаются большим числом фирм. Наибольшее распространение получили среды разработок SingleStep фирмы SDS, MULTI фирмы GreenHills Software, VADS, IDE фирмы Keil Software, Code Composer фирмы Texas Instruments для DSP -разработок. Значительное число областей приложения микропроцессорных систем связано с реализацией аппаратно -программных комплексов, работающих в режиме реального времени. Поэтому существенное место в стандартных средствах проектирования занимают вопросы упрощения и ускорения разработок именно таких систем.
Управление в реальном времени При использовании МПС в качестве управляющих систем (а этот спектр продукции представляет весьма значительную часть всей МП -продукции) задачей программного обеспечения является контроль за физическими процессами и управление ими. Одной из наиболее важных проблем при этом становится проблема управления процессами в реальном времени. Хотя построение систем, ориентированных на решение таких проблем, в современных источниках освещено достаточно широко (много информации об ОСРВ, включая ссылки на публикации по разработке систем реального времени, можно получить на сайте www.realtime -magazine.com), целесообразно остановиться на отдельных вопросах реализации подобных систем. Условно МП -системы, связанные с управлением реальными процессами, могут быть разделены на три категории: большой сложности, средней сложности и малой сложности. В системах большой сложности основной проблемой является распределение ресурсов МП между задачами (распределение времени). В этих системах могут использоваться ОС общего назначения как стандартные (такие как Linux, Windows NT), так и расширенные средствами управления в реальном времени (такие как RT Linux, RTAI). Приобретение самой ОС и средств разработки для Windows NT, Windows СЕ или RTX потребует затрат более 1 тыс. долларов. Время реактивности системы с такими ОС может лежать в пределах более 1 мс для ОС общего назначения и более 100 мкс для ОС типа RT Linux. В системах средней сложности основной задачей является время реакции на события, происходящие в управляемой среде, поэтому здесь применение ОСРВ оказывается необходимым. Дорогие ОСРВ класса VxWorks обходятся потребителю в 20 тыс. долларов, а более дешевые типа QNX, OS9 — в 10 тыс. долларов. Время реактивности таких систем лежит в диапазоне
184
Проектирование систем на микросхемах программируемой логики
от 10 до 100 мкс. Малыми временами реакции обладает поставляемая фирмой WindRiver OCPB VxWorks, что позволяет рекомендовать ее для использования в компактных системах реального времени. С 2001 года разработчики МПС могут бесплатно через Интернет загрузить комплекс Tornado Prototypes Комплекс включает в себя полную инструментальную среду Tornado и моделировщик операционной системы VxWorks, работающие в среде Windows. При таком подходе проект может быть выполнен в рамках Tornado Prototyper и только на этапе производства конечной продукции потребуется приобретение стандартной версии Tornado с включенными средствами генерации VxWorks. Требование в системах малой сложности иметь времена реакции порядка 10 мкс оказывается предельным для стандартных СРВ и заставляет отказаться от их применения. В последнем случае необходимо ориентироваться на аппаратное решение задач управления. И здесь, прежде всего, окажется целесообразным использование ПЛИС и SOPC. Разумное распределение функций между аппаратной и программной частями SOPC является вариантом решения возникающих проблем. Достаточно распространенной ситуацией, особенно для систем средней и малой сложности, является случай, когда разработчикам ПО представляется нецелесообразным использование в качестве основы ПО стандартной операционной системы реального времени ОСРВ. Подобное решение чаще всего возникает из -за того, что на начальном этапе работ отсутствует или недостаточно четко специфицирована постановка задач, решаемых программным обеспечением. Постоянное добавление в ходе разработки новых функций системы или более сложной ее реакции на совокупности внешних событий приводит к существенному "разбуханию" программного обеспечения, и в результате могут возникать ошибки, которые весьма трудно обнаружить, или даже резкие провалы работоспособности подобной самодеятельной разработки системы управления в реальном времени. В отличие от этого подхода ориентация на стандартные средства и механизмы ОСРВ позволяет проектировщику не только значительно упростить процесс написания программ, но, что очень важно, приводит к созданию более четко структурированной системы, что существенно упрощает ее отладку. В ряде случаев разработчик может остановить свой выбор на той или иной ОСРВ из -за поставляемых одновременно с ОСРВ средств отладки и полезных утилит отладки. По сравнению с обычными средствами разработки МПС средства разработки ОСРВ функционально богаче. Как правило, они включают средства удаленной отладки, средства временного анализа исполнения, средства эмуляции целевого процессора, средства отладки взаимодействующих задач. При ориентации на встраивание в состав своей системы стандартной ОСРВ или ее ядра разработчику необходимо решить вопросы экономической целесообразности. Предлагаемый различными фирмами набор ОСРВ весьма зна -
Глава 2. Основы технологии проектирования ИСПС
185
чителен (более пятидесяти систем упомянуто только в обзорных статьях). Среди ОСРВ можно выделить группу наиболее популярных систем (соответственно, у них больше и объем продаж). Это системы VxWorks фирмы WindRiver Systems, OS -9 фирмы Microware Systems, pSOS фирмы Integrated Systems, QNX фирмы Quantum Software Systems, LynxOS фирмы Lynx Real Time Systems и VRTX фирмы Ready Systems. Среди ОСРВ традиционно выделяют подкласс ОСРВ, реализующих идеи ядра. В этот подкласс включаются ОСРВ с монолитным ядром. Внутри компактного ядра содержится реализация всех основных механизмов реального времени. Механизмы эти тщательно отработаны и обеспечивают решение широкого спектра проблем, ядро построено по модульному принципу, система легко масштабируется (настраивается на условия конкретного применения), компактна и ее поведение предсказуемо. Примерами этих систем являются системы OS -9 и QNX. Другим вариантом решения задач реального времени для систем малой сложности (при условии максимального использования стандартных решений) может являться построение своей ОСРВ i на основе отдельных стандартных решений. Примером фирмы, поддерживающей проектирование пользовательских ОСРВ, является компания Real -Time User Support International (www.rtusi.com). Помимо экономических соображений разработчик должен учесть технические критерии выбора ОСРВ. В основе выбора лежит рассматриваемая далее цепочка конкретных временных расчетов. На основании анализа событий, которые могут происходить на управляемых объектах, разработчик выделяет критические события (события, отсутствие реакции на которые может приводить к невосполнимым потерям в системе). С каждым событием сопоставляется критическое время реакции на это событие. После этого ищется худшая комбинация одновременно возникших критических событий. Цель такого поиска состоит в определении ситуаций, в которых к ОСРВ предъявляются наиболее жесткие требования. Знание времен реакции ОСРВ на события позволяет достаточно точно определить пригодность той или иной ОСРВ для управления заданными объектами. С точки зрения рассматриваемой нами проблемы применения ИСПС существует достаточно тесная взаимосвязь с реализацией ОСРВ в SOPC. Такая близость задач, решаемых ПЛИС и ОСРВ, связана с целевой направленностью обоих направлений. И то и другое направление связаны с повышением быстродействия. Одна из основных задач ОСРВ — обеспечение гарантированной временной реакции системы на возникшее событие — может решаться с новой степенью гибкости, благодаря мобильности аппаратуры. Возможность построения реконфигурируемых систем на кристалле, а тем более на динамически реконфигурируемых SOPC, открывает новые перспективы построения систем управления реального времени.
186
Проектирование систем на микросхемах программируемой логики
Этапы кодирования и отладки программного обеспечения После решения общих принципов построения программного обеспечения МП -систем разработчики переходят к написанию и отладке ПО. Основные изменения в методике и средствах отладки связаны с увеличением взаимосвязи между Host - и Target -системами (при этом не важно, является ли Target -система прототипом или конечным продуктом). Изменения начинаются с первых шагов проектирования. Первый этап работы — создание исходных файлов. Создание исходного файла независимо от языка программирования поддерживается современными редакторами. Встроенные в проектную оболочку или внешние подключаемые (типа Prism Editor) редакторы существенно упрощают процедуру набора и предварительного контроля вводимых программ. Для этого редактор поддерживает контекстную цветовую окраску всех синтаксических конструкций программы. Непрерывно проверяется синтаксическая корректность программы. При сомнениях в синтаксических конструкциях можно вызвать не только подсказку (Help по конструкции), но и включить в текст составляемой программы шаблон выбираемой конструкции (Template). Можно вывести и просмотреть все последующие предложения, содержащие изменения выбранной переменной. Большое количество редакционных действий над группами объектов значительно упрощает работу с исходным текстом программы. Очередной этап работы — компиляция программ обычно поддерживается для двух основных языков: языка ассемблера и языка С или C++. В последнее время использование конструкций ассемблера все чаще допускается прямо среди операторов языка С. В комплекты обычно включаются программы редактирования связей (компоновщики), оптимизированные библиотеки, архиваторы/библиотекари и набор различных утилит. Современная компиляция с языка С обычно поддерживает создание различных вариантов программного кода, например, возможности компиляции от строгого ANSI С до ANSI С с различными расширениями. Программист имеет возможность настраивать компилятор на работу с различной степенью локальных или глобальных оптимизаций, создающих программный код, оптимизированный по скорости и/или размерам. Следующий этап — один из самых ответственных этапов проектирования — отладка программы. В различные периоды развития средств разработки ПО использовались и получили распространение различные подходы к отладке программного обеспечения. Традиционное временное распределение взаимоотношений между разработкой программного и аппаратного обеспечения было показано на рис. 2.13. Неправильная работа может быть связана с ошибками программы и аппаратуры. Поэтому, чтобы обеспечить быстроту и качество отладки, желательно
Глава 2. Основы технологии проектирования ИСПС
187
пользоваться различными методами и аппаратурой. Отладка может происходить сразу на конечной продукции, а может начинаться на прототипах. Еще большое опережение отладки достигается, если на предварительном этапе используются моделирующие системы, последний вариант обычно называется кроcс -отладкой. Положительный эффект от нее связан не только с тем, что появление кросс -системы в распоряжении проектировщика может во времени значительно опережать завершение работ по изготовлению проектируемой системы, но и с тем, что работоспособность отладочной кросс системы не вызывает сомнений, в отличие от аппаратуры разрабатываемой системы. На следующем этапе работ нужны средства, которые помогут обнаружить программные ошибки. Программные ошибки, в свою очередь, делятся на ошибки программирования (скорее, кодирования алгоритма) и смысловые (семантические). Семантические ошибки связаны с ошибками программной интерпретации требуемых системных действий и в большинстве случаев обнаруживаются на этапе комплексной аппаратно -программной отладки. Ошибки программирования, в свою очередь, делятся на статические и динамические. Статическими являются ошибки синтаксиса, несоответствие типов, необъявленные идентификаторы. Подавляющее большинство этих ошибок обнаруживается на этапе трансляции. Динамические ошибки проявляются на этапе работы (исполнения) программы. К таким ошибкам относятся: выход за пределы стековой памяти, обращение к недействительному элементу массива, неправильная работа с указателем и т. п. Требование эффективности построения компилированного кода приводит к тому, что обнаружение ошибок этого типа при отладке затруднено. Современные средства выполнения компиляции могут добавлять для режимов отладки кодовые фрагменты, которые обнаруживают во время исполнения программы появление динамических ошибок заданного типа, локализуют их и связывают с вызывающим их участком исходной программы.
Отладка аппаратуры Аппаратная отладка, так же как отладка программного обеспечения, может выполняться на всех трех видах реализации системы: виртуального прототипа, реального прототипа и реальной системы. Наличие в распоряжении проектировщика моделей отдельных фрагментов проектируемой системы позволяет легко создавать на экране дисплея желаемые конфигурации системы и моделировать ее будущее поведение. Для ИСПС сгенерированная модель может использоваться при создании конфигурации реальной системы. Все виды ошибок проектирования моделирование позволяет обнаружить в редких случаях, поэтому только эксперименты с реальными образцами могут дать уверенность в достигнутых характеристиках системы. Далеко не все проектируемые системы содержат такое количество собственных ресурсов,
188
Проектирование систем на микросхемах программируемой логики
которое позволяет легко и просто организовать проведение экспериментальных работ, осуществлять быструю коррекцию аппаратных и программных решений. Поэтому широкое распространение получают методы удаленной отладки. Отладочные средства сконцентрированы при такой организации экспериментов около компьютера ведущей системы (Host -системы), а соединение ведущей системы с отлаживаемой системой (Taiget -системой) позволяет достаточно просто создавать любые исследовательские комбинации.
Методы комплексной аппаратно -программной отладки Исторически первым появился и использовался принцип EPROM -прото типирования Идея метода иллюстрируется рис. 2.16. Отладка сводится к тому, что исследуемая программа, оттранслированная в ПК, при помощи программатора зашивалась в БИС программируемой тем или ином способом схемы ПЗУ (EPROM, ОТР и т. д.). После этого ПЗУ помещалось в отлаживаемую систему, на ней выполнялись эксперименты, на основе данных экспериментов принималось решение о целесообразных направлениях изменений разрабатываемой программы, и процесс повторялся.
Отлаживаемая система
Рис. 2.16. Метод EPROM -прототипирования
Метод применялся и для памяти программ, внешней относительно МП/МК, и для встроенной в МК. Более перспективной представляется модификация метода, приведенная на рис. 2.17. Она опирается на широкое распространение в современных программных системах электрически перепрограммируемой памяти типа Flash и методов внутрисистемного программирования (In System Programmability, ISP) подробно рассматриваемых в разд. 2.6.
Глава 2. Основы технологии проектирования ИСПС
189
Рис. 2.17. Современная модификация метода EPROM -прототипирования
В этом методе объединение отлаживаемой системы с отладочным ПК через интерфейсный блок позволяет многократно производить вышеописанную отладочную процедуру без необходимости вынимать из отлаживаемой системы программируемый элемент (ПЗУ или МК). Вариант интерфейсного блока определяется протоколом, который поддерживается программируемым элементом. Еще совсем недавно практически отсутствовали средства внутрисхемного программирования и соответствующие методики. Это привело к распространению промежуточного варианта реализации, носящего название эмуляция ПЗУ. В основе метода (рис. 2.18) лежит использование специального оборудования — эмулятора ПЗУ. Базой эмулятора является БИС ОЗУ, содержимое которого загружается из отладочного ПК. В режиме эмуляции, когда разъемный элемент эмулятора вставляется в цоколь схемы ПЗУ (расположенный на отлаживаемой плате), ОЗУ эмулятора выполняет функции удаленного на момент отладки ПЗУ. В зависимости от сложности используемого эмулятора, входящее в его состав дополнительное оборудование позволяет выполнять ряд сервисных функций. В состав отладочных действий может входить, например, сохранение и передача в отладочный компьютер трассы исполняемых команд (их последовательность). Эмулятор может фиксировать значения данных, появляющихся на шинах адреса, и данных отлаживаемой системы, а также формировать сигналы прерывания для отлаживаемой системы при выполнении условий, задаваемых разработчиком из инструментального ПК. Реакция на прерывания при этом определяется содержимым обрабатывающих подпрограмм, временно подставляемых эмулятором. В современных условиях диапазон отладочных функций может быть существенно расширен, а их содержание усложнено, если в качестве элемента, управляющего работой эмулятора, используется ПЛИС, конфигурация которой определяется отладочным ПК и может оперативно им модифицироваться. Недостатком метода является необходимость выполнения целого ряда
190
Проектирование систем на микросхемах программируемой логики
условий, включающих требование доступности памяти программ, допустимость блокировки штатной памяти программ и возможность подключения эмулятора. Перспективным направлением, опирающимся на специфику современных ПЛИС, является встраивание элементов эмулятора ПЗУ в БИС ПЛ, реализующую функции набора интерфейсных схем микропроцессорной системы. Для отладочных целей в качестве интерфейсной схемы может быть выбрана БИС с логическими ресурсами, превышающими последующую серийную реализацию.
Цоколь для EPROM/OTP/EEPROM Отлаживаемая система
Прерывание Рис. 2.18. Метод эмуляции ПЗУ
Недостатки, свойственные предыдущим методам, заставили разработчиков в ряде ситуаций ориентироваться на методы встроенного монитора. Идея метода иллюстрируется рис. 2.19. Хотя внешне соединение отладочного ПК и отлаживаемой системы похоже на соединение, характерное для метода внутрисхемного программирования, принципы и процедура отладки другие. Во -первых, Host -система соединяется не со схемой ПЗУ, а с портом процессора, как правило, при этом используется стандартное соединение по последовательному каналу (типа RS232). Во -вторых, основные отладочные действия выполняются специальной программой -монитором, включенной в состав программного обеспечения отлаживаемой системы. Ресурсы отладочного компьютера используются для отображения контролируемых параметров отлаживаемой программы, для корректировки (при необходимости) этих параметров и для управления запуском/остановкой отлаживаемой программы.
Глава 2. Основы технологии проектирования ИСПС
191
RS232
Рис. 2.19. Метод встроенного монитора
Главным требованием к отлаживаемой системе (помимо, естественно, наличия свободного последовательного порта) является возможность организации прерывания работы отлаживаемого программного обеспечения в задаваемых разработчиком местах. Прерывание происходит в тот момент, когда исполнение программы достигает одной из задаваемых из Host -системы точек останова (break point). Удобнее всего для организации точек останова использовать команды программных прерываний, вставляемые вместо исполняемой команды. Это относительно легко реализуется при отладке программ, помещенных в оперативную память. Программное прерывание передает управление монитору. Набор выполняемых монитором действий определяется далее разработчиком и зависит от возникшей ситуации. Метод удобен для тех систем, у которых не предусмотрены или отсутствуют собственные средства ввода/вывода, которые могли бы служить для получения отладочной информации. Долгое время этот метод оставался практически единственным дешевым и допустимым методом для отладки микроконтроллерных систем, у которых все исполнение основной программы происходит без обращения к каким -либо внешним ресурсам (соответственно, нет, например, внешнего ПЗУ команд, и поэтому невозможно использовать эмуляторы ПЗУ и т. д.). Современный подход к реализации встроенных мониторов базируется на встраивании в систему отладочных агентов. Отладочные агенты представляют собой управляемые программные вставки, которые в определенных условиях могут перехватывать работу основной программы и передавать управление отладочным фрагментам. Основной проблемой является влияние отладочных фрагментов на штатную работу системы. Наличие вставок позволяет контролировать работу системы, однако может приводить к некоторой потере производительности. Удаление/вставление отладочных агентов может изменять временные соотношения для отлаживаемых ситуаций. Приемлемым считается постоянное присутствие отладочных агентов при потере произво -
192
Проектирование систем на микросхемах программируемой логики
дительности, не превышающей диапазон значений от 1 до 5%. Наличие отладочных агентов оказывается единственным источником информации при полных отказах системы.
Внутрисхемный эмулятор
Эмуляторная головка
Рис. 2.20. Методы внутрисхемной эмуляции
Сложность отладки программ управляющих систем в реальном времени привели к широкому распространению методов внутрисхемной эмуляции (ICE, In Circuit Emulator). Реализация метода показана на рис. 2.20. Метод опирается на тесное объединение ресурсов отлаживаемой и отлаживающей систем. Объединение осуществляется за счет помещения в цоколь МП или МК специальной эмуляторной головки, содержащей схему, эмулирующую МП/МК отлаживаемой системы, и соединенной далее с собственно эмулятором. Метод состоит в управлении со стороны отладочного МП направлением подключения шин отлаживаемого МП. Внутрисхемная эмуляция может выполняться с различной полнотой эмулируемых ресурсов. Содержимое эмулятора позволяет оперативно модифицировать состав элементов ведущей системы, берущих на себя работу (эмулирующих работу) отлаживаемой системы. В результате выполнение отлаживаемого программного фрагмента может осуществляться, опираясь на любую задаваемую разработчиком комбинацию ресурсов отлаживаемой и отлаживающей систем. В предельном случае содержимое эмулятора заменяет даже процессор отлаживаемой сие -
Глава 2. Основы технологии проектирования ИСПС
193
темы, для этого эмулятор должен содержать симулятор системы команд МП отлаживаемой системы. Наиболее сложно решается проблема использования методов ICE для однокристальных микроконтроллеров, поскольку большинство деталей поведения МК остается внутри кристалла и недоступно для наблюдения. Поэтому в некоторых случаях фирмы выпускали помимо базового варианта МК специальную версию (для общецелевого использования слишком дорогую) эмуляционного кристалла. Основным отличием кристалла (кроме стоимости) является наличие дополнительных контактов, на которые выводятся сигналы внутренних шин (адреса, данных и управления). Высокая стоимость традиционных приборов внутрисхемной эмуляции заставляет проектировщиков искать более дешевые решения. Интересным и перспективным представляется использование в качестве основы внутрисхемного эмулятора ИСПС. Способность ПЛИС изменять структуру создает возможность менять тип эмулируемого МП за минуты, легко добавлять новые типы МП, конфигурировать саму систему эмулятора. Наиболее перспективным методом отладки встроенных микропроцессорных устройств (в общем случае не только их) являются методы встроенной внутрикристальной отладки. Эти методы наибольшее распространение получили в современных 32 -разрядных МП. Структура кристалла, содержащего встроенные средства отладки аппаратно -программных ресурсов, приведена на рис. 2.21. Но даже у 8 -разрядных процессоров известны варианты встраивания отладочных средств в кристалл. Примером может служить продукция фирмы Cygnal Integrated Products (www.cygnal.com), в которой комбинация свойства внутрисистемной программируемоести(ISP), внутренней Flash памяти и встроенных в кристалл специальных отладочных средств существенно облегчает процедуру отладки. Другим примером того же подхода является продукция фирмы Atmel (www.atmel.com). Выпускаемые этой фирмой AVR -процессоры имеют 8 -битовую архитектуру и поддерживают JTAG интерфейс. В состав кристалла включены отладочные средства, которые существенно упрощают процесс отладки. Более простыми вариантами являются методы соединения отладочных Host ПК с отлаживаемой системой через параллельные или последовательные порты. В качестве приемника в целевой системе могут служить специальные ИС или выделенные для этих целей контакты МП. В качестве стандарта подключения используется либо стандарт JTAG, либо разработанный фирмой Motorola интерфейс со встроенным в МП отладочным модулем (в терминологии фирмы режим отладки на его базе носит название BDM, Background Debug Mode). Основными элементами внутрикристальной отладки являются интерфейсный блок, блок формирования точек останова и средства доступа к отладочной (процессорной) информации из интерфейсного блока. Данные по эффективности различных отладочных действий для рассмотренных методов организации отладки сведены в табл. 2.4. Сравниваемыми
194
Проектирование систем на микросхемах программируемой логики
показателями являются возможность быстрого и оперативного изменения объектного кода отлаживаемой программы, доступность и удобство наблюдения за состоянием основных программных и аппаратных объектов, эффективность управления (легкость корректировок) вышеуказанных объектов, возможность определения аналоговых эффектов на дискретных сигналах и, наконец, цена отладочного средства. Отлаживаемый кристалл
Рис. 2.21. Методы внутрикристальной отладки Таблица 2.4. Данные по эффективности различных типов отладки Изменение кода
Наблюдаемость
Управляемость
Аналоговые эффекты
Цена
EPROM -прото типирование
Нет
Низкая
Отсутствует
Низкая
Низкая
Монитор в системе
Нет
Средняя
Средняя
Низкая
Низкая
Внутрисхемная эмуляция
Есть
Очень высокая
Полная
Высокая
Высокая
Внутрикристальная отладка
Есть
Высокая
Полная
Низкая
Низкая
Глава 2. Основы технологии проектирования ИСПС
195
Для организации и проведения более тонких экспериментов незаменимыми оказываются такие средства, как запоминающие осциллографы, цифровые осциллографы, логические анализаторы или специализированные тестирующие системы. Основным недостатком этого класса оборудования является большая стоимость при эпизодичности использования. Современные приборы с перестраиваемой структурой создают альтернативное направление развития отладочных средств. Например, программа и небольшая плата расширения превращает ПК в многоканальный цифровой или даже аналоговый запоминающий осциллограф. Связка — малоресурсная отлаживаемая система (содержащая средства внутрикристальной отладки) и мощная компьютеризованная отладочная система — обеспечивает эффективность процедуры отладки, почти не уступающую эффективности отладки при помощи внутрисхемных эмуляторов. Широкая номенклатура выпускаемых прото типных плат и их разнообразие — еще один существенный фактор ускорения процесса проектирования. Платы выпускаются практически одновременно с первыми образцами кристаллов.
2.2.3. Проектирование систем, связанных с обработкой аналоговых сигналов Проектирование фрагментов систем, связанных с обработкой аналоговых сигналов, было и остается одной из важнейших и сложнейших проблем. Окружающий нас мир является в значительной мере аналоговым (непрерывным), и не удивительно, что для 10% проектов необходима обработка аналоговой информации. По некоторым оценкам к 2006 году количество таких проектов достигнет 30%. Работы этого направления требуют решения как проблем чисто аналоговых (масштабирование, фильтрация и т. д.), так и проблем стыковки проектов с аналоговым и дискретным представлением информации, т. е. проблем аналого -цифрового и цифроаналогового преобразований. Так же, как и для других направлений проектирования, базовыми этапами являются этапы ввода информации, компиляции и моделирования. Проектирование по этой ветви характеризуется следующими отличительными особенностями. За последние годы существенно изменилась элементная база. Успехи микроэлектронной промышленности привели к тому, что набор широкой номенклатуры ИС переместился в область более высокой точности и более быстродействующих приборов. Современные АЦП и ЦАП при интегральной реализации достаточно уверенно дают 12—14 -разрядную точность при времени преобразования в единицы и доли микросекунд. Точность и быстродействие многих аналоговых датчиков и исполнительных механизмов не требует больших значений указанных параметров. Поскольку выбор элементной базы предопределяет не только эксплуатационные характеристики проекта, но и в значительной мере его конструктивную реализацию, то су -
196
Проектирование систем на микросхемах программируемой логики
щественно возросли и требования к выполнению конструкторского этапа проектирования.
Проектирование аналоговых фрагментов В основе современных САПР (уже более 30 лет) для моделирования аналоговых фрагментов остается пакет Spice в различных модификациях. Большинство фирм -разработчиков систем моделирования сохраняют совместимость своих разработок со стандартами пакета Spice. Изменения касаются адекватности и точности отражения в моделях свойств реальных элементов. Объемы библиотек постоянно увеличиваются, а их содержимое модернизируется. Возрастает качество работы алгоритмов моделирования (сходимость результатов и их адекватность), уменьшается время моделирования. Как следствие, уменьшаются ограничения на сложность моделируемых систем. Конечно, улучшаются интерфейсные функции пакетов. На окончательные характеристики аналоговых систем конструктивная реализация оказывает большое существенное влияние, чем при реализации цифровых систем. Возможность получить неработоспособную плату (успешно прошедшую испытания в прототипной реализации) приводит к необходимости моделирования проектов с учетом эффектов, вносимых конкретной реализацией. При моделировании учитываются паразитные сопротивления, паразитные емкости монтажа. Более мощные САПР учитывают распределенный характер этих паразитных элементов. Проблемой остается конструктивная реализация аналоговых фрагментов. Имеется весьма существенная специфика проектирования и изготовления печатных плат. При конструктивной реализации требуется сохранить точность и быстродействие и к минимуму свести влияние паразитных факторов (электромагнитные наводки, паразитное падение напряжения, перекрестные помехи и т. д.). Маршруты проектирования аналоговых фрагментов систем на современных САПР при ориентации на дискретные компоненты или современные схемы ПАИС показаны на рис. 2.22. Для проектирования аналоговых фрагментов систем на базе дискретных аналоговых компонентов могут использоваться САПР различных фирм. Наибольший интерес среди этой продукции представляют САПР, позволяющие совместить выполнение конструкторской разработки печатной платы с моделированием проекта. Среди отечественных разработчиков наибольшее распространение получили разработки фирмы MicroSim Corporation (с 1998 г. входит в состав фирмы OrCAD Corporation). Привлекательность последних версий ее САПР — DesignLab обусловлена двумя основными факторами. Во -первых, система позволяет моделировать аналоговые фрагменты, разводить печатные платы и моделировать поведение фрагмента с учетом паразитных параметров разводки. Более того, САПР позволяет выполнять моде -
197
Глава 2. Основы технологии проектирования ИСПС
лирование для цифровых (включая простейшие схемы ПЛИС) и смешанных аналого -цифровых устройств. Дополнительно может использоваться программа Filter Designer, осуществляющая синтез пассивных и активных аналоговых фильтров и фильтров на переключаемых конденсаторах. Несомненным достоинством САПР является наличие библиотеки, включающей 40 тыс. графических обозначений символов и около 10 тыс. математических моделей компонентов. Во -вторых, работа с DesignLab хорошо изложена в отечественной литературе [22]. Традиционная процедура для стандартных ИС
Современная процедура для ПАИС
Рис. 2 . 2 2 . Маршруты проектирования для аналоговых или аналого -цифровых фрагментов систем
При реализации аналоговой части проекта в виде отдельной БИС ПАЙС существенно снижаются требования к профессиональным качествам проектировщика, поскольку паразитные эффекты размещения и разводки компо -
198
Проектирование систем на микросхемах программируемой логики
нентов фрагмента учтены разработчиками БИС ПАИС. Для проектирования таких ИС фирмы -разработчики БИС ПАИС выпускают специальные САПР. Для проектирования на базе ПАИС ispPAC фирма Lattice Semiconductor выпустила САПР под названием РАС Designer. Функционирование аналоговых программируемых блоков микросхемы CY8C25/26, выпускаемых фирмой Cypress Semiconductor, задается при конфигурировании кристалла. Фирма Cypress Semiconductor обеспечивает поддержку проектирования своей продукции на базе различных версий САПР Warp. Наиболее мощная версия пакета Warp Enterprise (2995 долларов) поддерживает все стадии проектного потока, включая сервисные функции типа конвертеров графического ввода в HDL -описания, моделирование поведения на уровне исходного описания, интерактивной отладки и автоматической генерации создания тестовых последовательностей (Test -Bench). Еще более интересным представляется подход фирмы ZETEX к проектированию и конвертации аналоговых средств обработки. Выпускаемое фирмой ZETEX семейство ПАИС TRAC (Totally Re -configurable Analog Circuit) относится к семейству кристаллов с настраиваемой структурой отдельных аналоговых ячеек. Загрузка ОЗУ конфигурации ПАИС TRAC выполняется за счет подключения схем TRAC к стандартным ПЗУ через специальную схему TRAC -S2. Образование требуемой аналоговой схемы производится путем внешней коммутации, обычно выполняемой на печатной плате. Подобная организация соединения ячеек между собой снимает проблему разработки фирмой специального САПР, решающего вопросы размещения ячеек и трассировки межсоединений. Чтобы уменьшить влияние межсоединений ячеек кристалла TRAC на окончательные характеристики системы, фирма ZETEX организовала выпуск аналоговых схем ZXF36Lxx, относящихся к классу Computational Application Specific Integrated Circuit (CASIC). Схема ZXF36Lxx состоит из аналоговых ячеек, аналогичных по структуре ячейкам кристаллов семейства ZXF36Lxx. Функции, выполняемые ячейками, и конфигурация межсоединений кристалла определяются топологией двух слоев металлизации. Маршрут проектирования, используемый фирмой ZETEX при конвертации проектов из представления в форме ПАИС в форму полузаказной схемы, приведен на рис. 2.23. Маршрут проектирования опирается на комбинирование TRAC -технологии с технологией изготовления ASIC -продукции. Проектирование по технологии предполагает предварительное макетирование проекта на схемах TRAC семейства. Сохранение в полузаказной схеме структуры ячеек обеспечивает при конвертации совпадение характеристик прототипа и конечного продукта, а также делает конвертационный процесс практически свободным от угрозы нереализуемости. Вместе с тем, как видно из рисунка, конвертационный процесс фирмы включает не только имитационное моделирование, но и предполагает тестирование изготовленной продукции на двух уровнях.
Глава 2. Основы технологии проектирования ИСПС
К изготовлению серийной продукции Рис. 2 . 2 3 . Проектный поток конвертации проектов фирмы ZETEX
199
200
Проектирование систем на микросхемах программируемой логики
Проектирование фрагментов со смешанным представлением сигналов Наибольшие изменения в последнее время (по мнению многих исследователей — за последние два года) произошли среди средств проектирования систем со смешанным представлением сигналов, причем, основные изменения — в сфере моделирования и в области создания и применения средств тестирования. Большое количество ссылок можно найти в обзорной статье [47]. Изменения в методике проектирования прежде всего касаются тщательной верификации проекта на схемотехническом уровне. Одновременное моделирование цифровых и аналоговых сигналов уже значительно сложнее, чем чисто цифровое или чисто аналоговое моделирование. К проблемам моделирования добавляется проблема использования языков описания систем такой смешанной природы (хотя здесь имеются значительные успехи — это рассмотрим чуть ниже). В части эффективности средства проектирования и моделирования систем со смешанными сигналами значительно уступают аналогичным средствам для цифровых систем. Но современное состояние характеризуется значительной динамикой, и можно ожидать существенного прогресса как в области создания новых типов SOPC, так и в области разработки средств проектирования. Информация о продукции фирм, связанных с поддержкой различных этапов проектирования аналоговых и аналогово -цифровых систем, может быть найдена в обзорных статьях интернет -журналов. Анализ этих статей демонстрирует неослабевающий интерес различных фирм к данному направлению. Сложность решения проблем для систем со смешанным представлением сигналов находит свое отражение, прежде всего, в уровне цен на поставляемые САПР. Стоимость САПР значительно превышает стоимость САПР аналогичной целевой направленности для цифровых систем. Приведенные данные показывают, что усилия разработчиков направлены на автоматизацию различных этапов проектирования. Поддержка проектировщиков начинается с момента анализа путей реализации проекта. Уже на этом этапе фирмы предлагают свои готовые решения, поставляемые в форме моделей стандартных решений или генераторов моделей. Основные усилия последнего времени направлены на повышение эффективности совместного моделирования цифровых и аналоговых схем. Методы событийного моделирования (подробно рассмотренные в разд. "Моделирование и реальное время" гл. 3), весьма эффективные для моделирования цифровых схем, оказываются неприемлемыми для аналоговых и аналого цифровых, ибо в последних изменениях сигналов (события) происходят непрерывно. Системы моделирования устройств со смешанным представлением информации часто строят, используя объединение событийного подхода для представления цифровой подсхемы и численного интегрирования диф -
Глава 2. Основы технологии проектирования ИСПС
201
ференциальных уравнений, являющегося основой пакета Spice. Необходимость такого подхода становится особенно важной для проектов, в которых в одном кристалле объединяются сотни тысяч вентилей программируемой логики и аналоговые цепи. Типовыми проблемами для таких проектов являются, например, задачи проектирования для АЦП высокого разрешения или ускоренного моделирования работы фазово -управляемых схем (в английской терминологии Phase -Locked Loop, PLL). Даже беглый анализ данных, приведенных в обзорных статьях интернет журнала EDN (www.ednmag.com), показывает, что одной из ведущих фирм в области создания средств проектирования систем со смешанным представлением сигналов является фирма Antrim Design System — разработчик САПР Antrim -A/MS. Этот пакет (рис. 2.24) помимо традиционных для систем Менеджер времени Программы -обработчики описаний
Рис. 2.24. Состав САПР Antrim -A/Ms фирмы Antrim Design System
202
Проектирование систем на микросхемах программируемой логики
моделирования блоков содержит богатый набор программ -обработчиков для различных способов описания аналоговых, цифровых и смешанных блоков. В состав этого набора входят: релаксационные событийно управляемые средства моделирования для КМОП цифровых цепей, описанных на вентильном уровне; средства интерпретации Verilog -описаний для цифровых блоков; программы -обработчики описаний межсоединений и шин питания; средства моделирования сильносвязанных аналоговых цепей, реализующие решение систем дифференциальных уравнений по методу Ньютона—Ральф сона, и средства моделирования аналоговых блоков, описываемых поведенческими моделями на языке Verilog -A. Смешанные способы описания и многоуровневое моделирование поддерживаются не только САПР Antrim -A/MS, но и разработками других фирм. Выгоды многоуровневого подхода состоят в возможности моделировать одну часть схемы на уровне физических моделей (например, операционные усилители), а другую на событийном (например, схемы логического управления). Очень полезным свойством систем рассматриваемого класса, хотя присущим, к сожалению, не всем, является совместимость процедур моделирования и автоматического размещения и разводки. В отличие от нисходящего проектирования цифровых систем при их реализации в форме микросхемы, когда процесс проектирования от архитектурного определения до физического расположения на кристалле легко поддается автоматизации и опирается на ранее разработанные САПР, что существенно ускоряет процесс проектирования, аналоговое проектирование не является столь простым и легким. Иллюстрацией этого положения является приведенный на рис. 2.25 типичный маршрут проектирования аналогового блока, встраиваемого в кристалл. Из рисунка видно, что проектирование без ручной доводки проекта обходится в редких случаях. Наибольший интерес представляют попытки разработки средств, автоматизирующих наиболее ответственный этап проектирования — этап синтеза устройств, исходя из описания их функционирования. Различие алгоритмов, необходимых для синтеза аналого -цифрового преобразователя или операционного усилителя, делает задачу разработки САПР, поддерживающих синтез систем со смешанным представлением информации, весьма проблематичной. Вместе с тем, уже упоминавшаяся выше фирма Antrim анонсировала выпуск САПР, поддерживающей синтез аналоговых приборов. Не меньше проблем возникает и при попытках автоматизировать этапы проектирования, отвечающие за создание пригодной к тестированию конечной продукции, а также за тесты и аппаратуру для такого тестирования, однако на этом направлении полученных положительных результатов несколько больше. Интерес представляют разработки фирм ОрМахх и LogicVision в части разработки САПР, генерирующих тесты для проверки аналоговых и
Глава 2. Основы технологии проектирования ИСПС
203
гибридных систем. Фирма SZ Testsysteme традиционно поддерживает выпуск аппаратуры, предназначенной для тестирования аналоговых и смешанных систем различного класса.
Рис. 2.25. Маршрут проектирования аналогового блока
Существенное значение для развития средств автоматизации различных этапов проектирования имеют работы, направленные на создание базы такой автоматизации — разработки языков, предназначенных для описания смешанного представления сигналов. Широкое распространение получает использование для описания систем со смешанным представлением сигналов расширенных вариантов языка Verilog и VHDL ("чисто цифровые" версии этих языков рассмотрены далее). После почти десятилетней подготовки в 1999 году были приняты предложения по стандартам Verilog -AMS и VHDL -AMS. Принятые расширения этих языков позволят проектировщикам использовать для своих аналоговых блоков и
204
Проектирование систем на микросхемах программируемой логики
блоков со смешанным представлением информации поведенческие модели, которые оказываются совместимыми с поведенческими моделями цифровых блоков, описываемых стандартными средствами Verilog и VHDL. Прежде чем стать стандартами, новые варианты языков должны были преодолеть ограничения, обусловленные правами собственности ряда фирм, в том числе решениями, уже введенными в такие пакеты, как MAST фирмы Analogy, SpectreHDL фирмы Cadence, HDL -A фирмы Mentor Graphics, Diablo фирмы VeriBest. Подобно их цифровым прототипам аналоговые и смешанные поведенческие модели обеспечивают большую скорость моделирования, чем модели приборного или вентильного уровня. Дополнительной выгодой поведенческих моделей является свойственная им относительная секретность, поскольку они не показывают, как будет реализован описываемый ими блок. После долгих дебатов в 1999 году был принят стандарт IEEE Standard 1076.1 -1999 языка VHDL -AMS, являющийся расширением известного стандарта IEEE 1076 языка VHDL. Язык позволяет описывать сложные проекты, используя комбинацию дифференциальных выражений, алгебраических ограничений и логических условий. Смешение аналоговых и событийно управляемых элементов в одном языке оказывается более эффективным, чем использование макромоделей в Spice. Поскольку VHDL -AMS позволяет описывать поведение и неэлекгрических элементов, то он может использоваться для систем, смешивающих электрические и неэлектрические компоненты, например, электромеханические и жидкостные электрические системы. Многие компании -разработчики САПР, в том числе ведущие фирмы Analogy и Mentor, объявили о своей поддержке нового стандарта VHDL AMS и после его утверждения готовы выпустить новые САПР, основанные на этом стандарте. Аналогичная ситуация складывается и с языком Verilog. Его расширенный вариант стандарта — Verilog -AMS standard 1.3, выпущенный Open Verilog International organization (www.ovi.org), также был принят в 1999 году. Подобно VHDL -AMS язык Verilog -AMS поддерживает включение в описание системы неэлектрических компонентов (механических, оптических и т. д.). Большинство фирм разработчиков САПР для смешанных систем, включая Analogy, Antrim, Apteq, Cadence, Mentor, Transcendent, и Innoveda, объявили о включении в будущую выпускаемую продукцию средств поддержки языков Verilog -AMS, VHDL -AMS или обоих.
Проектирование аналоговых и аналого -цифровых SOPC Существующая в настоящее время в микроэлектронике тенденция интеграции в одном кристалле всех элементов современных систем, находящая свое воплощение в форме выпуска "систем на кристалле" (SOPC), окажется не
Глава 2. Основы технологии проектирования ИСПС
205
полной, если не будет включать в свой состав аналоговых и/или аналого цифровых блоков. Включение ПАИС в SOPC дополнительно дает следующие выгоды, характерные для всех ИСПС — возможность модернизаций и корректировок в весьма значительных пределах, определенная секретность разработок и их защита от несанкционированного копирования. Дополнительная особенность ПАИС состоит в том, что модернизации и корректировки фрагмента допустимы не только в форме изменения взаимного соединения элементов (т. е. структуры фрагмента), но и форме изменения номиналов используемых элементов. Таким образом может достигаться весьма существенное изменение как характеристик, так и поведения фрагмента. Соединение в одной системе цифровых, аналоговых и цифроаналоговых фрагментов имеет свою историю развития. Первые успешные попытки объединения в одном кристалле цифровых и цифроаналоговых фрагментов осуществлялись фирмой Intel еще в середине 80 -х годов, дальнейшее развитие это направление получило у фирмы Analog Device. Сложности реализации требуемой совмещенной технологии не обеспечивают желаемых темпов развития этого направления развития микроэлектроники. Очень немногие фирмы сейчас могут поддерживать (на условиях экономической рентабельности) выпуск устройств со смешанной технологией. Наибольших успехов к настоящему моменту достигла фирма Cypress MicroSystems, Inc. (филиал Cypress Semiconductor). Производимые фирмой схемы семейства CY8C25***/26*** представляют собой БИС, в основе которых микропроцессорная часть (8 -разрядный процессор М8С) и программируемая пользователем часть (набор реконфигурируемых аналоговых и цифровых блоков). Фирма выпустила САПР — PSoC Designer IDE, являющуюся, по сути, интегрированным пакетом средств разработки встраиваемых SOPC -систем. Пакет обеспечивает доступ ко всем традиционным средствам отладки микропроцессорных систем, включая полный отладчик, поддерживающий внутрисхемную эмуляцию ICE. На предварительном этапе проектирования и для моделирования проектов, содержащих смешанное аналого -цифровое представление сигналов, фирма Cypress предлагает пользоваться ПО фирмы Antirim Design System (Antirim -ACV, Antirim -MSS). Между этими фирмами достигнуты соответствующие лицензионные соглашения, позволяющие надеяться на объединение усилий обеих фирм в направлении интеграции проектных средств в форме единого пакета. Системы автоматизированного проектирования аналоговых и аналого цифровых ИСПС еще находятся на начальном этапе своего становления. Следует ожидать возрастания объема и качества работ, выполняемых этими САПР.
206
Проектирование систем на микросхемах программируемой логики
2.3. Структура и организация САПР 2.3.1. Связь процедуры проектирования и САПР БИС программируемой логики Как уже отмечалось, разработка современных вычислительных систем, содержащих как микропроцессорные решения, так и БИС с программируемой структурой, немыслима без широкого привлечения САПР. Все методики проектирования таких вычислительных систем ориентированы на использование САПР. Правильный выбор САПР предопределяет успешность всей процедуры проектирования и является важнейшим условием эффективного проектирования. При хорошем выборе может быть достигнуто существенное ускорение выпуска продукции, т. е. сокращение времени от спецификации проекта до выпуска первых продажных образцов (Time -to -Market), во многих случаях удается сократить и время, необходимое для выпуска серийной продукции. Методы и средства проектирования тесно связаны с выбором САПР и, наоборот, выбор САПР определяет допустимые и целесообразные методы и средства проектирования, так что эти вопросы нельзя рассматривать в отрыве друг от друга. Взаимосвязь между САПР и выбранным типом БИС ПЛ значительно более тесная, чем между средствами проектирования МП систем и используемым типом МП. Выбор элементной базы для проекта в значительной мере предопределяет требуемую или требуемые для реализации проекта САПР. В общем случае, при выборе САПР приходится учитывать целый ряд соображений, а именно: - распространенность САПР; - цену САПР, ее сопровождения и модификаций; - поддержку выбранной элементной базы; - широту охвата разнообразных этапов проектирования и эффективность их выполнения; - наличие широкой библиотечной поддержки стандартных решений; - возможность и простоту стыковки с другими САПР; - удобство работы с САПР и ее дружественность; - легкость изучения; - возможности корпоративной работы. -чевидно, трудно найти САПР, которая удовлетворяла бы сразу всем перечисленным условиям, как ввиду их взаимной противоречивости, так и исходной неопределенности варианта реализации конечного продукта.
Глава 2. Основы технологии проектирования ИСПС
207
2.3.2. Связь проектной проблемы с выбором САПР Как было показано в предыдущих разделах (рис. 2.7 и 2.12), один и тот же проект может быть реализован с ориентацией на различную элементную базу. Из рисунков видно, например, что реализация одного и того же проекта возможна как в виде раздельных проектов МП и ПЛИС, так и в форме проекта, реализуемого в БИС класса SOPC. Аналогичная ситуация складывается с выбором САПР. На первоначальных шагах проектирования можно пользоваться любым вариантом. Программное обеспечение, например, разрабатывать на ранее приобретенных версиях компиляторов, а аппаратуру проектировать при помощи оценочной версии САПР. Однако на заключительных этапах проектирования, как правило, все равно придется вернуться к версии САПР той фирмы, на элементной базе которой решено реализовать проект. Поэтому на первом же шаге целесообразно определиться — пользоваться ли САПР фирмы -производителя выбранного класса программируемой БИС ПЛ или SOPC (Xilinx, Altera, Atmel, Actel и др.) или воспользоваться услугами системы проектирования, созданной одной из ведущих фирм -производителей САПР, таких как Synopsys, Cadence, Mentor Graphics, Exemplar Logic, Viewlogic, Symplicity и др. Чтобы отличать САПР фирм -производителей БИС ПЛ (Vendors) от САПР фирм, поддерживающих проектирование ПЛИС различных производителей, для последних обычно используется термин сторонние САПР (САПР независимых фирм). В английской терминологии для обозначения таких фирм принято использовать термин Third Party EDA Tools. Возможность совместного использования САПР различных фирм базируется на том, что эти САПР состоят из отдельных частей, и работа на них носит явно выраженный этапный характер (ввод, компиляция, моделирование, программирование). Тот факт, что проектные средства состоят из отдельных частей позволяет одной САПР вклиниваться в проектный поток другой. Производители схем ПЛИС, а тем более БИС SOPC, чаще всего монополизируют возможность и право монтирования проекта в конкретный тип БИС и поэтому при применении САПР сторонних фирм, как минимум, на заключительных этапах приходится пользоваться услугами САПР производителей схем ПЛИС. Ноу -хау (know -how) этих фирм обычно является взаимное соответствие между структурой соединений внутри кристалла и загрузочным файлом конфигурации. Предельным проявлением такой стратегии является, например, САПР фирмы Agere Systems — ORCA Foundry 2000. САПР ориентируется на использование стандартных проектных средств сторонних фирм для решения задач большинства этапов проектирования. Разработчик использует САПР таких фирм для ввода, синтеза и моделирования проектов. Наличие в составе ORCA Foundry определенных интерфейсных средств позволяет загрузить в
208
Проектирование систем на микросхемах программируемой логики
него созданную проектную информацию. После этого основной задачей собственно САПР является разработка топологии межсоединений элементов структуры FPGA из списка цепей (netlist), ориентированного на конфигурирование FPGA. САПР размещает блоки на кристалле, осуществляет их настройку и решает задачу их взаимного соединения, используя встроенные средства (timing -driven tools). Встроенный в пакет анализатор временных задержек элементов используемой БИС (static timing analysis tool) обеспечивает определение скорости работы БИС по отдельным соединениям и возвращает аннотированный список цепей БИС, который позволяет организовать моделирование и временной анализ. Выходные файлы ORCA Foundry являются совместимыми со многими средствами моделирования сторонних фирм. Это позволяет исследовать и анализировать окончательные временные характеристики проекта. Генератор программной информации (bit stream generator) создает выходной файл, интерпретирующий структуру БИС в битовый информационный поток, который может использоваться для программирования либо БИС ПЛ, либо специальных конфигурационных БИС. Если проектировщик решился на совместную работу с несколькими САПР (что авторам представляется в современных условиях более предпочтительным), то их выбор все равно остается достаточно многовариантной проблемой. Ни одна из САПР не является предпочтительной для любых пользовательских приложений. Стратегия взаимодействия фирм, производящих БИС ПЛ, и фирм, специализирующихся на разработке САПР, модифицировалась во времени. До начала 90 -х годов фирмы ориентировались на узконаправленную деятельность. Каждая фирма имела свою узкую специфическую область, в которой и концентрировались все ее усилия, чтобы обеспечить свое лидирующее положение в выбранной нише. В 90 -х годах началось более тесное взаимодействие фирм между собой. Практически все САПР стали предусматривать возможности взаимного обмена (Import/Export Design) проектной информацией на любом этапе проектирования. Технической основой этого информационного обмена явилось введение и поддержка практически всеми фирмами стандартных языков обмена. Промышленным стандартом стал язык EDIF с версиями 2.0.0 и 3.0.0. В большинстве САПР, однако, предусмотрено взаимодействие на основе различных языков описания аппаратуры (в том числе VHDL, Verilog и т. д.), а не на основе какого -то одного языка. С середины 90 -х годов начался этап совместных разработок в области САПР. В настоящее время эта тенденция сохраняется и заключается в кооперации усилий различных фирм при разработке САПР, при этом каждая фирма реализует тот этап проектирования и, соответственно, фрагмент САПР, в котором она является общепризнанным лидером. Техническая реализация такого объединения осуществляется как в форме единой САПР, так и в форме взаимосвязанных САПР. Важно, что при этом создается единый
Глава 2, Основы технологии проектирования ИСПС
209
информационный поток проектирования, и все этапы проектирования оказываются тесно взаимосвязанными. Способ объединения естественно влияет на окончательные характеристики САПР. Создание единой САПР задача более сложная, чем просто объединение нескольких САПР под одной управляющей оболочкой, но зато (помимо единообразия правил общения) облегчается информационный обмен между ними и, с точки зрения пользователя, значительно увеличивается объем сервисных услуг. Форма единой САПР создает более тесное общение различных САПР между собой. При этом, например, результаты моделирования работы какого -либо фрагмента схемы могут отображаться не только в диалоговом окне временного моделирования, но и в окне изображения электрической схемы, которая создавалась на этапе ввода информации о проекте. Задача создания программ -оболочек, интегрирующих совместную работу САПР различных фирм, в последнее время несколько упростилась, поскольку разработчики САПР теперь обычно включают в них интерфейсные возможности, предоставляемые идеологией языка Tel. В результате можно организовать совокупность взаимодействующих САПР, каждая из которых будет выступать как источник команд, так и как исполнитель (приемник) этих команд. Для этого САПР компонуется как пакет встроенных библиотек. Библиотека содержит синтаксический анализатор языка Tel и подпрограммы, интерпретирующие как действия команды языка с параметрами, предусмотренными в САПР. Команды языка Tel могут считываться из источников различной природы, таких как командная строка, параметры вызова из другой программы (САПР), меню выбора и т. д. Соответственно, в САПР -приемнике определено выполнение команд. Примером кооперационной САПР является САПР Foundation для продукции фирмы Xilinx, которая представляет собой результат совместной разработки фирм Xilinx, Aldec и Synopsys. Другим способом кооперации является включение в состав САПР не полной, а усеченной и специализированной версии пакета. Примером может служить технология, используемая фирмой Model Technology. Модификации моделирующей программы этой фирмы под названием ModelSim используются как составная часть САПР других фирм. Несмотря на усеченность и специализацию, версии программы предоставляют широкий набор средств для функционального и временного моделирования проектов, написанных на языках VHDL и Verilog. Еще одной формой кооперации является включение фирмой -производителем ПЛИС в комплект поставляемого программного обеспечения оценочных версий пакетов сторонних фирм. Например, поставляемая фирмой Atmel САПР Integrated Development System (IDS) Ver. 7.2, включает оценочные версии LeonardoSpectrum (Exemplar Logic) и ModelSim (Model Technology).
210
Проектирование систем на микросхемах программируемой логики
Фирма Altera также позволяет (а последнее время даже рекомендует) для большей эффективности процедуры компиляции использовать на предварительных этапах САПР сторонних фирм. Проектировщик может выбрать для повышения эффективности компиляции проектов, написанных на языках VHDL или Verilog HDL, либо компилятор FPGA Express фирмы Synopsys, либо компилятор LeonardoSpectrum фирмы Mentor Graphics, а для эффективного моделирования ориентироваться на пакет ModelSim фирмы Model Technology (подразделение фирмы Mentor Graphics). Подобная кооперация усилий различных фирм является вполне обоснованной и ожидаемой, а тенденция обращения к специализированным САПР (на определенных этапах проектирования и в определенных ситуациях) будет, по -видимому, сохраняться и в дальнейшем. Еще более критичным оказывается вариант выбора САПР при желании обеспечить сквозное проектирование, когда в рамках одной САПР должны совмещаться средства различных ветвей или уровней проектирования (например, проектирования конфигурации ПЛИС и проектирования печатной платы, на которой БИС ПЛ будет находиться, или проектирование конфигурации ПЛИС и моделирование ее работы совместно с цифро -аналоговыми элементами). Типичным представителем САПР для смешанного или иерархического проектирования являются САПР фирм Innoveda (бывшая Viewlogic) или OrCAD. Рассмотрим в качестве типового примера состав, назначение и особенности реализации средств, входящих в САПР Workview Office фирмы Viewlogic. WorkView Office является законченной системой программного обеспечения (для PC -платформ, работающих под Windows 95, 98 или NT), ориентированной на автоматизацию различных уровней проектирования электронных схем. WorkView Office имеет программу -оболочку навигатор проектов (в других САПР программа может называться менеджером проектов), дающую возможность эффективной организации потока проектирования. Навигатор позволяет управлять как последовательностью выполнения частей пользовательского проекта, так и выбором используемых программ и стандартных библиотек. С информационной точки зрения САПР представляет собой классическую трехступенчатую систему (ввод, обработка и верификация), предназначенную для различных видов обрабатываемой информации на каждой стадии проектирования. Так, вводимая информация может описывать схему электронного блока, а с помощью навигатора проекта далее выбирается желаемый вид обработки: моделирование поведения этой схемы (цифровой, аналоговой или смешанной), компиляция в выбранный тип ПЛИС или разводка печатной платы. В зависимости от выбора на следующем этапе обработки информации проектировщик пользуется соответствующей компиляционной процедурой разводки печатной платы, компиляции в выбранный тип БИС ПЛ или подготовки к моделированию.
Глава 2. Основы технологии проектирования ИСПС
211
И, наконец, на третьем этапе осуществляется верификация готового проекта. Анализ поведения разработанной схемы на временной диаграмме, просмотр и анализ результатов топологической разработки печатной платы или анализ файла отчета о результатах размещения схемы в выбранный кристалл ПЛИС. Хотя интегрированные САПР безусловно удобны в работе, значительная стоимость их приобретения заставляет многих проектировщиков оставаться на позициях использования САПР, решающих локальную проблему сегодняшнего дня. При необходимости моделирования работы аналоговых или смешанных (аналого -цифровых) систем обычно используются современные версии профессиональной программы PSpice A/D, входящей в состав пакета DesignLab. Достоинством ее является наличие отечественной литературы, описывающей основные приемы работы в ней [22]. Распространение имеют и другие программы (например, Micro -Cap фирмы Spectrum Software [20], APLAC 7.0, Electronics Workbench 5.0 и т. д.). Программный комплекс корпорации MicroSim под названием DesignLab 8.0 используется для сквозного проектирования аналоговых, цифровых и смешанных аналого -цифровых устройств, синтеза устройств программируемой логики и аналоговых фильтров. Введение в комплекс интерфейса с другими САПР ПЛ позволил создать систему, дающую возможность разрабатывать схемы, включающие CPLD и FPGA различных фирм, моделировать на ПК их поведение совместно с другими аналоговыми и цифровыми компонентами, разрабатывать печатные платы и на заключительном этапе повторять моделирование с учетом паразитных эффектов, соответствующих свойствам реальных образцов выходной продукции. Таким образом, если предполагается совместное проектирование цифровых и аналоговых (в том числе цифроаналоговых и аналого -цифровых) фрагментов или комплексный (сквозной) подход к проектированию, то проектировщик стоит перед выбором САПР фирм MicroSim, Viewlogic или OrCAD [21]. На выбор САПР может оказывать желание разработчика иметь возможность использования результатов проектирования для реализации конечной продукции в других (кроме заданной базовой) технологических формах. Различные варианты технологической реализации, как правило, будут требовать и различных проектных процедур, и различных САПР. Так, если после этапа выпуска опытных образцов на базе БИС ПЛ предполагается дальнейшая реализация проекта в виде заказной БИС, то переход от ПЛ к такой форме будет более простым, если при разработке и той и другой формы проектировщик будет ориентироваться на САПР одной и той же фирмы. Такие возможности (с гарантией работоспособности проекта при другой технологии изготовления) предоставляют фирмы Synopsys, Cadence или Mentor Graphics (выбор конкретной фирмы может определяться как типом заказной БИС, так и просто симпатиями проектировщика). Большое количество фирм специализируется на выпуске полузаказных БИС. Основные варианты различаются. Возможна ситуация, когда исходный про -
212
Проектирование систем на микросхемах программируемой логики
ект имел прототип в форме БИС ПЛ и, соответственно, проект был описан средствами САПР выбранного типа ПЛИС, а для реализации проекта в форме полузаказной БИС потребуется использование САПР фирмы -производителя БМК. Если же проект сразу ориентировался на реализацию в форме БМК, то дополнительных преобразований может не потребоваться. Важнейшей характеристикой САПР БИС ПЛ является эффективность компиляции. Хотя рекомендуется всегда стараться при проектировании занимать под проект не более 90% ресурсов используемой БИС ПЛ (т. е. оставлять минимальные резервы для возможных модификаций), стоимость БИС следующего варианта логической мощности (а иногда и отсутствие БИС с требуемым быстродействием) заставляет разработчика пытаться "уложиться" в ресурсы БИС минимально допустимой логической мощности. Одним из возможных вариантов, способствующих достижению этой цели, может оказаться использование САПР фирм Exemplar Logic и Symplicity, обеспечивающих для проектов, написанных на языках VHDL или Verilog HDL, как правило, самые высокие показатели по эффективности компиляции (минимальность затрачиваемых логических ресурсов и быстродействие проекта). Существенное влияние выбор САПР оказывает и на эффективность верификации проектов. Этап отладки готового проекта традиционно (как было показано для типовых МП -систем) поддерживался средствами САПР, не является исключением и отладка проекта, загруженного в БИС ПЛ. Современная тенденция заключается во введении в перечень возможностей САПР функций, способствующих упрощению процедуры отладки готового проекта. Например, в САПР Quartus фирмы Altera предусматривается наличие всех трех составляющих такой процедуры: отладочных средств, помещаемых в отлаживаемую БИС/СБИС; информационно -транспортировочных средств, связывающих отлаживаемую БИС и ПК с САПР; программных средств в составе САПР, управляющих и отображающих результаты отладки. Средства так называемого SignalTap Logic Analysis позволяют регистрировать состояния не только на контактах ПЛ, но и во внутренних точках ПЛ в реальном масштабе времени, занося эту информацию в память ПЛ, передавать сохраненную информацию в компьютер с помощью интерфейса JTAG и отображать ее в редакторе временных диаграмм (Waveform Editor) для просмотра, анализа и отладки схемы в БИС. Еще более сложные средства отладки требуются для БИС, совмещающих в одном кристалле устройства различной природы. Например, реализованных по схеме МП+FPGA, как в приборах семейства Е5 типа SOPC ("системы на кристалле") фирмы Triscend. Здесь необходимо отметить возможность обеспечения одинаково эффективной отладки не только МП -ядра (на базе MCS -52) и аппаратного ядра системной логики (типа FPGA), но и их связи между собой за счет введения в архитектуру специального устройства отладки (Hardware Breakpoint Unit). Организация такой смешанной отладки опи -
Глава 2. Основы технологии проектирования ИСПС
213
рается на возможности, предоставляемые как архитектурой кристалла, так и собственно САПР Triscend FastChip. Не менее сложные средства отладки потребуются для отладки смешанных БИС, например, в анонсируемых фирмой Atmel приборах, реализующих в одном кристалле интерфейс PCI и логику FPGA. Внешне значительно проще выглядит отладка систем типа SOPC, относящихся к классу generic, (например, схем фирмы Altera), в которых объединяются МП -ядра того или иного типа (начиная от 8 -разрядных MCS 8052 и кончая 32 -разрядными RISC -архитектурами) и другие части проекта, реализованные в рамках единой технологии программируемой логики. Однако, поскольку реально верификация совместной работы МП, программы и элементов периферийных устройств осуществляется в рамках типового редактора временных диаграмм САПР MAX+PLUS II, формирование даже относительно короткой последовательности команд МП может быть серьезно затруднено сложностью подготовки исходной информации. Следующим фактором является наличие или возможность использования стандартных решений. Этот момент также может оказаться решающим при выборе САПР. Ситуация несколько улучшается и сглаживается с помощью создания переносимых проектных решений (например, записи функционирования на одном из вариантов языков описания аппаратуры VHDL, Verilog или EDIF). Однако особенности внутренней организации БИС ПЛ могут приводить в таком случае к получению после компиляции не самых эффективных решений (если, конечно, в спецификации проекта эти особенности не учтены).
2.4. Основные этапы проектирования БИС программируемой логики Порядок разработки системы, содержащей БИС ПЛ, укрупненно был приведен в разд. 2.1 (см. рис. 2.1). Рассмотрим более детально маршрут проектирования, соответствующий разработке конфигурации БИС ПЛ с использованием САПР.
2.4.1. Этап 1. Выбор элементной базы и САПР На первом этапе проектирования на основании анализа технического задания (ТЗ) выявляются специфические требования проекта, позволяющие остановить свой выбор на определенной фирме, выпускающей БИС ПЛ, и на определенном семействе ПЛИС этой фирмы. Отбор осуществляется на основе анализа характеристик как самой БИС — логических, конструктивных, эксплуатационных, стоимостных, так и на анализе свойств требуемой или допустимой САПР. Зачастую выбор предопределяется уже имеющимся практическим заделом и опытом работы проектировщика с продукцией и
214
Проектирование систем на микросхемах программируемой логики
САПР определенной фирмы. В этом случае уточняется семейство, архитектурные и эксплуатационные характеристики которого удовлетворяют требованиям ТЗ. Выбор семейства может существенно зависеть от специфических требований проекта, например, необходимости соответствия определенным интерфейсным стандартам, требования наличия скоростной встроенной памяти значительного объема, повышенной радиационной стойкости и т. д. На выбор могут влиять и такие характеристики, как условия поставок, объявления о разработке перспективных модификаций семейства и многие другие соображения. Одним из самых неприятных (и дорогостоящих по совокупности последствий) фактов является выяснение в ходе выполнения проекта невозможности его реализации на продукции выбранной фирмы. Анализ интерфейсных требований к проекту позволяет конкретизировать количество внешних контактов, необходимых для реализации проекта, т. е. типоразмер корпуса БИС выбранного семейства ПЛИС. Сложность проекта или определенные требования к проекту (например, скоростные характеристики) могут приводить к целесообразности использования на начальных этапах проектирования группы САПР сторонних фирм.
2.4.2. Этап 2. Спецификация проекта Задача этого этапа — переход от технического задания к формализованному описанию проектируемого устройства. Как правило, ТЗ является смесью словесного и технического описания, его формализация приводит к выявлению основных блоков устройства (или алгоритма) и определению их связей и/или взаимодействия. В сущности, именно в этот момент реализуются начальные действия второго этапа. Формально же содержание работ этого этапа — разбиение задачи на отдельные функционально обособленные подзадачи — этап декомпозиции. Способ и средства разбиения чаще всего определяются именно функциональной завершенностью и обособленностью отдельных фрагментов, хотя в значительной степени здесь большую роль играют просто симпатии проектировщика, и лишь иногда разбиение является полностью предопределенным. Сама форма ТЗ может провоцировать проектировщика на использование тех или иных средств, хотя не исключено, что более эффективным мог бы быть другой метод описания проекта или его фрагментов. Декомпозиция может сводиться к составлению схем алгоритмов функционирования фрагментов или к функциональной схеме устройства и его частей. Возможным вариантом для достаточно сложных систем будет разумное совмещение и поведенческого, и структурного разбиения проекта. Разбиение осуществляется не только в рамках одного уровня иерархии. Для большинства проектов производится и разбиение на иерархически организованные уровни. Существенной задачей, решаемой на этом этапе, является уточнение и согласование с заказчиком интерфейсных функций проекта. Уточняется реализация протоколов внешнего обмена. Именно требуемые временные харак -
Глава 2. Основы технологии проектирования ИСПС
215
теристики и правила взаимодействия с внешними приборами определяют допустимую организацию и структуру внутренних узлов проекта. Использование САПР на этом этапе проектирования пока еще явление достаточно редкое, хотя для реализации современных очень сложных проектов (несколько сотен тысяч вентилей) все чаще используются специальные блочные редакторы, позволяющие осуществлять декомпозицию проекта без детализации составных частей. Примером может служить САПР Quartos фирмы Altera, включающая в свой состав специальное средство, редактирующее проект на уровне блоков (block -level editing).
2.4.3. Этап 3. Разработка общей структуры проекта Основные задачи этапа — выбор допустимых для реализации каждого уровня иерархии элементов, определение связей между ними, и если параметры элементов являются настраиваемыми, то и их настройка. Ряд моментов является для этапа определяющим: с одной стороны, это источник набора допустимых элементов, а с другой — средства описания соединений элементов между собой, а при необходимости, и возможность описания новых (специфических для этого проекта) элементов. Как уже указывалось, возможно как только временное (поведенческое), так и только пространственное (архитектурно -структурное) описание проекта. Однако обычно целесообразно совмещать обе возможности. При разработке устройств с цифровым представлением информации бывает естественным разбиение их на два блока: операционный и управления. Операционный блок (ОБ) выполняет преобразование данных и строится из стандартных частей (частей с определенным поведением), а блок управления (устройство управления, УУ) обеспечивает необходимую последовательность операций, выполняемых в ОБ (одном или нескольких). Для этого УУ передает на входы ОБ управляющие сигналы. Последовательность действий и, следовательно, управляющих сигналов зависит от результатов операций в ОБ и внешних воздействий. Отсюда видно, что УУ удобно задавать в форме конечного автомата с памятью (АЛ) того или иного типа. • В сложных проектах возможно разделение УУ на несколько функционально слабо связанных пар ОБ -УУ на одном уровне иерархии или создание пары, иерархически погруженной в ОБ (реже в УУ). Ресурсы и возможности, предоставляемые современными САПР, заставляют несколько по -новому относиться к проектированию автоматов. Здесь необходимо отметить два основных момента. Во -первых, вопросы оптимального кодирования состояний и условий переходов автоматов (подробно анализируемые многими авторами в различных работах) начинают приобретать для разработчиков скорее теоретический интерес, чем практический. Разработчик чаще всего задает только способ
216
Проектирование систем на микросхемах программируемой логики
кодирования автомата, а конкретное кодирование выполняет САПР. Лишь в отдельных случаях (чаще всего, исходя из соображений скорости реализации отдельных определенных переходов или формирования выходного сигнала) целесообразен ручной способ кодировки автомата и навязывание САПР принятого варианта. Возможность подобного жесткого определения кодового соответствия поддерживается или присвоением фиксированных назначений определенным элементам проектируемой структуры в САПР, или использованием более детализированного способа описания структуры проекта. Во -вторых, организация и структура ячеек ПЛИС (а также практическое отсутствие ограничений на сложность связей автомата) позволяют существенно расширить спектр синтезируемых САПР структурных схем автоматов. Канонические структуры автоматов типа Мили и Мура при синтезе оказываются переплетенными в различных комбинациях (см. разд. 3.2.8 и 3.4.6).
2.4.4. Этап 4. Содержательное описание проекта и его частей Внедрение САПР позволяет создавать эффективные, наглядные, управляемые и контролируемые описания проектов и их частей. Причем одно и то же устройство может быть описано с помощью различных средств САПР. Используемые способы обычно пригодны как для описания проекта в целом, так и для описания его отдельных фрагментов. Методы описания, допустимые к применению исключительно для определенных отдельных фрагментов устройства, относятся к числу редких. Более того, большинство САПР позволяют трансформировать один вид описания в другой. В настоящее время к наиболее распространенным универсальным способам описания проекта, применимым для любого уровня его иерархии, относят графический и текстовый. Реже используются непосредственная разводка схем FPGA в редакторе топологии, описания в виде требуемых временных диаграмм и др. Каждый из способов имеет свои достоинства и недостатки. Близость выразительных средств выбранного способа описания в САПР и внутренней организации или поведения разрабатываемого устройства способна существенно сократить время создания проекта, поскольку может упростить его создание и тестирование, а описание, как правило, окажется более наглядным и понятным. Графическое представление проекта в современных САПР может создаваться как в базисе графических символов проектировщика, так и в базисе допустимых для выбранной САПР библиотечных элементов, например элементов стандартной серии ТТЛ(Ш). Допустимо смешивание этих двух базисов в различных комбинациях. Главные достоинства графического способа — его традиционность и наглядность, связанные с привычностью разработчиков к восприятию изображений схем. Конечно, эти преимущества проявляются только при правильном иерархическом и структурном разбиении проекта. В боль -
Глава 2. Основы технологии проектирования ИСПС
217
шинстве случаев графическое представление не заменяет текстовое представление, а только предваряет его. Графическую форму задания информации о проекте широко использует, например, фирма Mentor Graphics Corporation в пакете Renoir (в последней редакции эта программа носит название HDL Designer). В зависимости от целевого назначения (и, соответственно, используемых синтаксических конструкций) разработчик должен выбрать тот или иной редактор. Пакет поддерживает ввод графической информации: для структурного описания устройства (Block diagram), для описания комбинационных схем на основе таблиц истинности (Truth table), для потокового описания поведения (Flow chart), для описания в терминах и понятиях автоматов с памятью (в фирменной документации используется термин "диаграммы состояний", State diagram). Результатом работы редакторов является создание описания проекта или его фрагментов на одном из языков описания аппаратуры. Даже если САПР не поддерживает графического ввода, она часто может отображать текстовое описание в графическую форму. Примером может служить самостоятельное обнаружение САПР Synplify (9—24 тыс. долларов) фирмы Synplicity фрагментов, соответствующих по построению описанию автоматов с памятью, с возможностью их дальнейшего графического представления. К недостаткам графического представления можно отнести отсутствие четких стандартов соответствия текстового и графического представления. В отличие от текстовых, графические способы представления проекта обычно узко специализированы и требуют особых средств для переноса информации о проекте в другую среду, для чего могут быть применены специальные универсальные языки передачи информации о проекте (типа языка EDIF, Electronic Design Interchange Format). Современные языки описания аппаратуры (HDL, Hardware Description Languages) допускают описание проектируемого устройства как с точки зрения его поведения, так и с точки зрения его структуры. Эти возможности делают распространенным представление проекта в форме текстового описания алгоритмов функционирования его фрагментов в сочетании с текстовым же описанием межблочных соединений для сложных проектов. Достоинства текстового способа описания проекта заключаются в его компактности и относительной простоте автоматизации любых преобразований, включая начальную генерацию описания проекта. Очень важна возможность использования стандартных универсальных языков типа HDL, обеспечивающая простоту переноса проекта с одной аппаратной платформы на другую и переход от одной САПР к другой.
Иерархия языков проектирования дискретных устройств Формализованные текстовые описания достаточно давно применяются при проектировании цифровых устройств. Описания фрагментов систем в форме логических выражений и таблиц использовались от самого зарождения циф -
218
Проектирование систем на микросхемах программируемой логики
ровой автоматики. В семидесятые годы было разработано много языков, соответствующих уровню представления регистровых передач (Register Transfer Language, RTL). В этом ряду можно отметить популярный в свое время и ставший прообразом многих современных языков проектирования язык CDL [29], выполненные в Советском Союзе разработки — язык ПРОЕКТ Института кибернетики АН УССР [11], Ф -язык (иначе, "Язык функционального микропрограммирования") Ленинградского института точной механики и оптики [15]. Все эти языки предусматривали определение набора микроопераций, выполняемых в операционном блоке, и описание функционирования в форме микропрограмм. В современных терминах можно говорить об использовании структурно -поведенческого описания проекта. Однако отмеченные языки не были ориентированы ни на машинное моделирование, ни, тем более, на прямую компиляцию в аппаратуру. Возможности автоматизации проектирования в тот период практически ограничивались логическим синтезом и разводкой плат. Языковое представление использовалось, главным образом, для спецификации проектов и сопровождения ручного проектирования. Под сопровождением понималось наличие компактного и наглядного описания для лучшей "обозримости" проектов сложных систем, планирования работ, а также для обеспечения взаимопонимания между разработчиками подсистем. Один из первых, и до сих пор один из наиболее распространенных языков, VHDL, создавался в начале восьмидесятых так же, как язык спецификации проектов. Однако очень скоро были созданы программы моделирования систем на основании описания в терминах этого языка, а в начале девяностых уже и прямые компиляторы VHDL -программ в аппаратные реализации различных классов. К настоящему времени сложилась определенная иерархия языков проектирования дискретных устройств. Критерием отнесения языка к определенному уровню является степень абстракции используемых в языке конструкций. В этом смысле можно наблюдать определенное соответствие типов языков проектирования с языками программирования, которое иллюстрируется табл. 2.5. Таблица 2.5. Соответствие типов языков проектирования языкам программирования Уровень языка
Языки программирования
Языки проектирования дискретных устройств
Языки реализации
Программный код
Таблицы соединений
Приборно (машинно) -ориенти рованные языки
Языки ассемблера: простой ассемблер
PLDASM,
макроассемблер
ABEL, AHDL...
Глава 2. Основы технологии проектирования ИСПС
219 Таблица 2.5 (окончание)
Уровень языка Процедурно -ориентированные языки Объектно -ориентированные языки
Языки программирования FORTRAN, Pascal, С
Языки проектирования дискретных устройств VHDL, Verilog HDL
C++, Prolog, Java
Hardware -C
Языки реализации наиболее близко отражают результат проектирования, будь то исполняемая программа или проектируемое изделие. В языках программирования это программный (машинный) код, представляющий последовательность команд в том виде, в котором она считывается из памяти и интерпретируется процессором. Из языков проектирования этому уровню наиболее близко соответствуют языки описания соединений (таблицы соединений). Элементарные конструкции таких языков определяют набор блоков проектируемого изделия и порядок их соединений в том виде, в котором они будут воспроизведены в устройстве. Тесна» связь языков низкого уровня с аппаратными средствами проектируемой БИС заставляет компиляторы создавать проекты со структурой, заданной проектировщиком (ручное проектирование может обеспечить получение более выигрышных параметров). Платой за это обычно является жесткая ориентация на определенную аппаратуру и производящую ее фирму. Общий недостаток языков этого уровня — большая трудоемкость разработки, включая трудности поиска ошибок. Простейшие машинно -ориентированные языки (язык простого ассемблера) сохраняют структуру программного кода, т. е. используют представление "одна машинная команда — один оператор". Однако применяется мнемоническая запись операций, а также символическое представление операндов, что делает текст более наглядным и контролируемым. Подобный принцип заложен в язык PLDASM (аббревиатура расшифровывается как PLD Assembler — ассемблер для ПЛИС). Оператор языка PLDASM задает операцию, выполняемую ячейкой ПЛИС, и имена входных и выходных сигналов ячеек, фактически операндов [28]. В языки уровня макроассемблера вводятся конструкции (макрокоманды и макроопределения), которые интерпретируются не одной командой, а некоторыми достаточно стандартными последовательностями команд. Могут вводиться и групповые данные. Одна из важных особенностей языков этого класса — ориентация на определенный процессор и сохраняющаяся близость языкового описания и скомпилированной программы. Этим обеспечивается большее по сравнению с языками высокого уровня влияние разработчика на результирующую программу, что иногда обеспечивает лучшие
220
Проектирование систем на микросхемах программируемой логики
показатели критических участков программ, прежде всего, производительность и затраты памяти. Подобные свойства характерны для развитых приборно -ориентированных языков. Обычно это входные языки САПР фирм изготовителей ПЛИС. Такие языки, как правило, содержат опции, ориентированные на эффективное использование архитектурных особенностей определенных типов ПЛИС, а также широкий набор библиотечных модулей, оптимизированных с учетом этих особенностей. Наиболее известные приборно -ориентированные языки (Device Specific Languages) это AHDL фирмы Altera и ABEL, разработанный фирмой Aldec и принятый в САПР фирмы Xilinx. Перенос разработок, выполненных на языках ассемблерного уровня, в другие среды затруднен. Процедурно -ориентированные языки программирования (в дальнейшем назовем их просто процедурными) могут лишь косвенно отражать содержание будущей реализации, используя специфические синтаксические конструкции для описания порядка преобразований. Наибольшее распространение получили языки VHDL и Verilog. Процедурные языки проектирования позволяют описывать устройства через алгоритм их функционирования, в том числе в реальном времени и во взаимодействии с физическим окружением. Эти языки, как и другие алгоритмические языки высокого уровня, в принципе позволяют описать любой алгоритм в последовательной форме, т. е. через последовательность операторов присваивания и принятия решений. Основное их отличие в способности отражать также и параллельно исполняемые в аппаратуре действия, представляемые отдельными параллельно выполняемыми процессами с общим инициализирующим воздействием. Кроме того, процедурные языки проектирования расширяются операторами, позволяющими описывать структуру проектируемого изделия. Впрочем, и структурное описание во многом подобно структуризации в традиционном программировании — включение модуля в структуру можно рассматривать с точки зрения представления в HDL -программе как вызов подпрограммы. На сегодня процедурные языки являются наиболее универсальным аппаратом описания цифровых устройств и покрывают диапазоны представления от уровня элементарных логических ячеек до блочного описания сложных вычислительных устройств. Практические все современные САПР имеют встроенные компиляторы процедурных языков и обеспечивают возможность моделирования поведения и непосредственного преобразования описания в файлы конфигурации ПЛИС. Объектно -ориентированные языки (ООЯ) основаны на абстракциях еще более высокого уровня — классах, объектах. Программа на ООЯ строится как последовательность вызовов объектов и методов классов. Преимущества объектного подхода наиболее проявляются при реализации сложных программных проектов, ибо этот подход позволяет использовать такие важные свойства классов, как наследование и инкапсуляцию. Развития ООЯ для проектирования только еще началось. Наиболее развитым представляется язык Hardware -C. Он построен как расширение C++
Глава 2. Основы технологии проектирования ИСПС
221
путем введения специфических классов, необходимых для представления аппаратных средств. В частности, введены классы, отражающие параллельные процессы, реальное время, поведение реальных сигналов в цифровых системах. Такой подход представляется очень перспективным, ибо еще более сближает методологию и средства проектирования программ и аппаратуры. К сожалению, до сих пор не принят стандарт Hardware -C, а фирмы -разработчики ПЛИС не включили в состав своих САПР компиляторы с этого языка. Поэтому авторы сочли включение подробного изложения объектно -ориентированных языков проектирования в настоящую книгу преждевременным. Итак, при содержательном описании проекта и его частей необходимо, чтобы проектировщик выбрал средства и методы описания трех составляющих этого проекта: описания структуры операционного блока, описания поведения элементов и описания функционирования устройства управления.
Описание структуры операционного блока Архитектурно -структурное описание операционного блока базируется на задании структуры соединений отдельных элементов. Традиционный графический способ представления структуры соединений, оставаясь наиболее наглядным способом, в современных САПР сопровождается текстовым способом описания. Входящие в состав САПР программные утилиты обычно обеспечивают автоматическое прямое и обратное преобразование описаний. Элементный состав операционного блока зависит от состава используемой библиотеки. Большинство САПР поддерживает иерархическое описание проектов. На любом уровне проект представляется как совокупность элементов этого уровня. Набор функциональных возможностей библиотечных элементов, предлагаемых стандартными САПР, чрезвычайно широк, а по составу и происхождению библиотеки разделяют на следующие: - стандартные библиотеки фирмы -разработчика САПР, содержимое которой соответствует той или иной распространенной серии схем МИС и СИС (например, ИС типа 74 серии); - стандартные элементы вычислительной техники (n -входовые логические элементы, дешифраторы, мультиплексоры, счетчики и т. д.). Параметры элементов при этом фиксированы; - типовые элементы вычислительной техники (счетчики, регистры, мультиплексоры и т. д.), ряд конкретных параметров которых (разрядность, полярность управляющих сигналов и т. д.) могут назначаться проектировщиком произвольно; - типовые узлы вычислительных систем (периферийные устройства, аппаратные ядра микроконтроллеров и микропроцессоров), часть параметров которых варьируется проектировщиком (как правило, разработка кон -
222
Проектирование систем на микросхемах программируемой логики
фигурации этих узлов выполняется либо фирмой -разработчиком узла, либо в содружестве с ней); - узлы вычислительных систем (периферийные устройства, аппаратные ядра микроконтроллеров и микропроцессоров), часть параметров которых варьируется проектировщиком. Узлы обычно разрабатываются фирмами, специализирующимися на выпуске этого вида узлов (результаты разработки носят название IP, Intellectual Property, а содержимое поставляемого описания носит название ядра интеллектуальной собственности — core IP); - элементы, созданные проектировщиком и объединенные в его библиотеку проектировщика. Любой проект может быть использован в качестве подпроекта в более сложном проекте. Единую библиотеку модулей проектировщика можно и не создавать (хотя желательно иметь некий путеводитель по собственным проектным модулям, а в лучшем случае, базу данных о выполненных проектах). Как правило, на любом уровне иерархии базовый набор элементов операционного блока (этого уровня) дополняется требуемым для их функционирования набором регистров, логических схем (обычно многофункциональных и управляемых), буферных схем и коммутируемых связей между ними. Важно, чтобы на более низких иерархических уровнях описания проекта была однозначная трактовка функционирования всех элементов ОБ. Несмотря на оптимизацию схем, соответствующих наиболее распространенным сериям ИС, самым неправильным (с точки зрения авторов) представляется практикуемый некоторыми проектировщиками прямой перенос схемотехнических решений из реализации в форме СИС и МИС в реализацию на БИС ПЛ. Получаемые при этом результаты, как правило, не только не оптимальны, но зачастую не обеспечивают желаемого функционирования проекта.
Описание поведения элементов операционного блока В тех случаях, когда поведение того или иного элемента операционного блока не соответствует поведению имеющихся в распоряжении проектировщика стандартных элементов, разработчик вынужден создавать свой элемент. Так же, как и при описании структуры устройства, описание поведения отдельных элементов может осуществляться с привлечением как графических, так и текстовых средств. Сравнительные характеристики двух способов описания достаточно подробно обсуждались выше. Как правило, для компиляторов входным описанием является текстовое описание на одном из языков описания аппаратуры. Вопросы разработки описаний поведения различных функциональных фрагментов цифровых и логических устройств подробно рассматриваются в гл. 3.
Глава 2. Основы технологии проектирования ИСПС
223
Описание работы устройства управления (УУ) На этом этапе определяется функционирование УУ, обеспечивающее требуемое взаимодействие элементов ОБ. Следует подчеркнуть, что все составляющие рассматриваемого этапа проектирования сильно взаимосвязаны, и если не разрабатываются параллельно, то чаще всего требуют итерационного выполнения. Формы и средства описания автоматов разнообразны. Вопросы и примеры описания поведения автоматов в текстовой форме на различных языках представлены в последующих главах. Для повышения наглядности поведения автоматов большинство современных САПР поддерживает задание этого поведения в графической форме. Описание в виде схемы переходов (диаграммы состояний) становится одним из самых распространенных вариантов задания автоматов (в английской терминологии State Machins). Графические редакторы для создания автоматов включаются в состав средств задания исходных проектов современных САПР (например, в САПР Foundation фирмы Хilinх разработки фирмы Aldec). Фирма Mentor Graphics для создания текстов на языках VHDL или Verilog предлагает использовать специальный набор графических редакторов под названием Renoir (с 2001 года HDL Designer Series). Редактор позволяет создавать в графической форме описания не только автоматов, но и других форм задания поведения проектов. Редакторы разных фирм -производителей СБИС ПЛИС имеют особенности, но для всех них характерны исключительная простота, естественность и дружественность интерфейса с пользователем, а также отсутствие жесткой необходимости знания выходного языка редактора. Наиболее совершенные версии программ типа StateCAD пакета Workview Office фирмы Viewlogic обладают полным набором средств для выполнения всей проектной процедуры разработки управляющих автоматов (УА), позволяющих реализовать следующие операции: - рисовать граф переходов, включая наименование состояний, направления, условия и приоритеты условий переходов, формируемые сигналы и способы их образования; - проверять корректность составленного графа переходов (повторение имен, неоднозначность перехода, некорректность перехода и т. д.); - компилировать проект (формировать выходной текстовый файл) в выбранном языковом базисе; - моделировать поведение автомата в интерактивном или компиляционном режиме. Важное достоинство программы типа StateCAD — возможность широкого выбора форм представления результата (описания на языках высокого уровня VHDL, Verilog и С, а также на языках низкого уровня ABEL, AHDL).
224
Проектирование систем на микросхемах программируемой логики
Заметим, что специфика продукции той или иной фирмы сказывается и на языках высокого уровня, выражаясь, прежде всего, в отличиях в библиотеках, требуемых для работы, и в сложности и вариантности допустимых синтаксических конструкций для компиляторов. Конечные результаты компиляции одной и той же исходной схемы автомата или последующей компиляции одной и той же программы с языка высокого уровня в загрузочный файл микросхемы ПЛИС, полученные от компиляторов разных фирм, могут существенно различаться и иметь различную эффективность. Программа StateCAD пакета Workview Office удобна тем, что перед трансляцией графа переходов можно задать не только желательное языковое представление (VHDL, AHDL, Verilog, ABEL и т. д.), но и фирменные атрибуты, что позволяет оптимизировать запись автомата и избежать применения синтаксических конструкций, недопустимых для компиляторов соответствующих фирм. Как уже отмечалось, при использовании графических редакторов от пользователя не требуется обязательное владение выходным языком редактора. Однако в определенных случаях такое владение исключительно полезно. Полезность ориентации в языковых конструкциях проявляется, например, в ситуациях, когда автомат должен быть минимизирован по тем или иным параметрам, прежде всего, по временным интервалам между формируемыми выходными сигналами, что может приводить к временным состязаниям сигналов. Именно в этих случаях владение языком и искусство проектировщика облегчают получение наилучших результатов.
2.4.5. Этап 5. Компиляция проекта После составления проекта и его наиболее существенных частей можно приступать к самому ответственному этапу проектирования — компиляции проекта. Компиляции может подвергаться как весь проект, так и его основные части. Компиляция отдельных фрагментов, с одной стороны, упрощает проектирование, поскольку уменьшает размерность анализируемой проблемы, но, с другой стороны, удлиняет процедуру проектирования, а самое главное, требует учета различия функционирования внутренних ресурсов и внешних (согласующих) элементов. При компиляции проекта целиком удается обнаружить большинство скрытых ошибок и нестыковок, которые проявляются при попытке объединить отдельные фрагменты. Реально процесс компиляция состоит из ряда последовательно выполняемых действий: сборки базы данных проекта, контроля соединений, логической минимизации проекта, монтирования проекта в заданную или выбранную схему, формирования загрузочного (конфигурационного) файла и т. д. На любом этапе этих работ могут возникать ошибки, требующие повторной компиляции после их коррекции. Процесс ком -
Глава 2. Основы технологии проектирования ИСПС
225
пиляции в САПР фирм -производителей БИС ПЛИС отличается от компиляции в САПР сторонних фирм. Как уже отмечалось, основное отличие состоит в отсутствии у последних стадии формирования загрузочного файла. Результатом работы компиляторов сторонних фирм, как правило, является структура проекта в базисе выбранного семейства ПЛИС без конкретной привязки к ресурсам ПЛИС. Чаще всего это носит название представления на уровне регистровых передач. Программные пакеты сторонних фирм не только создают такое представление, но дают возможности его просмотра и автоматизированного анализа. Классическим примером такого компилятора является пакет LeonardoSpect rum фирмы Exemplar Logic, Inc. (подразделение Mentor Graphics). Пакет может поставляться в различных вариантах: стартовая цена первого уровня 2 тыс. долларов, второго — 8950 долларов, третьего — 17,5 тыс. долларов. LeonardoSpectrum является набором высокоуровневых средств, предназначенных для синтеза проектов, ориентированных на реализацию в форме одиночной БИС CPLD, FPGA или в форме ASIC -проектов. Поддерживает проектирование для ПЛИС фирм Actel, Altera, Agire Systems, QuickLogic, Xilinx и др. Обеспечивает ввод проектов на языках VHDL и Verilog, отладку на уровне регистровых передач, оптимизацию, базирующуюся на задаваемых проектировщиком ограничениях, анализ временных характеристик проекта, формирование выходной информации, необходимой для размещения и разводки проекта в выбранную БИС, просмотр проекта на вентильном уровне. Результат компиляции при использовании САПР фирм -производителей БИС ПЛ — загрузочный файл, т. е. конфигурационная информация для выбранной микросхемы ПЛИС. Кроме этого, обычно создается и файл отчета, содержащий всю информацию как о процессе компиляции, так и о его результатах. Имеется существенное различие для компиляционных процедур схем типа CPLD и FPGA. Для FPGA помимо автоматического размещения и трассировки соединений, как правило, допустимо и ручное вмешательство проектировщика в процесс на любых его этапах. Этой цели служат редакторы топологии (Floorplanner), позволяющие изменять структуру проекта на кристалле и повышать производительность проектируемых устройств. А для схем типа CPLD влияние проектировщика на структуру (а следовательно, и характеристики) скомпилированной схемы, чаще всего, возможно только путем косвенного воздействия, за счет либо изменения формы описания проекта, либо изменения устанавливаемых перед компиляцией опций. Ручная трассировка выбранных цепей возможна, например, в топологическом редакторе FPGA Editor, входящим в состав САПР Foundation фирмы Xilinx. Только после успешной синтаксической компиляции проекта или его частей можно переходить к их верификации.
226
Проектирование систем на микросхемах программируемой логики
2.4.6. Этап 6. Верификация проекта Верификация разработанного устройства, а в мало -мальски сложных проектах и отдельных его фрагментов — один из важнейших этапов проектирования, поскольку практически не бывает бездефектных проектов, созданных с чистого листа. Обнаружение дефектов проекта — сложнейшая задача. Скорость и тщательность верификации во многом зависят от искусства разработчика. Важность этапа верификации приводит к тому, что работы по тестированию стремятся упростить, включая в состав САПР различные программы, автоматизирующие работы этого этапа. В современных САПР наибольшее распространение получила верификация, базирующаяся на моделировании работы ПЛИС при различных внешних воздействиях. Для упрощения создания желаемой последовательности входных или контролируемых (выходных) сигналов в состав САПР вводят редакторы временных диаграмм. Редакторы делятся на компилирующие и интерпретирующие. Редакторы интерпретирующего типа позволяют упростить процедуру отладки проектов и обнаружить их дефекты, связанные с неправильной трактовкой разработчиком структурной или поведенческой реализации системы либо особенностей реализации используемой элементной базы. В многооконных САПР интерпретирующего типа легко демонстрируются результаты моделирования для текущего момента модельного времени во всех видах отображения проекта (сигналы в электрических схемах, в топологии), в них также легко изменить ход эксперимента и состав представляемых сигналов. В случаях схемотехнического описания проекта упрощена трассировка сигналов. Достоинством компилирующих систем моделирования является минимизация временных затрат. Проблематичными представляются отладка программно реализованных проектов и установление соответствия между строками текста и состояниями отдельных сигналов. Распространение получили два подхода к генерации внешних относительно проекта воздействий. Один подход заключается в формировании этих воздействий путем задания временной последовательности входных сигналов в редакторе временных диаграмм (графический способ задания для компилирующих систем моделирования или формульный для интерпретирующих). Другой подход (особенно удобный при языковом задании проекта и обычно используемый на этапе его функциональной верификации) состоит в написании специальной тестирующей программы. Программы для тестирования в этом случае строятся на основе архитектурно -поведенческого тела, в котором проектируемый модуль представлен как структурный компонент, а генератор воздействия — в поведенческой форме (подробнее о создании программ Test -Bench см. разд. 3.1). В большинстве реальных цифровых устройств после подачи на них некоторых начальных данных выполняются несколько повторяющихся циклов.
Глава 2. Основы технологии проектирования ИСПС
227
Поэтому целесообразна проверка работы устройства на ряде наборов однотипных данных. Можно рекомендовать организацию следующей последовательности работы программного модуля (процесса), представляющего тестовое воздействие: генерация сигналов начальной установки, затем реализация двух вложенных циклов, причем внутренний цикл последовательно формирует тестирующие сигналы для выполнения действий на одном наборе входных данных, а внешний обеспечивает их изменение.
2.4.7. Этап 7. Определение временных характеристик разработанного устройства Наличие после компиляции проекта в САПР полной модели структуры проектируемого устройства и знание временных параметров всех компонентов этой структуры позволяет автоматизировать процесс вычисления различных временных характеристик проекта. Например, в САПР MAX+PLUS II (фирма Altera) предусмотрено автоматическое вычисление трех основных классов временных параметров: - минимальных и максимальных задержек между источниками (входными сигналами) и приемниками (выходными сигналами), информация о которых выдается в виде матрицы задержек; - максимально допустимой частоты тактирования элементов памяти, используемых в проекте; - времен предустановки и удержания сигналов, гарантирующих надежное срабатывание схем при фиксации сигналов в синхронных элементах памяти. Многие САПР позволяют также выделять критические пути передачи и преобразования информации для схемного или топологического представления проекта. Хотя выполнение перечисленных вычислений не гарантирует обнаружения всех ошибок проектировщика, связанных с временными процессами в проекте, оно существенно уменьшает число таких ошибок или, как минимум, позволяет обнаружить в проекте места, опасные с точки зрения сбоев, а также выяснить причины непредусмотренного поведения проектируемой системы.
2.4.8. Этап 8. Организация натурных экспериментов Одним из заключительных этапов проектирования является экспериментальная проверка спроектированного устройства. При всей тщательности выполнения предыдущих этапов всегда существует далеко не нулевая вероятность того, что в проекте имеются дефекты, которые могут проявиться
228
Проектирование систем на микросхемах программируемой логики
при внедрении или даже штатном использовании устройства и вызвать нежелательные последствия. Выполнение натурных экспериментов существенно увеличивает вероятность выпуска бездефектной продукции. Средства ускорения работ на этом этапе и возможности его переноса на ранние этапы разработки, т. е. до того момента, когда будет закончено изготовление конечного продукта, известны — это прототипные системы и средства проведения экспериментов с ними. Прототипные платы широко использовались и ранее, в частности, при создании микропроцессорных систем. Аналогична и ситуация при разработке систем и устройств на основе средств программируемой логики. Прототип ная плата содержит одну или несколько микросхем программируемой логики и дополнительную аппаратуру, связанную с ее целевым назначением, например, средства управления и отображения, микросхемы быстродействующих ОЗУ. Широкий спектр прототипных плат выпускается и поставляется различными отечественными и зарубежными фирмами. Здесь можно указать средства фирм Altera (Demo Board), PLD Applications (платы PCI Bus Evaluation Board), Xilinx, Virtual Computer Corp., Video Software (платы НОТ PCI Design Kit) и др. Как при использовании прототипирования, так и при тестировании конечного изделия необходимо привлечение аппаратных и программных средств для загрузки конфигурации, генерации воздействий и контроля правильности поведения исследуемого устройства. Важный момент проведения экспериментов — генерация тестирующих воздействий. В этом плане БИС ПЛ обеспечивают новые, не достижимые ранее возможности. Дополнительная микросхема, а в некоторых случаях и определенная часть ресурсов отлаживаемой БИС, могут использоваться как программируемые генераторы сигналов. При этом содержание тестов легко модифицируется в процессе проведения экспериментов в зависимости от результатов предыдущих шагов экспериментальных работ. Полезным инструментом отладки могут стать средства передачи данных о состоянии тестируемого объекта в процессе выполнения эксперимента в инструментальный компьютер с целью визуализации и детального анализа (некоторые возможности представлены в разд. 2.6). Многие ПЛИС и соответствующие САПР поддерживают такое взаимодействие. Но во многих случаях может потребоваться разработка специального программного обеспечения для ускорения анализа поведения объекта тестирования. Естественно, в определенных ситуациях допускается пользоваться серийной аппаратурой типа многолучевых осциллографов, логических анализаторов и т. п.
2.4.9. Этап 9. Подготовка к производственному выпуску После успешного завершения натурных экспериментов с прототипным или макетным образцом проектировщик должен обеспечить выпуск опытной партии разработанного изделия. Важнейшей задачей при этом является
Глава 2. Основы технологии проектирования ИСПС
229
обеспечение качественного сопровождения продукции, выпускаемой в форме ИСПС. Поскольку принципиальная работоспособность проекта к рассматриваемому моменту проектной процедуры уже не подвергается сомнениям (как правило, почти не подвергается), то задача тестового оборудования, применяемого на этом этапе, отличается от задач оборудования, использованного на предыдущем этапе. Тестовое оборудование и методика его применения должны отсеивать неисправную продукцию за минимальное время и с минимальными затратами и выполняться персоналом при минимальных профессиональных требованиях. И лишь для небольшого объема продукции целесообразно использовать тестовые средства, позволяющие локализовать места неисправностей. Необходимо разделять требования к тестовому оборудованию и требования к самому проекту. Эффективность работы тестового оборудования в значительной мере зависит от предусмотрительности проектировщика. Процедура разработки с первых шагов должна ориентироваться на необходимость тестирования конечной продукции, и только если проект исходно обладает определенными ресурсами (более подробно рассматриваемыми в разд. 2.6), процедура тестирования может быть существенно упрощена и ускорена. Если проектировщиком (или заказчиком проекта) была правильно выбрана цель проектирования, то после выпуска опытных образцов изделия может возникнуть задача организации выпуска серийной продукции. Основные усилия разработчиков при этом направлены на проектирование и изготовление аппаратных и программных средств, позволяющих удешевить и ускорить выпуск серийной продукции. При условии появления признаков повышенного спроса на выпускаемую продукцию и реальных рынков сбыта может рассматриваться вопрос о модернизации продукции и, в том числе, о переводе на более дешевую элементную базу СпИС. Это направление связано с разработкой стратегии и тактики конвертации проектов в реализацию на новую элементную базу или перехода к новым технологиям изготовления конечной продукции.
2.5. Проблемы и методы проектирования SOPC Если еще совсем недавно схемы БИС и СБИС уже вмещали в себя большинство ИС, находящихся на одной печатной плате, то теперь один кристалл SOPC вмещает в себя несколько СБИС (таких как МП, память, блоки ввода/вывода). Задачи, встающие перед проектировщиком, собирающимся использовать SOPC, внешне не отличаются от задач, уже рассмотренных для МПС и ПЛИС. Основное отличие заключается в том, что в одном кристалле должна быть спроектирована и аппаратура, и программное обеспечение.
230
Проектирование систем на микросхемах программируемой логики
Однако известно базовое положение теории систем (впервые опубликованное в работах L. Von Bertalanfty) о несовпадении свойств целого и суммы его частей вполне применимо для SOPC и поэтому требует пересмотра процедуры проектирования SOPC практически по всем направлениям. С появлением кристаллов SOPC требуются и уже начали происходить определенные изменения практически на всех маршрутах проектных процедур. Современное требование уменьшения времени, необходимого для выпуска конечного продукта, заставляет искать пути сокращения как времени выполнения любых отдельных этапов проектирования, так и устранения причин, вызывающих необходимость итерационных возвратов к предыдущим этапам проектирования. Традиционная процедура проектирования, приведенная на рис. 2.26, характеризовалась существенным запаздыванием разработки программ относительно разработки аппаратуры. Традиционное проектирование без со -верификации
Проектирование HW Построение прототипов Отладка HW Проектирование SW Кодировка SW Отладка SW
Завершение проекта Рис. 2 . 2 6 . Традиционная процедура проектирования
Трудности проектирования SOPC связаны как с необходимостью выполнять проекты в сжатые сроки, так и с постоянно возрастающей сложностью систем. По существующим оценкам, средний объем современных проектов превышает 50 тыс. вентилей и имеет постоянную тенденцию удваиваться каждые два года, и в окончательной стоимости проекта все большую роль играют разработанные программные и "зашитые" в ПЗУ аппаратные ресурсы. Ожидается, что в ближайшие несколько лет проектами, содержащими более 100 тыс. вентилей и МП -ядро (core -based), 'будут заниматься более 200 тыс. разработчиков. Возрастание сложности современных проектов как в части объемов HW (в количестве логических вентилей), так и в части объемов SW (в строках программного текста), делает проблему поддержки данного направления актуальной.
Глава 2, Основы технологии проектирования ИСПС
231
2.5.1. Специфические технико -технологические особенности реализации систем типа SOPC Как уже отмечалось выше, совмещение в одном кристалле программного и аппаратного исполнения алгоритмов приводит не к арифметическому сложению их потенциальных возможностей. Если на первом этапе появления кристаллов типа SOPC основное внимание уделялось мобильности периферийной части МПС, и именно это выдвигалось в качестве основного достоинства SOPC, то далее стало понятно, что меняется отношение и к другим составляющим МПС. Основным фрагментом, определяющим интеллектуальность, становится не процессор, а содержимое памяти, не периферия как таковая, а память ее конфигурации. Процессор, а вернее его конкретная организация, перестает быть доминирующим фактором, определяющим производительность системы. Поведение или структуру процессора в современных системах можно достаточно легко изменить или просто поменять процессор целиком (см. Agere Systems, http://www.agere.com). Перетрансляция, а вернее эмуляция нового типа процессора (если процессор это Softcore) может позволить без значительных временных потерь работать с программой, исходно разработанной для другого процессора. При этом свойство переносимости написанных на языках С и C++ программ — фактор, существенно облегчающий подобные модификации. Поскольку целью любого подхода к проектированию являются попытки упрощения составления, а при необходимости и корректировки структуры системы, то естественным будет желание построения системы по модульному принципу. Тогда построение системы при помощи САПР сведется к извлечению необходимых строительных кирпичиков из библиотеки и взаимной подгонке их друг к другу для получения выбранной архитектуры. Приблизительно так компоновались печатные платы из набора дискретных компонентов ИС. Элементы плат объединялись в модульную структуру с шинными связями. Естественно, что этот же прием разработчики электронной аппаратуры попытались сохранить и при переходе от размещения элементов в форме корпусов ИС на печатной подложке к размещению и трассировке виртуальных компонентов в плоскости кристалла. (Термин "виртуальность" будет использоваться для того, чтобы подчеркнуть отличие физического представления компонента в кристалле от его логического обозначения или описания в проектной документации). Объединение блоков, в том числе и виртуальных компонентов, независимо от их типа (HW -core, SW -core, firm -core) осуществляется с помощью шин. Однако подобный прямой перенос игнорирует особенности и выгоды размещения элементов на одном кристалле. При печатном монтаже ключевой стратегией являлась минимизация числа шинных сигналов, поскольку рост числа контактов и сигналов непосредственно отражался в размерах корпусов ИС, размерах платы и, тем самым,
232
Проектирование систем на микросхемах программируемой логики
в стоимости печатной платы. Такая тактика приводила к увеличению размеров корпуса и уменьшению плотности монтажа. Шины общесистемного уровня должны были, кроме того, поддерживать межплатные соединения на кросс -платах. При этом размеры разъемов и окончательная цена изделия оказывались прямо связанными с числом сигналов. Именно по этому традиционными для системных шин были решения, базирующиеся на введении высокоимпедансных Z -состояний для сигналов, а если была возможность, то прибегали к мультиплексированию (например, шин адреса и данных). Многие проектировщики перенесли приемы, свойственные печатным платам, на уровень размещения в кристалле и не учли некоторых особенностей размещения компонентов в кристалле. Проводник на кристалле не расходует кремниевую зону и поэтому оказывает незначительное влияние на размеры кристалла БИС, цену корпуса и т. д. Современные промышленные технологии изготовления кристаллов предполагают наличие большого числа слоев металлических соединений (свыше 5) и следует ожидать, что добавление линий или обеспечение переходов между слоями не будут вызывать значительного удорожания продукции. Более того, большинство фирм производителей ИС с большой осторожностью подходят к формированию внутренних элементов с тремя состояниями. Очень редко в состав ПЛИС вводятся такие элементы, и, чаще всего, синтезирующие средства заменяют их на мультиплексоры с соответствующим количеством входов. Отказываться от применения элементов с тремя состояниями разработчиков структур ПЛИС заставляют возможности и ограничения синтезирующих средств. Ограничения САПР связаны со сложностью (большим объемом вычислений) определения состояний узлов, объединяющих сигналы от различных источников на одной шине. Большие сложности вызывает выполнение точного статического временного анализа для различных комбинаций разрешающих и запрещающих сигналов. Модульность создает предпосылки и для перемещения решений из области аппаратного подхода в программные решения или наоборот.
2.5.2. Идеи и методы сопряженного проектирования Рассмотренные выше проблемы и современные требования к проектированию систем и, прежде всего, типа SOPC привели к появлению таких новых подходов к проектированию, как сопряженное проектирование, сопряженная верификация и сопряженное моделирование. Co -проектирование (сопряженное проектирование) — процесс параллельного проектирования аппаратных и программных средств, при котором осуществляется оценка целесообразности выбора аппаратной или программной реализации определенного фрагмента проекта. Этот процесс так -
Глава 2. Основы технологии проектирования ИСПС
233
же дает проектировщикам возможность, увидеть (на абстрактном уровне), как система могла бы работать с данным разделением аппаратных средств ЭВМ и программного обеспечения. Co -верификация (сопряженная верификация) — анализ совместной работы программного обеспечения и аппаратных средств ЭВМ с целью определения, будут ли они функционировать правильно вместе. С другой стороны, во время этого процесса анализируется, будут ли одинаково решаться специфические задачи проекта при аппаратной или программной реализации. Результатом работы является фиксация выбранного варианта реализации. Co -симуляция (сопряженное моделирование) — совместное моделирование работы аппаратных и программных средств, при котором аппаратные средства ЭВМ описаны, например, в форме программных моделей (обычно это VHDL - или Verilog -модели). Возможны две трактовки понятия сопряженного проектирования: либо это весь процесс проектирования, а со -верификация и со -симуляция его отдельные подэтапы, либо это начальный этап проектирования, результатом которого является декомпозиция проблемы, а со -верификация и со -симуляция это последующие и самостоятельные этапы проектирования. Разные трактовки приводят к тому, что иногда отдельные решения в данной проблемной области ряд авторов выдает за решение общей проблемы. Реально совместные процедуры выполняются в различных взаимных комбинациях на различных этапах проектирования. В целом задача современного проектирования SOPC — выполнять каждый этап быстрее, с более надежными и достоверными (не требующими пересмотра и итерационных возвратов) результатами. Вопрос контроля проекта становится одним из узловых. Если удается хорошо протестировать каждый этап проекта и получить оценки его эффективности, то резко уменьшается число итерационных возвратов в проектной процедуре. Основные этапы процедуры сопряженного проектирования, базирующиеся на идеях со верификации, приведены на рис. 2.27. Проблемы и методы их решения, опирающиеся на идеи сопряженного проектирования, при совпадении их общих подходов отличаются и оказываются различными для разных этапов проектирования. Узловой проблемой проектирования микропроцессорных систем всегда являлась проблема принятия решения о разделении функций между программной и аппаратной частями системы. От успешности отнесения решаемого фрагмента системной задачи к той или иной реализации зачастую зависит успех или неуспех всего проекта. На начальном этапе проектирования требуется правильно (эффективно, по конечной оценке) разделить решаемые задачи между аппаратной и программной реализациями. Перемещение фрагмента от одной реализации
234
Проектирование систем на микросхемах программируемой логики
к другой на заключительных стадиях проектирования может вообще оказаться невозможным, а чаще приводит к существенным сдвигам окончательной готовности проекта из -за необходимости возврата к предшествующим этапам проектирования. Основной подход для начального этапа проектирования — поиск способа спецификации проекта, подходящего для описания и аппаратной, и программной части. В конце этого этапа проектировщика интересуют вопросы организации со -верификационной процедуры, которая позволила бы оценить правильность разбиения системы.
возвраты Рис. 2.27. Варианты верификации аппаратных и программных решений
На этапе проектирования отдельных составляющих проектируемой системы сопряженное проектирование обозначает параллельное проектирование HW - и SW -средств с взаимными и координированными изменениями тех шагов разработки, где предусмотрено их взаимодействие. Необходимость перераспределения функций или действий между HW и SW может оказаться целесообразной на любом шаге этого этапа проектной процедуры, такое перераспределение может быть исключительно полезным при составлении частей проекта и его моделей. На заключительных этапах разработки HW и SW необходимо убедиться в том, что получены правильно функционирующие части. Основной метод здесь со -верификация. Если совместное HW/SW -моделирование выполняется достаточно быстро, этот процесс может использоваться в качестве основы со -проектирования и со -верификации. Задачей комплексной отладки HW и SW является быстрое устранение ошибок проектирования. На этом этапе наиболее сложной становится стыковка двух разных подходов. Здесь у проектировщиков, представляющих противоположные стороны (HW и SW), появляются противоречия в трактовке причин и источников отклонений характеристик системы от запланированных или ожидаемых. Локализация причины отклонения и способы ее устране -
Глава 2. Основы технологии проектирования ИСПС
235
ния могут требовать очередного перераспределения функций между HW и SW. Удобнее, чтобы стыковка произошла как можно раньше, и отладка выполнялась средствами, одинаково эффективными и для аппаратуры, и для программного обеспечения. Не менее важно, чтобы эти средства были одинаково удобны для разработчиков HW и SW. Вопросы разбиения или перераспределения задач между HW и SW могут возникать даже на этапе встраивания проекта в ИС или на этапах отладки готового изделия. Однако чем позже, тем сложнее и дороже дается такое перераспределение. Идея сопряженного проектирования в SOPC приводит к двум основным направлениям решения этой глобальной задачи: - Откладывание вопроса о выделении конкретного исполнителя (для программной или аппаратной реализации) определенного поведенческого фрагмента системы на как можно более удаленный момент при условии, что описание поведения фрагмента существует и может использоваться для моделирования, а возможно даже для синтеза фрагмента. Программная реализация может быть достаточно компактной. После реализации основных функций ядра МП -системы добавление еще одной программы, как правило, будет очень слабо влиять на объем памяти, уже заложенной в систему, и не будет требовать замены типа используемой БИС памяти. Даже существенная модернизация функционирования системы (при правильно заложенных ресурсах модернизации) не требует изменений конструкции печатной платы при переходе к следующему более емкому корпусу ИС памяти. Основным результатом безоглядного наращивания числа параллельно исполняемых задач на одном и том же процессоре может оказаться ситуация, когда программная реализация не сможет вовремя реагировать на внешние события. Аппаратная реализация, в отличие от программной, хотя и требует значительных ресурсов, но зато не накладывает столь жестких ограничений на поведение одновременно работающих фрагментов. - Возможность не принимать окончательное решение о разделении функций до как можно более позднего момента. Это позволяет отодвигать решение вопроса о целесообразной физической реализации фрагмента на более поздний срок. Такую возможность дает реализация нетиповой части проекта в форме БИС программируемой логики. При этом модификация структурной организации этой части системы может не требовать конструктивного пересмотра. Перераспределение функций между аппаратной и программной частями системы может быть выполнено в любой момент времени жизни спроектированной системы. Предельным вариантом является реализация в форме кристалла типа SOPC, когда конструктивная реализация спрятана внутри одного кристалла. "Системы на кристалле" оказываются прекрасной технической основой сопряженного проектирования — поскольку системы оказываются в значи -
236
Проектирование систем на микросхемах программируемой логики
тельных пределах конструктивно инвариантными к аппаратным и программным решениям. Переход от одного способа реализации к другому не требует существенной конструктивной переработки. Технологической основой сопряженного проектирования являются САПР, интегрирующие в себе средства проектирования и отладки аппаратно -программных систем. Кроме того, работа как самих САПР, так и проектировщиков существенно упрощается, если возможно использование инвариантных способов описания аппаратной и программной реализации. До последнего времени реальное использование методов сопряженного проектирования, а тем более соответствующих технических средств, сдерживалось целым рядом факторов и оказывалось по силам лишь небольшим группам проектировщиков, связанных с разработкой новых проектов. Из приведенных определений ясна общая постановка проблемы, проектная процедура в таком случае может иметь вид, приведенный на рис. 2.28, однако вопрос состоит в том, как технически организовать эту действительно совмещенную процедуру. Проектирование с со -верификацией
Проектирование HW Построение модели HW Отладка модели HW Построение прототипов Отладка HW Проектирование SW Кодировка SW Отладка SW
завершение проекта Рис. 2.28. Процедура сопряженного проектирования
Целый ряд причин тормозит решение в такой общей постановке. Отсутствует техническая база. В проектах еще достаточно 'редко используются современные кристаллы SOPC. Проектировщики вынуждены опираться на старые САПР, новые САПР оказываются очень дорогими. Нет единых проектных средств самого первого уровня — системного — инвариантных к реализации. Новые технологии проектирования требуют существенных изменений и в мышлении самих проектировщиков.
Глава 2. Основы технологии проектирования ИСПС
237
Проектированием сложных аппаратно -программных систем традиционно занимаются специалисты трех профилей: системные инженеры, инженеры программисты и инженеры -схемотехники. Методы и средства автоматизации, используемые этими разработчиками, существенно отличаются — программисты в своей работе больше внимания уделяли вопросам эффективного описания программного обеспечения с точки зрения его поведения, в то время как схемотехники традиционно тяготели к средствам, позволяющим эффективно описывать структуру проектируемой системы. Уже начиная с системного уровня проектирования, современные инженеры пересматривают свои взгляды на то, как проекты надо сертифицировать, как их надо разбивать на части, как их надо верифицировать и отлаживать. До последнего времени системные инженеры и программисты опирались в своей работе на языки С и C++, в то время как их партнеры по разработке аппаратуры предпочитали схемотехническое представление проектов и лишь в последнее время стали описывать свои разработки на языках VHDL и Verilog. Расхождение во взглядах на целесообразность использования того или иного способа описания проекта наносит явный ущерб не только успешности взаимного общения специалистов (разрабатывающих начинку одного кристалла), но и, что более существенно, замедляет процесс проектирования и ухудшает его качество. Пересмотр позиций, как будет видно из дальнейшего материала, необходим почти всюду. Целесообразно сосредоточить усилия на решении задач по четырем ключевым направлениям: - создание новых средств и методологии проектирования; - систематическое повторное использование базовых элементов проектов; - использование передовых САПР; - введения новых и модернизация существующих стандартов с целью повышения их эффективности.
Методология проектирования Новые проектные подходы потребовались не только из -за огромной сложности проектируемых схем (десятки миллионов вентилей), но и из -за таких проблем, как временная корреляция между логическими и физическими областями или достоверность верификации столь больших систем. Многие традиционные проектные средства и методологии не срабатывают на таких масштабах работы. Каждый шаг проектной процедуры, начиная от ввода проекта и кончая физической загрузкой, должен обеспечивать получение определенных промежуточных результатов. Если результаты проектирования на каком -либо этапе не соответствуют требованиям технического задания или существующим технологическим ограничениям, то результаты проектирования не могут быть переданы на изготовление.
238
Проектирование систем на микросхемах программируемой логики
Рассмотрим, к примеру, геометрические размеры. При их величинах на уровне квадратного микрометра и ниже задержка распространения сигнала определяется уже не столько процессами в транзисторах, сколько длиной межсоединения. Отсюда резко возрастает роль этапа размещения и разводки (устранение ошибок здесь зачастую выполнить сложнее, чем устранить ошибку в схеме на транзисторах). Проектировщик, для того чтобы убедиться в правильности работы схемы, должен дождаться топологических результатов и на их основе определить действительные задержки в приборе. Чем раньше эта информация будет получена, тем раньше можно вернуться (при необходимости) к более ранним этапам проектного потока и использовать данные для коррекции произведенных стадий работы. Вопросы конструкторско -технологической реализации проекта в форме современных БИС ASIC становятся значимыми уже для первых шагов проектирования. Многие неявно видимые связи между физическим и схемотехническим воплощениями проекта оказываются весьма существенными. Использование идей сопряженного проектирования для SOPC требует решения двух основных проблем. Первой проблемой является введение таких средств описания проекта, которые позволили бы сгладить противоречия между HW - и SW -реализациями. Второй проблемой (способ решения которой оказывается в значительной мере связанным с первой) является разработка и использование новой техники верификаций и моделирования. Существовавшие до последнего времени моделирующие средства не в силах за приемлемые сроки обработать последовательность событий в столь сложных системах или могут давать искаженную информацию. Выполнение моделирующих процедур на традиционных средствах может занять более года. Требуется введение определенных дополнительных шагов в верификационную процедуру, чтобы как можно раньше обнаружить те проектные ошибки, которые способны проявиться только после реализации проекта в форме кристалла, если они остаются незамеченными раньше.
Систематическое повторное использование Заполнение столь значительных объемов кристаллов (несколько миллионов вентилей) в ограниченные сроки (8—10 месяцев), определяемые новыми требованиями рынка (в первую очередь, мирового, да и российского тоже), требует существенного пересмотра строительных кирпичей, из которых будет возводиться здание. С одной стороны, хорошо бы, чтобы модули были как можно большего размера, их тогда меньше понадобится, но при этом возникает риск потерять управляемость свойствами проекта, и, соответственно, утратить шансы получить высокие характеристики. Нужен достаточно широкий выбор строительных элементов, набор должен быть очень тщательно проверен в разных условиях (отсюда желание, чтобы элементы уже применялись в других успешных проектах). Требуется исключительно высокая надежность и достоверность используемых модулей — после первого же
Глава 2. Основы технологии проектирования ИСПС
239
отказа их не будут больше применять. Многие авторы используют термин Reused, чтобы специально подчеркнуть возможность применения модуля не только в данном проекте, но и в других. Эффективность здесь заключается не столько в долгой жизни IP, а скорее в обеспечении совместимости и применимости их в последующих проектах. Для этого модули должны допускать возможность модификации и изменяемости параметров в достаточно широких пределах. Отсюда основная проблема, где брать такие строительные кирпичи? Существуют два основных варианта: использование фрагментов собственных проектов или приобретение чужих разработок. Последний вариант является покупкой интеллектуальной собственности (IP) сторонних фирм, специализирующихся на выпуске IP -core, которые могут быть HW или SW. Потенциально возможен и третий источник приобретения — создание добровольной международной инициативы, собирающей и отбирающей лучшие разработки (по типу Linux, CPM, ОреnС и т. д.). Однако для практической реализации такой инициативы требуется определенное время и достаточное количество желающих участвовать. Независимо от источника приобретения, основной проблемой является надежность модуля и возможность его достаточно простого встраивания в свой проект. Значительный интерес представляет направление, предложенное в 1996 году фирмой Cadence. Суть его состоит в разработке компонентов, подключение которых к другим элементам системы будет определяться стандартом. Для этого стандартом вводится понятие виртуальных компонентов (Virtual Component, VC) и определяются правила их взаимного подключения. Компонент может быть отнесен к классу виртуальных, если он будет удовлетворять стандарту Virtual Socet Interface Alliance (VSIA). Элементы набора могут существовать в разных формах: - hard blocks, которые могут быть использованы для прямого физического размещения в кристалле; - firm blocks, которые должны соответствовать определенным физическим требованиям фирмы -производителя кристалла; - soft blocks, которые могут быть синтезированы и помещены в часть кристалла, отведенную для ПЛИС. Очевидно, что HW -блоки должны допускать определенную подгонку (настройку параметров) в рамках семейства кристаллов. Более подробно вопросы практического использования этого подхода будут рассмотрены при анализе соответствующих САПР.
Современные проектные средства К современным проектным средствам относятся, прежде всего, новые САПР с новыми возможностями и построенные на новых принципах. Однако не следует ожидать, что наличие хороших САПР решит все проблемы.
240
Проектирование систем на микросхемах программируемой логики
От проектировщиков требуется отказ от устаревших методов и средств и овладение новыми. Понимание описаний, создаваемых автоматическими проектными средствами, необходимо для современного квалифицированного разработчика. Внешняя простота общения с графическими интерфейсами современных САПР не должна заслонять важность уяснения проектировщиком организации и принципов работы узлов, являющихся результатами его творчества. Задание поведения узла, выполненное на одном из языков описания аппаратуры, или описание того же блока, но уже на уровне регистровых передач, должны восприниматься проектировщиком так же, как и схемотехническое задание структуры этого узла. Проектные средства, используемые для разработок SOPC, должны не только органически объединить два ранее разделенных проектных маршрута HW и SW, но и включить новые проектные средства. Следует учитывать, что стоимость подобных средств будет на начальных этапах весьма значительной (до нескольких сотен тысяч долларов).
Эффективность стандартов Стандарты требуются для всех уже рассмотренных участников проектного потока (включая и структуру самих SOPC). И даже для самих стандартов обычно не мешает ввести определенные ограничения, лучше в форме стандартов. Возникновение и развитие методологии проектирования SOPC требует разработки или модернизации стандартов, которые создадут более простые, надежные, защищенные, закрытые от ошибок связи между различными уровнями проектирования: системными, логическими и физическими. Одним из наиболее широко используемых сейчас стандартов этого класса является стандарт SDF (Standard Delay Format). Заглядывая вперед, следует ожидать того же и от стандартов, поддерживающих обмены между проектными средствами не только в структурной, но и во временной областях. Соответственно, для физического уровня того же можно ожидать для библиотечных и проектных стандартов. Связь между различными проектными средствами вполне может поддерживаться уже хорошо зарекомендовавшими себя в других областях (не SOPC) языками Verilog HDL, VHDL и EDIF, хотя некоторые изменения или расширения, диктуемые спецификой SOPC, могут потребоваться.
2.5.3. Стиль сопряженного проектирования и язык описания проекта Все рекомендации, изложенные выше, окажутся эффективными только, если нацеленность на рациональный стиль сопряженного проектирования начинается с самого его начала, и всеми его идеями и подходами можно будет
Глава 2. Основы технологии проектирования ИСПС
241
пользоваться (без удвоения усилий) не только как можно дольше в проектной процедуре, но и начиная с наиболее ранних моментов проектирования. Здесь все исследователи подчеркивают важность самого начального этапа проектирования, а именно этапа спецификации проекта, когда описание функционирования системы может еще не опираться на отнесение частей к аппаратной или программной реализации. Основным инструментом проверки и верификации становятся методы и средства системного уровня автоматизации (Electronic System Design Automation, ESDA). И первым вопросом становится выбор средства описания (спецификации) проекта. Важным оказывается возможность объединить разработку HW и SW, начиная с самых ранних этапов работы. Несмотря на определенную дуальность представления системы в форме аппаратуры и в форме программного обеспечения МПС, существует огромный разрыв между уже имеющимися наработками и средствами, подготовленными на С и C++ для программного обеспечения, и наработками на этих же средствах для аппаратуры. Мир разработок в области аппаратных средств обладает не меньшим заделом, но на языках описания аппаратуры HDL. Поэтому серьезным претендентом на роль языка системного уровня проектирования является язык С. Наследство от программных разработок, написанных на С, достаточно обширно, в то время как наследство аппаратных разработок в лучшем случае доступно на уровне регистровых передач (языки VHDL и Verilog). Для широкого использования язык системного уровня должен: - сохранить систему понятий, использованных проектировщиками при разработке SW на языке С; - добавить необходимую временную привязку к конструкциям языка С, чтобы обеспечить их функционирование в аппаратуре; - обеспечить сосуществование (для целей со -проектирования и со -модели рования) с существующей аппаратурой, написанной на языках HDL (VHDL и Verilog). Направление использования языков С и C++ в качестве основы подобного языка поддерживается рядом компаний. Наиболее яркий представитель этого направления фирма Synopsys. Поддерживаемая ею разработка под названием SystemC, будет более подробно рассматриваться ниже. Вместе с тем, ряд компаний расценил создание SystemC как неудачную попытку использования традиционного программного языка для проектирования и моделирования, которая не дала ничего нового. Поэтому многие перешли к собственным разработкам и достигли определенных результатов. Язык низкого уровня RTL хорошо определен и является широко используемым языком описания HW, поскольку трансляция из RTL в аппаратуру также хорошо определена и поддерживается многими производителями.
242
Проектирование систем на микросхемах программируемой логики
Вместо многих дней, необходимых для разводки ИС при ориентации на уровень индивидуальной транзисторной ячейки, даже язык низкого уровня RTL обеспечивает существенное ускорение процесса проектирования. Еще большей результативности можно достичь, если опираться на языки более высокого уровня. Языки более высокого уровня могут поддерживать конструкции низкого уровня — уровня RTL. Исходно Very High -Speed 1C (VHSIC) Design Languages включал VHDL (VHSIC HDL) и Verilog (Verifying Logic) HDL, причем Verilog планировался как язык моделирования. В настоящий момент оба языка VHDL International (VI) и Open Verilog International (OVI) сохранили и свои группы разработчиков, и своих пользователей, но организационно объединились под именем Accellera. Можно пытаться уменьшить различия между этими двумя подходами, но ни один из них не может (по крайней мере, в обозримом будущем) исчезнуть совсем. Согласиться на один какой -то вариант или обеспечить (взаимное) конвертирование описаний проектов из одного вида в другой (на различных этапах), вот, пожалуй, и весь набор возможных вариантов. В настоящий момент отсутствует какое -то общепринятое мнение по этому вопросу, и поэтому далее мы более подробно попытаемся проанализировать плюсы и минусы различных подходов. Фирма Co -Design Automation Inc. (www.co -design.com) разработала свое собственное подмножество языка Verilog под названием Superlog. Язык, в действительности, является смешением Verilog и С. Тем самым поддерживается простота общения с конструкциями обоих языков, но требуется языково специфический компилятор. Выгодами Superlog является возможность прямого использования всех IP -языка Verilog без каких -либо модификаций. Примером попытки совместить достоинства разных языков путем конвертации описаний с одного языка на другой является пакет CynLib фирмы CynApps (www.cynapps.com), ориентированный на C++. Библиотека пакета CynLib доступна в режиме on -line. Продажным продуктом фирмы являются интерфейс Verilog Co -simulation и пакет CynSuite, который имеет синтезатор (Cynthesizer), транслирующий коды C++/Cynlib в описания Verilog RTL. Разрабатываются проекты, базирующиеся на расширениях и совмещениях существующих языков (HW и SW) с попыткой объединить в них достоинства обоих подходов. Типичным представителем этого пути стала фирма Cynergy Systems Design Inc. (www.cae -plus.com). Основной идеей здесь является создание языка, запатентованного под именем RTLC, который расширяет язык регистровых передач, используя язык С. Целый ряд компаний поддержал эту инициативу и работает с языком RTLC. Пакет ArchGen содержит графическую оболочку, позволяющую генерировать описание проекта на языке RTLC, описание проекта может легко моделироваться и, базируясь на графической анимации элементов проекта,
Глава 2. Основы технологии проектирования ИСПС
243
упрощать решение проблем верификации и отладки. Другой продукт, Builder, этой же фирмы Application Specification Virtual Prototype (ASVP) также опирается на язык RTLC. Трансляцию (конвертацию) с языка RTL на язык RTLC может выполнять пакет Afterburner.
Методы, устраняющие связь сложности систем и скорости моделирования Ключевым моментом для любой из рассмотренных выше методологий является проблема моделирования, именно она предопределяет практическую применимость идей сопряженного проектирования и со -верификации. Небольшие проекты и проекты средней сложности могут с приемлемыми временными затратами моделироваться практически при любом виде входного описания. Для очень больших же систем SOPC потребуются также существенные вычислительные мощности или применение методов, ускоряющих сам процесс моделирования. Проектировщики двигаются различными путями, чтобы обеспечить компромисс между сложностью систем, точностью моделирования и временами как подготовки к моделированию, так и к его проведению. Наиболее осторожные разработчики стараются использовать любые технические средства и приемы, чтобы обеспечить проведение как можно большего числа тестовых испытаний на уровне как фрагментов, так и целой системы, но осуществленных до ее изготовления. Как правило, при этом на первых шагах используются полные функциональные модели процессоров, а затем тестирование выполняется на уровне прототипных образцов аппаратных средств. Процедура проектирования, характерная для подобного подхода, была приведена на рис. 2.28. Компромисс по скорости моделирования достигается при использовании в качестве составных частей предварительно тщательно проверенных IP, таких как процессорные ядра. Кроме того, как правило, у разработчика имеется несколько модификаций IP, отличающихся подробностью уровня описания, это позволяет выбирать уровень описания того же уровня, что и остальной проект. Однако зачастую более эффективным представляется моделирование процессорного ядра на высшем допустимом уровне представления. Например, моделирование на уровне кодирования логических команд может оказаться эффективнее, чем на вентильном уровне. Для моделирования чаще всего используется подход, называемый моделированием управляемым событиями (Event -Driven Simulation, EDS). Подробно принципы EDS рассматриваются в гл. 3. Процесс моделирования больших проектов (например, современные ASIC содержат свыше трех млн. вентилей или более 20 млн. транзисторов) при использовании таких традиционных средств может растянуться до года. Специально для того, чтобы снять ограничения эффективности, свойственные моделировщикам, построенным на
244
Проектирование систем на микросхемах программируемой логики
принципах управления событиями, распространение получают средства моделирования, построенные на принципах циклобазированного моделирования. Циклобазированное моделирование (Cycle -Based Simulation, CBS) использует специальные алгоритмы, которые исключают несущественные вычисления, чтобы поднять производительность расчетов. Основными ограничениями метода CBS являются: - результаты моделирования вычисляются только на фронтах тактового сигнала; - игнорируется поведение сигналов внутри фаз тактовых сигналов; - для сигналов вычисляются только два логических состояния (0 и 1). В результате, ограничивая объем вычислений, циклобазированное моделирование может обеспечить существенный выигрыш во времени моделирования. Традиционные методы моделирования, управляемые событиями, наоборот, жертвуют эффективностью, чтобы обеспечить большую функциональность моделирования. Поэтому значения каждого активного сигнала вычисляются для каждого элемента в течение всего такта. Полные симуляторы EDS -типа обычно поддерживают: - от 4 до 28 различных состояний сигналов; - моделируют поведение элементов, представляющих собой транзистор, вентиль, RTL - или HDL -описание; - выполнение временных вычислений для всех элементов схемы; - полный стандарт HDL -языков. Циклобазированное моделирование сфокусировано на функциональном поведении проекта и, следовательно, может быть оптимизировано для достижения этих целей. В результате, эффективность моделирующих средств этого типа превышает эффективность работы традиционных моделировщи ков в 10—1000 раз. Вместе с тем, отмечая положительные стороны метода CBS, не следует противопоставлять один метод верификации другому. Использование каждого из методов оказывается целесообразным для определенных условий применения. На рис. 2.29 приведен график, показывающий области целесообразного использования в процессе проектирования БИС высокой плотности различных верификационных средств. На рисунке процесс проектирования условно поделен на три основных этапа отладки, на каждом из которых целесообразно применение специфических средств моделирования и верификации. Этап отладки отдельных модулей. На начальном этапе верификационной процедуры целесообразно привлечение средств, построенных на принципах
245
Глава 2. Основы технологии проектирования ИСПС
событийного моделирования. Средства этого типа используются, поскольку они являются прекрасным инструментом для тщательного исследования отдельных модулей большой системы, когда требуется высокая степень интерактивности и детальность моделирования поведения исследуемых модулей. Как правило, число ошибок и нестыковок в проекте на этом этапе очень велико и может исчисляться десятками или сотнями. Модульная отладка
Регрессионное тестирование
Системная интеграция
Количество ошибок в проекте
1000 -
100 -
Событийно управляемое моделирование
Цикло базированное моделирование
10 -
Время проектирования Рис. 2 . 2 9 . Области применения различных средств верификации
Этап регрессионного тестирования, который требует периодических возвратов к своему началу после устранения очередной ошибки проектирования. Это этап верификации системы, образованной объединением отдельных модулей. Число погрешностей проекта уменьшено по сравнению с предшествующим этапом. Однако сложность проекта существенно увеличилась. Тестирующие средства этого этапа целесообразно строить на основе циклоба зированного моделирования. На последнем этапе — системной интеграции, необходимо выполнять комплексную проверку системы. Число необнаруженных ошибок проекта, как правило, уменьшено до единиц, но их выявление и локализация из -за резкого увеличения размерности решаемых задач серьезно затруднено. Це -
246
Проектирование систем на микросхемах программируемой логики
лесообразным инструментом проектировщика становятся эмуляционные средства. Вариантом, пытающимся объединить различные подходы, является аппа ратно -ассистирующее моделирование. В этом случае используется прототи пирующая плата, содержащая такое количество элементов программируемой логики, что на этом наборе возможна эмуляция проекта с производительностью, в десятки или сотни раз превышающей производительность традиционных программных средств. Такая смешанная аппаратно -программная эмуляция может быть более комплексной, чем простая программная эмуляция. Рассмотрев общие проблемы проектирования SOPC, можно перейти к разбору особенностей их проектирования на примерах конкретных схем и САПР.
2.5.4. Пакеты и САПР, поддерживающие проектирование SOPC Фирмы -производители кристаллов SOPC (а в большинстве случаев это фирмы, ранее выпускавшие более простые схемы программируемой логики) сохраняют и традиционное разделение функций со сторонними фирмами, т. е., как минимум, оставляют за собой заключительные этапы проектирования кристалла — размещение элементов и трассировку межсоединений. Однако, в отличие от обычных БИС ПЛ, проектирование схем SOPC требует проектирования и отладки программного продукта. Если проектирование SW еще может выполняться на средствах проектирования сторонних фирм, то отладка (по крайней мере, эффективная) требует применения совмещенных средств. В современных проектных средствах большое внимание уделяется включению средств разработки программных средств в проектные потоки разработки аппаратуры. Следует подчеркнуть, что это не просто механическое подключение еще одного программного средства, а обеспечение тесной интеграции всех средств проектирования для организации совместной работы с HW и SW и обеспечение их совместной отладки. Для этого в современных SOPC предусматривается отладка в рамках системы, интегрированной с исходной системой проектирования (Altera, Atmel, Triscend). Фирма Atmel (http://www.atmel.com) для проектирования систем на базе семейства FPSLIC (AT94) предлагает использовать свою САПР: System Designer Ver. 2.1. Эта САПР в отличие от САПР других фирм не подключает, а включает в свой состав специальные версии программных средств, разработанные фирмой Mentor Graphic (синтезатор Leonardo, моделировщик ModelSim и со -верификационное средство Coverification). Описание проектирования для БИС этой фирмы можно найти в литературе [14]. Фирма Altera (http://www.altera.com) для схем семейства Excalibur (EPXA, ЕРХМ) на последних этапах проектирования, включая отладку, предлагает
Глава 2. Основы технологии проектирования ИСПС
247
использовать свою САПР Quartus П. Для работы с программным обеспечением САПР обеспечивает переключение своего традиционного рабочего потока в специальный режим проектирования программного обеспечения (Soft -Mode), который подключает компилятор C/C++ и отладчик. Наиболее рациональной, однако, фирма считает совместную работу со средствами сторонних фирм. Примером подобной интеграции могут служить полные функциональные САПР Quartus II и MAX+PLUS II, синтезирующие средства от Synopsys и Exemplar и моделирующие средства от Model Technology. Более подробно организация корпоративной работы с продукцией фирмы Mentor Graphic будет рассмотрена ниже. Фирма Triscend (http://www.triscend.com) для проектирования на основе производимых схем семейств Е5 и А7 предлагает использование САПР: Fast Chip Triscend Ver. 2.3. Проектный поток, рекомендуемый фирмой, будет приведен при рассмотрении практического примера в гл. 4. Разработку SOPC корпоративными усилиями разных фирм можно наблюдать, рассматривая САПР и проектные потоки, используемые фирмами QuickLogic, Cypress MicroSystems и Xilinx. Фирма QuickLogic (http://www.quicklogic.com) для поддержки проектирования своих БИС QuickMIPS ESP (на 80% встроенная аппаратура, включающая ЦП MIPS 4Кс, 16 Кбайт память команд и 16 Кбайт данных и интерфейсные узлы, и на 20% FPGA с перемычками типа ViaLink) использует САПР QuickMIPS development environment для процесса сопряженного проектирования, включая отладку. САПР этой же фирмы QuickWorks Ver. 8.21 поддерживает все этапы проектирования БИС: схемотехнический ввод проекта, синтез и компиляцию, временной анализ, функциональное и временное моделирование, конфигурирование. Имеет лицензионные соглашения на подключение пакетов САПР других фирм (компилятора Simplify фирмы Simplicity, HDL -редактора Turbo Writer, моделировщика фирмы VeriBest). Поскольку выпускаемые фирмой Cypress MicroSystems (http://www.cypress.com) БИС SOPC семейства CY8C25***/26*** содержат не только типичные для всех SOPC части (МП и ПЛИС), но и аналоговые блоки, то весьма интересна организация фирменной САПР: PSoC Designer IDE. САПР представляет собой интегрированный пакет средств разработки встраиваемых PSoC систем. Пакет обеспечивает доступ ко всем традиционным средствам, включая полный отладчик, поддерживающий внутрисхемную эмуляцию In Circuit Emulator (ICE). Основой IDE является редактор проекта (Device Editor), обеспечивающий легкий в использовании графический интерфейс для реконфигурируемости подключаемых к МК устройств (MCU). В состав Designer IDE входят редактор приложений, библиотеки, ассемблер и компилятор языка С, загрузчик, линкер, отладчик и программатор. Однако на предварительном этапе проектирования для моделирования проектов, содержащих смешанные аналого -цифровые цепи, фирма Cypress
248
Проектирование систем на микросхемах программируемой логики
предлагает использовать ПО лидирующей фирмы — Antirim Design System (Antirim -ACV, Antirim -MSS). Для проектирования кристаллов типа SOPC фирмы Xilinx (www.xilinx.com) может использоваться САПР этой фирмы ES Series. Интерес представляет сообщение о выпуске САПР, поддерживающей полный цикл проектирования, ориентированного на описание и SW, и HW на языке С. Примером одного из первых коммерческих вариантов реализации этого подхода к сопряженному проектированию на базе языка С является анонсированная фирмой Celoxica Limited проектная САПР под именем DK1. Помимо обычных возможностей пакет поддерживает еще одно важное свойство будущей системы: обеспечивает не только быстрое (за недели и дни вместо традиционных лет) создание электронной продукции, но и реализует фундаментально новый подход к проектированию электронной аппаратуры, позволяя лучше управлять жизненным периодом продукции за счет поддержки средствами Интернета корректировки аппаратуры во время ее эксплуатации. Пакет DK1 фирмы Celoxica Limited разрешает использовать навыки разработчиков программного обеспечения в создании аппаратуры. Разработчик записывает сложные алгоритмы поведения проектируемой системы на языке Handel -C (языке высокого уровня, базирующемся на стандарте ANSI С) для их преобразования в аппаратуру. В отличие от подходов, когда требовалась перекомпиляция С -подобных программ на промежуточный язык описания аппаратуры, пакет DK1 обеспечивает прямое преобразование программы, написанной на языке С, в аппаратную реализацию. DK1 позволяет на последующих стадиях осуществлять перевод проверенных рынком проектов, реализованных в форме FPGA, в форму традиционных ASIC -решений. Хотя некоторые фирмы -производители конечной продукции могут продолжать выпуск продукции в форме FPGA, чтобы сохранить потенциальные возможности корректирования и улучшения продукции, опираясь на ресурсы сети Интернет. Пользователи, использующие Internet Reconflgurable Logic (IRL), могут преобразовывать С -ориентированные проекты прямо в список соединений FPGA семейства Virtex фирмы Xilinx без перевода их описаний на языки VHDL, Verilog или в схематическое представление. По мнению разработчиков DK1, в результате проектирование аппаратуры не будет требовать привлечения специалистов -схемотехников, а окажется доступным для прикладных специалистов, включая системных инженеров и инженеров -программистов. Помимо оболочки, Integrated Development Environment (IDE), пакет DK1 содержит весь набор проектных средств, включая компилятор, моделировщик и отладчик. Этот набор средств обеспечивает выполнение всех типовых проектных этапов, включая компиляцию, моделирование, оптимизацию и отладку проектов, написанных на высокоуровневом языке Handel -C. Проектировщик может ориентироваться на использование поставляемых фирмой прототипных плат и универсальных печатных плат (типа RC1000), которые готовы к размещению пользовательских проектов,
Глава 2. Основы технологии проектирования ИСПС
249
ориентированных на FPGA семейства Virtex, и могут прямо вставляться в аппаратуру разработчика. Пакет работает на IBM PC -совместимых компьютерах под ОС Microsoft Windows 98, 2000 или NT4.0 и поддерживает БИС фирм Хilinх и Altera. Начальная цена 25 тыс. долларов в год для трехгодичной лицензии. Количество фирм, поддерживающих различные аспекты и этапы проектирования кристаллов SOPC, весьма велико, предлагаемые ими решения представляются интересными и перспективными и могут являться предметом самостоятельного исследования. Однако основной тон, так же как и в других производственных сферах, задают крупные фирмы, материальные, технические и другие ресурсы которых позволяют им разработать и предложить не отдельное решение, а группу согласованных решений, образующих интегрированную систему. Наибольший интерес представляют те предложения, которые могут в ближайшем будущем получить широкое распространение и останутся надолго. Как правило, такими решениями являются разработки крупных фирм, специализирующихся на выпуске САПР. Среди фирм, уделяющих значительное внимание проблемам создания проектных средств в рассматриваемой области, наибольший вес имеют фирмы Mentor Graphics, Cadence и Synopsys. Поэтому ниже и рассматриваются основные программные продукты этих фирм, поддерживающие проектирование систем SOPC.
Фирма Mentor Graphics Одним из основных современных средств со -проектирования, получивших широкое распространение, является пакет Seamless -CVE фирмы Mentor Graphics. Его задача состоит в построении виртуального прототипа аппаратуры для работы прикладного SW. Наличие у фирмы программных моделей большинства процессорных ядер различных фирм позволяет приступить к написанию и отладке программ практически сразу после выбора типа микропроцессорного ядра. Большое значение имеет и тот факт, что могут использоваться модели разной степени детализации. Пакет обеспечивает разбиение проекта на части, со -верификация выполняется с высокой производительностью, с использованием моделировщика системы команд, когда моделируется процессорное ядро. Основное отличие пакета состоит как раз в том, что если моделирование аппаратной части SOPC выполняется традиционными средствами пакета ModelSim, то моделировщик процессорного ядра построен на принципах, отличных от принципов, используемых в традиционных средствах моделирования. Благодаря этим изменениям скорость со -моделирования аппаратных и программных частей системы удалось увеличить в несколько сот раз при сохранении детальности анализа работы аппаратной части системы. На рис. 2.30 приведен проектный поток, используемый при разработке схем класса Excalibur фирмы Altera. Проектирование предполагает совместную
250
Проектирование систем на микросхемах программируемой логики
работу САПР разных фирм. Как видно из рисунка, пакет Seamless используется в со -верификационной процедуре. Такое же применение (но во встроенном исполнении) пакет находит в проектном САПР фирмы Atmel. Проектирование Hardware
Проектирование Software
Рис. 2 . 3 0 . Проектный поток для SOPC фирмы Altera
Фирма Cadence Фирма Cadence Design Systems, Inc. (http://www.cadence.com) выпускает большое количество САПР, отличающихся целевым назначением, стоимостью, технической и программной платформой и т. д. С точки зрения сопряженного проектирования наибольший интерес могут представлять два направления работ этой фирмы.
Глава 2. Основы технологии проектирования ИСПС
251
Первым является направление, связанное с использованием понятия "виртуальные компоненты". Упрощения создания систем на идеях сопряженного проектирования фирма Cadence пытается добиться в пакете Virtual Component Codesign (VCC). Пакет поддерживает спецификацию проектов на различных языках, включая С, C++, MATLAB и SDL, а также систему SPW (Signal -Processing Work system), ускоряющую проектирование на системном уровне сложных систем цифровой обработки сигналов. Пакет предназначен для распределения задач между HW и SW, для анализа загруженности шины и процессора и способен контролировать процедуру распределения задач и состязания за ресурсы в системах реального времени RTOS. Коммуникативные ссылки помогают конвертировать абстрактные интерфейсные описания лексемного уровня в действительный уровень сигналов интерфейса. Со верификация VCC включает симуляцию, так же как и поддержку Affirma HW/SW верификатора фирмы Cadence. Вторым важнейшим направлением деятельности фирмы Cadence можно считать работы над созданием САПР, ускоряющих моделирование проектируемых систем. Фирмой выпущена САПР SpeedSim — программный пакет спроектированный специально для уменьшения времени и цены со верификации больших проектов. Пакет был успешно использован для производственной верификации проекта, содержащего более 5 млн. вентилей. Построен он на основе метода циклобазированного моделирования для того, чтобы снять ограничения эффективности, свойственные традиционным мо делировщикам, базирующимися на принципах управления событиями. Результирующая эффективность пакета в десятки или тысячи раз превышает эффективность последних. Существенного ускорения работы пакета удалось достичь путем его реализации в форме однопроходного компилятора с языка Verilog, как показано на рис. 2.31. Для получения высокой эффективности при создании SpeedSim в него были заложены различные новейшие технологии. Можно выделить пять основных особенностей реализации пакета. - Технология BDF (Boolean Data flow Engine). Пакет генерирует исключительно эффективный программный код за счет ориентации на внутренний код моделирующей ЭВМ. - Минимизация памяти. Объемы требуемой памяти по сравнению с пакетами на базе EDS уменьшены от 5 до 50 раз. - Совместное тестирование. На одной рабочей станции с одной копией проекта может одновременно моделироваться до 32 различных тестов. - Режим работы Symmetric Multi -Processing. Предусмотрено функционирование пакета в мультипроцессорной системе, когда он может распараллелить решение задачи между 8 процессорами, работающими с одним сервером.
252
Проектирование систем на микросхемах программируемой логики Традиционный
SpeedSim
Рис. 2 . 3 1 . Варианты построения компиляционных процедур
- Быстрые возвратные итерации. В пакете учитывается итерационность процесса тестирования: а) необходимо как можно быстрее обнаружить ошибку и локализовать ее; б) надо как можно быстрее исправить ошибку и перезапустить верификационную процедуру с того места, где существовавшая до того ошибка искажала результат. В результате пакет SpeedSim на относительно простых вычислительных системах в практически приемлемые сроки позволяет моделировать проекты, содержащие несколько миллионов вентилей.
Проектный поток в SystemC Ориентация большинства системных инженеров .на описание систем на языке С и некоторые другие обстоятельства привели к тому, что на системном уровне проектирования наиболее распространенным оказался в настоящий момент вариант, ориентированный на язык С. В методологии C/C++ и программное обеспечение, и аппаратура описываются на языке С. Один язык описания позволяет после компиляции проще организовать со -
Глава 2. Основы технологии проектирования ИСПС
253
вместную верификацию. Большая распространенность такого подхода определяется тем, что проектировщик может опираться на ряд уже созданных проектных средств. Этот ряд включает проект SystemC, создание которого было инициировано фирмой Synopsys, пакет N2C фирмы CoWare (www.coware.com) и пакет Ptolemy — для быстрого виртуального прототипи рования. Обзор проектного потока и базовых средств SystemC В сентябре 1999 года ряд ведущих компаний, разрабатывающих САПР, IP и ПО для системных и встраиваемых приложений, объявил об инициативе создания Открытой Системы С (Open SystemC Initiative, OSCI) и немедленной ее доступности и свободной загрузке. Моделирующая C++ платформа была названа SystemC. Управляющая группа инициативы включала такие крупные фирмы, как ARM, CoWare Inc., Cygnus Solutions, Ericsson, Fujitsu, Infineon, Lucent Technologies, Sony Corporation, STMicroelectronics, Synopsys Inc. и Texas Instruments. (За основу рассмотрения возьмем версию SystemC 1.0, анонсированную в марте 2000 г.). Фундаментом системы является специализированная библиотека классов C++ и проектный маршрут. Назначением подготовительного этапа проектирования является создание моделей, соответствующих поведению процессора и интерфейсных компонентов аппаратуры на цикловом уровне. Базовым принципом был принят иерархический подход, использование которого может распространяться от абстракций достаточно высокого уровня, до низкоуровневой логики. В основу SystemC положили ряд классовых шаблонов, определяющих небольшой набор новых понятий. К ним относятся асин хронность временных операций, методика соединений, эффективность отслеживания поведения объектов программы, регистрация и отладка событий в проекте. Знание адекватных понятий VHDL или Verilog очень помогает при изучении SystemC: несмотря на расхождение в синтаксисе, в семантике все же больше совпадений, чем расхождений. Все строительные блоки в SystemC являются объектами (classes). Фундаментальным строительным блоком является процесс (process). Process подобен функции в языках С и C++, описывающей некоторое поведение. Описание законченной системы представляет собой множество параллельных процессов, связанных друг с другом посредством сигналов (signal). Функционирование процессов может определяться тактовыми сигналами (clock), используемыми для формирования событий или синхронизации процессов. Для эффективного моделирования HW требуются специальные типы данных, также являющиеся частью библиотеки SystemC. В состав библиотеки входят описания одних и тех же модулей, но на разном уровне абстракции (именно это позволяет обменивать скорость трансляции и моделирования на точность и адекватность). На высшем уровне иерархии HW системы может быть описано исключительно на функциональном уровне, для более
Проектирование систем на микросхемах программируемой лотки
254
точного моделирования поведения аппаратуры потребуется либо функциональное ее описание, либо описание на уровне регистровых передач. Программная часть системы пишется на средствах традиционных С и C++. Что касается интерфейса между HW и SW, или между HW - и HW -блоками, то он может описываться на следующих уровнях — на уровне обменов транзакциями (transaction -accurate level) или на уровне цикловых обменов (cycle accurate level). В пределах одного проекта допускается произвольное смешение уровней детализации описаний. То же самое относится и к созданию программных тестов (Test -Bench). Для получения окончательных программ, подаваемых на вход любого компилятора, совместимого с ANSI C++, SystemC содержит не только стандартные библиотеки классов, но и компоновочную библиотеку, которая включает моделирующее ядро. Программное обеспечение системы разработки (рис. 2.32), в составе которой обычно используется моделирующая SystemC, позволяет эффективно создавать, модифицировать и отлаживать проект разработчика. Библиотека файлов
Среда разработки C/C++
Исходные файлы
Рис. 2.32. Структурный состав среды разработки с SystemC
Глава 2. Основы технологии проектирования ИСПС
255
Подробное описание SystemC можно найти в Reference Manual Release 1.0. Здесь же остановимся на кратком описании тех базовых понятий, добавление которых к универсальному языку программирования позволило в совмещенном варианте моделировать совместное поведение HW и SW. В общем случае, набор этих понятий мог бы иметь другое синтаксическое оформление, однако важным представляется их целевое назначение и, как следствие, обязательное присутствие подобных конструкций в языке, претендующем на системный уровень спецификации аппаратно -программных систем. - Modules — набор, содержащий классы. Модули допускают иерархическую организацию и могут включать другие модули и/или процессы. Модули имеют (однонаправленные или двунаправленные) порты, которые, по сути, являются функциональными интерфейсами, обеспечивающими соединение модулей между собой. Наличие интерфейсов позволяет скрывать внутри модуля детали его реализации и удобны для включения в состав модулей различных блоков IP. - Processes — процессы, которые используются для описания выполняемых функций. Процессы могут быть как одиночными объектами, так и содержать внутренние модули. - Signals — SystemC поддерживает два типа сигналов: resolved и unresolved. Сигналы типа resolved, в отличие от сигналов типа unresolved, могут управляться более чем одним драйвером (в том числе шиной). - Rich set of signal type — для поддержания моделирования на различных уровнях абстракции (от функционального до уровня регистровых передач), включая и поддержку моделирования SW, SystemC поддерживает значительное число типов сигналов. Этим язык отличается от языка типа Verilog, который поддерживает только простой и векторный битовый типы сигналов. SystemC поддерживает и двузначный, и четырехзначный типы сигналов. - Rich set of data type — SystemC содержит обширный ряд типов данных, что позволяет поддерживать множественные проектные наследования и абстрактные уровни. Типы данных с фиксированной точностью позволяют ускорять моделирование при сохранении приемлемой точности его результатов. Типы данных с произвольной точностью (ограничения на задаваемую точность отсутствуют) могут использоваться для вычислений с повышенной точностью и моделирования больших шин. Система поддерживает и двузначные и четырехзначные типы данных. Система включает и богатый ряд перегружаемых операторов и типов, а также механизмов преобразований для этих типов данных. - Clocks — SystemC содержит определение тактовых сигналов (Clocks) как специального типа сигналов. Такты хронометрируют систему в течение моделирования. Поддерживается множественность тактовых сигналов с различными фазовыми взаимоотношениями.
256
Проектирование систем на микросхемах программируемой логики
- Reactivity — для моделирования реактивности поведения SystemC имеет механизмы ожидания фронтов и спадов тактовых сигналов, событий или сигнальных изменений. Система также поддерживает ожидание определенных событий, не связанных с выполнением какой -либо определенной стадии процесса (наиболее типичным примером является ожидание асинхронных сигналов сброса). - Multiple abstraction levels — SystemC поддерживает моделирование на различных уровнях абстракции, выполняя моделирование от высших уровней функциональных моделей до детализированных моделей на уровне RTL. Система поддерживает итеративное уточнение моделей от высших к низшим уровням абстракции. - Creating functional models — для работы с абстрактными функциональными моделями SystemC вводит понятие коммуникационного примитива, называемого каналом (Channel). Канал представляет собой специальный тип сигнала, при помощи которого могут взаимодействовать между собой синхронные или асинхронные процессы. Канальное взаимодействие отличается от обычного сигнального взаимодействия. Для обеспечения записи в канал или чтения из канала требуется определенное число тактовых циклов, однако затраты времени требуемого на обеспечение соединения не фиксируются, поскольку не являются существенным свойством канала. Обычно каналы являются средством, используемым на начальных стадиях моделирования, когда основной интерес представляет системное функционирование. В подобных ситуациях каналы являются механизмом, призванным гарантировать надежность обмена данными. Каналы в неявной форме производят необходимое квитирование обмена для гарантирования корректности доставки данных от передатчика к приемнику. В последующих версиях системы понятие каналов расширено до уровня многоуровневой коммуникационной семантики, что позволяет описывать как внутренние (SOPC), так внешние (ввода/вывода) протоколы с различным уровнем коммуникационной абстракции (уровень передачи данных, уровень шинного цикла, уровень тактового цикла). - Cycle -based simulation — для обеспечения высокой скорости моделирования SystemC включает в свой состав ядро моделирования на уровне циклов моделируемой HW -системы. При этом сохраняются механизмы для управления моделированием из любой точки входной спецификации. - Debugging support and waveform tracing — классы, введенные в SystemC, имеют встроенные средства контроля ошибок реального времени исполнения (run -time error checking), которые могут зависеть от течения компиляции. Ядро системы содержит базовые программы, которые позволяют запомнить временные диаграммы внутренних сигналов моделируемой системы в выходных файлах (с форматами типа VCD, WIF или ISDB), что позволяет в дальнейшем просматривать их содержимое типичными редакторами временных диаграмм.
Глава 2. Основы технологии проектирования ИСПС
257
Процесс проектирования в системе SystemC Процесс проектирования начинается с того, что разработчики создают функциональную спецификацию системы. Целью является проверка функционирования алгоритмов и системы. Функциональная спецификация представляет собой описание связей, соединяющих при помощи сигналов и каналов взаимодействующие процессы. Процессы соответствуют определенным действиям и могут требовать подключения различных архитектурных блоков, которые могут быть реализованы в форме HW или SW. Поскольку функциональная работоспособность системы может быть проверена путем компиляции и последующего исполнения программы C++, то функциональная спецификация может быть преобразована в архитектурную спецификацию. В архитектурной спецификации процессы отображают работу таких действительных аппаратных блоков, как процессоры, память, блоки прямого доступа к памяти или оборудование ввода/вывода. Взаимодействие между процессами осуществляется при помощи сигналов, соответствующих реальным соединениям в аппаратуре. Таким образом, в архитектурной спецификации происходит разделение на программные и аппаратные компоненты, но поскольку для описания любых компонентов использован один и тот же язык, то возможны любые архитектурные перестановки и изменения, вероятны даже изменения и замещения между программными и аппаратными реализациями. Завершение архитектурной спецификации и выполнение ее компиляции позволяет не только убедиться в работоспособности проекта, но и определить основные характеристики производительности проектируемой системы. В соответствии с ранее данным определением это и есть один из вариантов реализации сопряженной верификации и сопряженного моделирования. Основное назначение действий этого этапа — проверить эффективность различных вариантов архитектурного описания, поэтому для ускорения перебора различных вариантов реализации желательно, чтобы модели этого уровня описания проекта были максимально простыми и отражали наиболее существенные характеристики моделируемых блоков. Именно поэтому на описываемом уровне для процессоров, например, используется модель, соответствующая шинной организации функционирования. Такой же максимально абстрактный уровень описания функционирования применяется и для других блоков системы. Если основные вопросы построения архитектуры системы решены, то естественен переход к следующему этапу проектирования. На этом уровне все аппаратные и программные блоки должны быть уточнены и доопределены добавлением необходимых деталей и введением конкретных ограничений на реализацию. Поскольку HW - и SW -средства работают совместно (параллельно -последовательно) со -верификационные действия должны выпол -
258
Проектирование систем на микросхемах программируемой логики
няться непрерывно, чтобы обеспечить правильную работу системы после подобных корректирующих действий. Усложнение и детализация описаний аппаратных и программных блоков заставляет переходить к более подробным и детальным описаниям модулей. Для процессора, например, целесообразно подключение к модели функционирования шины Bus -Functional Model (BFM) еще и модели работы системы команд Instruction Set Simulator (ISS), для многих других блоков потребуются более подробные поведенческие модели или описания на уровне регистровых передач (RTL). Основной проблемой при этом является, как уже неоднократно отмечалось выше, проблема резкого увеличения временных затрат на со -моделирование. Как правило, начиная с этого момента, работа с HW и SW разделяется. Для доведения аппаратуры до вентильного уровня должны использоваться соответствующие синтезирующие средства. Чаще всего требуется перевод описания на языки описания аппаратуры HDL (VHDL или Verilog), а уже затем синтезирующая процедура. Работа над обоими направлениями не всегда может идти синхронно. Достаточно часто SW является источником противоречия между повышенной производительностью системы и минимизацией ресурсных требований. Для устранения противоречий необходимо проанализировать большинство фрагментов системы при их реализации в форме HW - и SW -проектов. Окончательное решение определяется таким выбором HW, которое обеспечит максимальную эффективность работы SW в соответствии с системными ограничениями. Между ошибками, допущенными в HW и SW, существует большая разница. Если проектировщик допустил ошибку в аппаратуре, то и программное обеспечение будет работать с ошибками. Корректность работы обоих частей проекта является крайне важной. Вместе с тем, средства разработки SW оказываются относительно независимыми от средств сопряженного проектирования, и поэтому разрабатываемый SW -модуль (код) может много раз с исправлениями возвращаться в верификационную процедуру. Таким образом, поступают многие средства со -проектирования, чтобы обеспечить механизм итерационных возвратов. SystemC не является единственным вариантом решения проблемы и был выбран исключительно из -за своей распространенности, например, другим С -базированным решением является пакет CycleC фирмы C -Level Design Automation (www.cleveldesign.com), написанный на ANSI С.
2.5.5. Понятие платформенно -базированных проектов SOPC Значительное количество современных разработчиков поддерживают плат форменно -базированное проектирование SOPC. Основной задачей такого подхода является сокращение времени проектирования путем сосредоточе -
Глава 2. Основы технологии проектирования ИСПС
259
ния внимания проектировщика только на тех аспектах проекта, которые отличают его проект от любых других. Подход не отрицает и не противоречит большинству подходов, рассмотренных выше, а только добавляет новые свойства. Обычно под платформенно -базированным проектированием (далее ПБ -проектирование) понимают проектирование, построенное на стандартном ряде модулей интеллектуальной собственности (IP), разработанных той или иной компанией. Как правило, такой набор включает набор процессоров, память с различной организацией, определенные блоки периферии, контроллеры прерываний и ПДП. Этот подход является одним из вариантов попытки создать свой собственный проект SOPC без существенных стартовых издержек (сюда не входит стоимость приобретения прав на IP). Выгоды подхода связаны с тем, что базовый набор, как правило, хорошо определен, протестирован и не требует значительных переделок для других модификаций (если они не выходят за рамки подключения этого IP к другим IP данного набора. Очевидно, что здесь допустимы и известные издержки, связанные, например, с тем, что не все стандартные компоненты набора платформы будут соответствовать пожеланиям проектировщика, а модернизация IP, особенно если они зашифрованы, может оказаться делом более сложным, чем самостоятельная разработка. Несмотря на начальный этап развития направления ПБ -проектирования SOPC, уже наметились некоторые различия в подходах у разных фирм. Одной из ведущих выступила фирма CoWare с пакетом N2C. Серьезным и интересным конкурентом выступает фирма Virtio Inc. (www.virtio.com), использующая свою САПР MagicC как компилятор HDL моделей. Самым интересным здесь является то, что моделирование и тестирование осуществляется в режиме on -line на сайте фирмы. Проведем сначала краткий анализ самих платформ и общих понятий и проблем, а затем рассмотрим особенности их проектирования. Платформа Xtensa фирмы Tensilica Inc. (www.tensilica.com) относится к классу ПБ -проектирования SOPC (может быть отнесена к подклассу проектируемых и оперативно настраиваемых SOPC) и является 32 -разрядной 200 МГц архитектурой с дополнительным DSP. Отличительной особенностью процессора Xtensa является наличие специального процессорного генератора Processor Generator, который поддерживает введение в систему новых команд, определяемых пользователем и задаваемых в формате фирменного языка Tensilica Instruction Extension Language (TIEL). Другим вариантом платформы являются реконфигурируемые SOPC, типичный представитель которых — семейство АТ94К класса приборов FPSLIC фирмы Atmel или реконфигурируемый коммуникационный процессор Reconfigurable Communications Processor (RCP) CS2000 фирмы Chameleon Systems Inc. (www.chameleonsystems.com).
260
Проектирование систем на микросхемах программируемой логики
Представители фирмы STMicroelectronics, Geneva (www.isdmag.com /story /oeg20010228s0084) предлагают вариант гибкого ПБ -проектирования в рамках консорциума Virtual Socet Interchange Alliance (VSIA), активным членом которого является STMicro. Технологию конфигурируемой SOC платформенно -базированного проектирования активно разрабатывают и представители фирмы Palmchip (www.palmchip.com)
Рис. 2.33. Верификация в платформенно -базированном проектировании
Глава 2. Основы технологии проектирования ИСПС
261
Одно из интересных решений проблемы верификации предлагает фирма Quickturn Design System (www.quickturn.com) в своей разработке под названием Rapid Prototyping System (RPS). RPS представляет собой реконфигури руемую прототипную систему, содержащую индивидуальные логические блоки, или IP -core. Блоки оформлены в форме небольших плат расширения PC, называемых платы ядер и коммутируемых на общей плате, собственно и являющейся RPS. На одной коммуникационной плате может размещаться до 30 плат ядер, .каждая из которых может содержать IP в форме bonded -out core, реальным кристаллом или SW -моделью, помещенной в FPGA. Процедура верификации при ориентации на продукцию фирмы Quickturn Design System может иметь вид, представленный на рис. 2.33. Несмотря на обилие приведенных выше работ в плане создания САПР для со -проектирования, со -верификации и со -моделирования, следует иметь в виду, что, в основном, это еще поисковые исследовательские работы. Какие проектные средства получат наиболее широкое распространение в будущем предсказать достаточно трудно, поскольку успех тех или иных решений лежит в плоскости пересечения различных требований, возможностей и востребованности.
2.6. Некоторые аспекты технологии производства систем с ПЛИС Важнейшей задачей, встающей перед разработчиками современной электронной аппаратуры, является создание (или использование готового) технологического инструментария и методологии его применения для различных этапов жизни электронного изделия. Важность этих вопросов связана с тем, что системная верификация и генерация тестовых последовательностей может требовать до 70% проектного времени. Традиционно выделяются следующие этапы, связанные с разработкой и использованием специального технологического оборудования: макетирование проекта, изготовление опытных образцов, изготовление серийных образцов, модификация и замена устаревших версий изделия. Каждый из этапов характеризуется как специфическим перечнем задач, так и требуемым инструментарием, специальной квалификацией персонала и методологией работы. На современном уровне развития технологии разработки электронных компонентов необходимость применения специального технологического оборудования смещается в область все более ранних этапов проектирования. Теперь даже не всегда просто различить, где инструментарий для проектирования, а где части проектируемого изделия. Уже на этапе спецификации проекта разработчик должен заложить в будущую конструкцию целый ряд технологических "зацепок", отсутствие которых на более поздних этапах может оказать крайне негативное влияние.
262
Проектирование систем на микросхемах программируемой логики
Задачей макетирования является проверка реализуемости выбранного способа решения и получение экспериментальных данных для оценки достижимых параметров будущей системы. Целью изготовления опытного образца является экспериментальная проверка работоспособности системы в предполагаемых условиях эксплуатации. Как правило, эта цель достигается путем организации тестирования опытных образцов в различных условиях использования. Качество тестирования, его полнота и адекватность выводов и принимаемых решений определяют возможность перехода к выпуску серийных изделий. Изготовлению серийных образцов предшествует разработка технологии изготовления с учетом ее стоимостной оптимизации при повышении эффективности, а также разработка и изготовление необходимого тестового инструментария. В понятие "тестовый инструментарий" входят как специфическая аппаратура, так и набор специальных тестовых процедур, алгоритмов тестирования и т. п. Важной предпосылкой эффективности выпуска серийной продукции является включение в разрабатываемый проект специфических элементов тестирования на наиболее ранних этапах проектирования, а также обеспечение возможности подключения соответствующего тестирующего оборудования. Для повышения экономической эффективности разработок следует обеспечить преемственность проектов. В основе этапа модификации и замены устаревших версий изделия лежат результаты деятельности по сопровождению выпуска готовых изделий. В ходе сопровождения осуществляется сбор и анализ информации об использовании выпущенной продукции, накопление возможных претензий со стороны пользователей и потребителей, и, при необходимости, принимается решение о целесообразности модификации или замены выпускаемого изделия. Для проведения перечисленных работ обычно требуется специализированное оборудование, а если оно отсутствует, производится разработка и изготовление как самого такого оборудования, так и методики его применения. Экономически целесообразна унификация средств и методов, используемых на различных этапах жизненного цикла изделий. Так же как ранее удлинение жизненного цикла продукции, содержащей МП, было возможно ввиду простоты корректировок содержания программной памяти, так и теперь значительное повышение "средней продолжительности жизни" изделий обеспечивается простотой замены содержимого памяти конфигурации схем с конфигурируемой структурой. В большинстве случаев желательно, чтобы оценка эффективности проекта на всех этапах (особенно на начальных) выполнялось в сжатые сроки и с минимальными финансовыми затратами. Подобная задача особенно актуальна в рамках отечественного производства, где не приходится ориентироваться на большую вероятность серийного производства проектируемой
Глава 2. Основы технологии проектирования ИСПС
263
системы, а в большинстве случаев выпуск характеризуется сравнительно небольшими объемами производства. Поэтому для отечественных разработчиков более характерен подход, предусматривающий большие людские и временные трудозатраты и меньшие затраты на исследовательское оборудование. В такой ситуации предпочтительным оказывается применение оборудования, обеспечивающего возможность решить самый широкий спектр задач за счет простых перенастроек. Включение в состав технологического оборудования прототипных плат, построенных на БИС с конфигурируемой структурой, представляется перспективным и относительно дешевым методом достижения сформулированной цели. Рассмотренные этапы проектирования серьезно тормозят появление на рынке новой продукции, поэтому современные идеи, методы, элементная база и отладочный инструментарий направлены на форсирование работ на этих этапах. Элементы — это схемы с конфигурируемой структурой и "системы на кристалле", уже рассмотренные в гл. 1. Идеи — различные варианты расширения возможностей JTAG -интерфейса, граничного сканирования, методы со-проектирования и со-верификации. Отладочный инструментарий — различные виды программного обеспечения, позволяющие оценить интересующие характеристики системы, создать аппаратуру, имеющую упрощенные процедуры ее тестирования, библиотеки и методики, ориентированные на современные методы тестирования, различные типы оценочных и отладочных плат. Приступая к рассмотрению вопросов упрощения процедуры тестирования аппаратуры, следует сразу четко определить цели, средства и назначение тестовой процедуры. Ключевыми моментами являются: - средства тестирования проекта (верификация, наблюдаемость); - средства тестирования создаваемой БИС; - выпуск пригодных к тестированию приборов и средств их тестирования; - создание и контроль тестового оборудования; - генерация тестовых последовательностей. Здесь следует подчеркнуть, что попытка объединить в одном тестовом оборудовании и одной тестовой процедуре и верификацию проекта, и локализацию неисправностей может привести разработчика к значительным временным потерям. Существенных выгод, получаемых как на этапе отладки опытных образцов, так и на этапе выпуска серийной продукции, можно достичь за счет ориентации на современные методики и, прежде всего, методы, ориентированные на применение JTAG -интерфейса. Поэтому и рассмотрим идеи, заложенные в стандарт интерфейса, аппаратуру, связанную с ним, а также методику использования этих средств на раз -
264
Проектирование систем на микросхемах программируемой логики
ных этапах разработки. Заметим, что эти принципы широко поддерживаются современными САПР.
2.6.1. JTAG -интерфейс Предпосылки возникновения Методы и средства отладки устройств, содержащих современные БИС, претерпели за последние десятилетия существенные изменения. К середине 70 -х годов используемые методы визуального, а в лучшем случае, ручного тестирования межсоединений печатных плат, особенно при крупносерийном производстве, полностью себя исчерпали. Широкое распространение получило структурное тестирование печатных плат, выполняемое с привлечением методов технологии "ложе щупов" (в английской литературе — bed of nails). Эта технология базируется на физическом доступе тестирующей аппаратуры к контролируемой плате с помощью механических щупов (подпружиненных контактов), прижимаемых к печатному монтажу. Идею метода можно понять из рис. 2.34. Входной контакт ИС
•
Реакция
Кристалл ИС
Проходной Корп провод
Выходной контакт ИС
Металлический проводник на стороне монтажа
Тестовое воздействие
Резкая
Рис. 2.34. Тестирование на основании метода контактирующих щупов
Технология выдвигает специфические требования к конструкции печатных плат. Должен быть обеспечен доступ к местам, где необходимо сформировать тестовые воздействия (стимулы), и местам, где нужно контролировать результаты воздействия тестовых сигналов (реакции). Эти требования легко выполнялись, если элементы установлены только с одной стороны печатной платы (односторонний монтаж), при двухслойном же печатном монтаже доступ к исследуемым контактам монтируемых БИС осуществляется со сто -
Глава 2. Основы технологии проектирования ИСПС
265
роны монтажа через сквозные отверстия в печатной плате. Контролируемая цепочка, как правило, содержит достаточно много разветвлений, что далеко не всегда позволяет этим способом однозначно определить действительное состояние межсоединений. Изготовление тестирующего ложа из контактных щупов может быть экономически оправданным только при промышленном и серийном выпуске печатных плат. Поэтому раньше при невыполнении любого из перечисленных условий приходилось довольствоваться методами ручного просмотра и индивидуального ручного контроля соединений. Необходимость изменения технологии тестирования печатных плат (причем, как непосредственно после изготовления печатной подложки, так и после установки на нее навесных элементов и их пайки) возникла не только из -за вышеперечисленных неудобств, но из -за того, что: - резко возросла цена погрешности изготовления печатных плат или монтажа устанавливаемых на них достаточно дорогих БИС (даже в случаях единичного изготовления). При этом произошло увеличение вероятности отказов, связанное с уменьшением физических размеров как контактных площадок для ножек БИС, так и других последствий высокоплотного размещения БИС на печатных подложках; - сегодня изготовление ориентируется на многослойные печатные платы, используются БИС с технологией SMD (surface mount device) и, как следствие, применяется двусторонняя установка элементов, контактные площадки (при числе контактов современных БИС, превышающих 500) размещаются под корпусом БИС (корпуса типа Ball Grid Array (BGA) и Fine Line BGA); - появилась возможность более широкого применения встраиваемых в БИС специальных тестирующих фрагментов (затраты на добавление тестирующих элементов существенно меньше затрат на настройку). При этом процедура разработки последовательности тестирования и организация процесса тестирования должны учитывать новые возможности современной элементной базы (в том числе специфические возможности микросхем программируемой логики). Современные системы оказываются исключительно сложными, например, телекоммуникационные и сетевые приложения требуют разработки плат с числом внутренних соединений более 5 тысяч. Такое количество цепей на одной печатной подложке кладет практический предел для применения коммерческого автоматизированного оборудования Automatic Test Equipment (ATE). Методы граничного сканирования, рассматриваемые ниже, позволяют вводить практически неограниченное количество виртуальных тестовых каналов и, тем самым, снимают указанную проблему. Сегодня каждый серьезный производитель телекоммуникационного, сетевого и другого аналогичного оборудования, ориентирующийся на сверх -
266
Проектирование систем на микросхемах программируемой логики
плотный монтаж многоконтактных БИС, должен опираться в своих проектах на методологию граничного сканирования. Многие плюсы граничного сканирования могут быть использованы даже в тех случаях, когда только одна БИС на проектируемой плате поддерживает граничное сканирование. Однако наибольшая эффективность процедур тестирования, базирующихся на методах граничного сканирования, достигается в случаях, когда большинство приборов на плате объединены в единую сканируемую цепочку. Важной характеристикой современных приборов (не только МП и ПЛИС, но и других типов БИС) является наличие в их составе и поддержка ими JTAG -интерфейса.
JTAG -интерфейс и метод граничного сканирования Исторически интерфейс JTAG (Joint Test Action Group) появился как развитие работ европейской группы (JETAG) исследователей проблем разработки пригодной для тестирования аппаратуры в рамках специальной международной группы, созданной по инициативе фирмы Texas Instrument, для выработки стандарта на производство пригодных для тестирования БИС. Результатом работы этой группы явился принятый в 1990 году стандарт ШЕЕ Std. 1149.1 и его усовершенствованная версия стандарт IEEE Std.1149.la (1993 год). Предложенный стандарт имел два различных аспекта. Один состоял в разработке протокола и принципов обмена информацией между БИС, соединенными в последовательную цепочку. В дальнейшем для определения этого аспекта стандарта будем пользоваться термином "транспортный механизм". А другой — в специальной (ориентированной на тестирование) организации связи между основными схемами кристалла БИС и ее внешними контактами. Такая организация этой связи позволяет передавать значения сигналов на выходных контактах в транспортный механизм цепочки и наоборот. Это дает возможность использовать границы БИС для задач тестирования их межсоединений без физического доступа к каждому ее выводу. Такой подход получил название метода граничного сканирования (Boundary Scan Testing, BST). Термин "граничное сканирование" представляется более точно соответствующим задаче сканирования состояния границы между основными элементами БИС и оборудованием, расположенным вне БИС, чем используемый иногда термин "периферийное сканирование". Рассмотрим более детально идеи метода граничного сканирования. На рис. 2.35 схематически показан вариант подачи стимулов и снятия реакций с "виртуальных" щупов, которые находятся на границах кристалла и конструктивно входят в состав БИС. Рис. 2.36 показывает структурную организацию БИС, поддерживающей метод BST, и позволяет понять основную концепцию граничного сканирования.
Глава 2. Основы технологии проектирования ИСПС Металлический Кристалл ИС проводник на стороне ИС Тестовое Входной воздействие контакт ИС
Металлический проводник на стороне монтажа
267
Проходной Корпус ИС Выходной контакт ИС провод
Переходное отверстие
Печатная плата
Рис. 2.35. Внешний вид печатной платы с БИС, поддерживающими метод граничного сканирования
Ячейки сканирования (Boundary Scan Cells, BSC) размещены между каждым внешним выводом микросхемы и схемами кристалла, образующими собственно БИС. Ячейки, с одной стороны, обеспечивают прием, сохранение или выдачу тестовой информации JTAG -цепочки, а с другой — различные режимы взаимодействия между внешними контактами БИС, запоминающими триггерами ячейки BSC и основными (внутренними) схемами кристалла. Реализация команд тестирования базируется на соответствии длины регистров приема/передачи информации (числа BSC -ячеек) и числа тестируемых контактов БИС, а также на настройке взаимодействия разрядов этих регистров с внутренней структурой БИС или состоянием внешних контактов БИС. Метод BST задумывался для выполнения следующих тестовых процедур: - проверки функциональной работоспособности БИС с помощью встроенных в них тестовых цепей; - проверки качества соединений между контактами различных БИС, смонтированных на печатной плате; - считывания или установки сигналов на выходных контактах БИС в штатном режиме работы БИС. Выполнение тестовых процедур предполагает совместную работу трех основных компонентов: - источника тестовых команд и данных (тестового прибора), которым обычно является программа ПК. Этот же ПК тогда выступает и в качестве анализатора результатов тестирования;
268
Проектирование систем на микросхемах программируемой логики Граница кристалла
Г
Тестовые данные
Основные схемы кристалла
ТОО Схема управления JTAG -интерфейсом
Рис. 2.36. Организация БИС, использующей метод граничного сканирования
- механизма информационной связи тестируемых БИС и тестирующего ПК. Транспортный механизм интерфейса JTAQ как раз и предусматривает последовательное перемещение тестовых команд и данных от выходных цепей ПК через цепочку последовательно соединенных БИС к входной цепи ПК; - схем управления JTAG -интерфейсом, встроенных в каждую тестируемую БИС и обеспечивающих соответствующую интерпретацию BSC -ячейками
Глава 2. Основы технологии проектирования ИСПС
269
тестовых команд ПК (реализация собственно метода граничного сканирования). Если предполагается тестирование работоспособности внутренних схем отдельных БИС печатной платы, то в архитектуру БИС должны быть дополнительно встроены аппаратура и специальные тестовые процедуры самотестирования Bilt In Self Test (BIST). Тогда запуск этой процедуры (автоматически при включении питания или/и по подаче внешней команды) позволит судить о работоспособности внутренних схем БИС. Информация об исправности или неисправности БИС будет передаваться по линиям JTAG -интерфейса. Правильное понимание организации тестовых процедур предполагает рассмотрение взаимодействия всех трех компонентов. Тестовый прибор является не только источником всех тестовых процедур, но и устройством, задающим и синхронизирующим любые действия в цепочке и в тестируемых приборах. Многие особенности организации работы 'тестового прибора и построения схем управления JTAG -интерфейсом отдельных БИС определяются организацией транспортного механизма. Вместе с тем, реализуемые ПК тестовые эксперименты определяются возможностями, заложенными в структуру отдельных БИС. Поэтому дальнейшее рассмотрение идет от транспортного механизма к анализу тестовых возможностей отдельных БИС и далее к комплексной процедуре тестирования печатной платы.
Транспортный механизм JTAG -интерфейса Интерфейс JTAG проектировался для организации информационной связи между произвольным количеством БИС на печатной плате, в приборе и т. д. Основное требование при этом состояло в минимизации числа контактов БИС, необходимого для организации информационного обмена. Обычно используется четыре (реже пять) выделенных для JTAG -интерфейса контакта БИС. Эти контакты образуют так называемый порт доступа (Test Access Port, TAP) контроллера управления портом доступа (ТАР Controller). Контакты порта доступа: - ТСК (Test Clock Input) — синхронизация передачи данных и команд; - TMS (Test Mode Select) — выбор режима передачи (считывание по переднему фронту СК); - TDI (Test Data Input) — вход данных и команд (считывание по переднему фронту ТСК); - TDO (Test Data Output) — выход данных, команд или состояния (изменение по заднему фронту ТСК); - TRST (Test ReSeT) — сброс в исходное состояние контроллера (ТАР Controller). Если на печатной плате или в устройстве установлено несколько БИС, поддерживающих JTAG -интерфейс, то эти схемы могут быть объединены в так называемую JTAG -цепочку (рис. 2.37).
270
Проектирование систем на микросхемах программируемой логики
Рис. 2.37. Структура JTAG -цепочки
Особенностью исполнения любых действий в цепочке является последовательная форма передачи по ней команд и данных. Устройство управления JTAG -цепочкой (входящее в состав тестирующего прибора) путем управления состояниями всего двух контактов TMS и ТСК может устанавливать автоматы ТАР -контроллеров всех БИС в любое требуемое состояние — исходное состояние, загрузки заданных команд в БИС цепочки, загрузки требуемых данных в регистры или чтения данных из них. В режимах передачи команд или данных каждому импульсу ТСК соответствует сдвиг на один разряд информации в совокупности регистров, расположенных в момент передачи от выходного контакта TDO тестирующего прибора до его же входного контакта TDI. Соединение нескольких БИС в последовательную цепочку заставляет, если необходимо, настроить одну из БИС цепочки на выполнение определенной команды, образовать и вдвинуть в цепочку последовательность битов с длиной, соответствующей набору команд для всех БИС цепочки. Аналогично, если требуется передать данные в определенную БИС цепочки, длина цепочки последовательности битов должна соответствовать совокупной длине сканирующих регистров БИС цепочки. Механизм граничного сканирования Механизм граничного сканирования определяется организацией сканирующих BSC -ячеек. Они обеспечивают реализацию перечисленных ниже режимов. - Режимы самотестирования БИС, режимы программирования или чтения внутрисхемных ЗУ и т. д. В этих режимах внешние контакты отключаются от внутренних схем БИС, внутрь которой передается информация из BSC -ячеек. Информация соответствует поступившим из JTAG -цепочки командам или данным. Дальнейшая последовательность действий определяется поступившей командой и, в частности, может соответствовать фиксации в ячейках BSC результирующей информации, которую также можно передать в JTAG -цепочку. - Режимы тестирования соединения БИС между собой. В этом режиме, так же как и в предыдущем случае, внешние контакты отключаются от
Глава 2. Основы технологии проектирования ИСПС
271
внутренних схем БИС. Однако, в отличие от предыдущего режима, информация из ячеек BSC поступает не внутрь БИС, а наружу на ее внешние выходные контакты. Фиксация в ячейках BSC сигналов, поступивших на входные (или двунаправленные) контакты, позволяет судить о наличии или отсутствии реального соединения соответствующей группы контактов. Анализ этой информации осуществляется тестирующим прибором путем ее передачи по JTAG -цепочке. Режим тестирования штатной работы БИС. В этом режиме сохраняется требуемое соединение внешних контактов БИС и внутренних схем кристалла. Фиксация в ячейках BSC значений сигналов от всех контактов БИС (в задаваемый из JTAG -цепочки момент времени) и последующая их передача в тестирующий прибор позволяет проектировщику получить интересующую его информацию. Значения внутренних сигналов тестируемой системы становятся известными без организации физического доступа к контактам контролируемых БИС. К следующей ячейке Вход
Фиксация
Тестирование
От предыдущей ячейки Рис. 2.38. Структура сканирующей ячейки
Структурная схема сканирующих ячеек, позволяющих обеспечить реализацию описанных выше режимов, в своей основе имеет вид, приведенный на рис. 2.38. Схема содержит два мультиплексора и два D -триггера. Один из них, Т1, является триггером в сдвигающем регистре данных JTAG -цепочки: в состоянии ввода/вывода данных информация сдвигается по цепочке от предыдущей к следующей BSC -ячейке. В этих же триггерах (при другом состоянии входного мультиплексора) может фиксироваться входная информация BSC -ячеек. Триггер Т2 является триггером -защелкой, буферизирующим
272
Проектирование систем на микросхемах программируемой лотки
данные основного сдвигающего регистра. Работа ячейки зависит от режима использования. В рабочем режиме информация со входа ячейки передается на выход, соединяя выходной контакт БИС с внутренними ресурсами БИС, но при этом входная информация ячейки может фиксироваться в триггере Т1 сдвигающего регистра. В большинстве тестовых режимов вход и выход ячейки разъединены. Входная информация ячейки может при этом фиксироваться в триггере Т1, а выходная информация будет определяться содержимым триггера Т2.
Рис. 2.39. Структура устройства управления граничным сканированием
Интерпретацию команд, поступающих из тестирующего прибора, и настройку БИС на выполнение определенной тестовой процедуры осуществляет устройство управления граничным сканированием (ГС). По сути, устройство управления является интерфейсным элементом между BSC -ячейками и тестирующим прибором. Структурная схема устройства управления приведена на рис. 2.39. Основные и обязательные элементы устройства управления это три регистра (регистр команд (IR), регистр пропуска (Bypass) и ре -
Глава 2. Основы технологии проектирования ИСПС
273
гистр данных (DR), выходной мультиплексор (MUX) и контроллер управления (ТАР Controller). Основным регистром является регистр данных (часто называемый сканирующим регистром), образованный из последовательно соединенных триггеров Т1 (см. рис. 2.38) сканирующих ячеек. Регистр данных служит источником или приемником данных при выполнении в JTAG -цепочках любых команд. С точки зрения устройства управления ГС регистр данных является одним из трех сдвигающих регистров, включаемых между контактом для подачи входной информации (контакт TDI) и контактом для получения выходной информации (контакт TDO). Организацию различных режимов работы устройства управления ГС обеспечивает дешифратор команд. В цикле записи команд в устройство управления ГС в регистре -защелке дешифратора команд фиксируется следующая команда к исполнению. Код очередной команды вдвигается в сдвигающий регистр — m -разрядный регистр команд (как правило, после включения питания в этот же регистр заносится идентификационный код БИС). Одноразрядный сдвигающий регистр, регистр пропуска, предназначен для ускорения работы JTAG -интерфейса. В режимах загрузки/выгрузки данных регистр обеспечивает обходной путь для сдвигов многоразрядных данных, не относящихся к данной БИС.
Команды граничного сканирования Структура сканирующих ячеек и организация устройства управления граничным сканированием позволяют соотнести с каждой требуемой тестовой процедурой выполнение определенной команды, поступающей из тестирующего прибора. Стандартом предусмотрена обязательность поддержания четырех команд граничного сканирования: EXTEST, SAMPLE/PRELOAD, BYPASS и INTEST. Вместе с тем, допускается введение дополнительных команд, упрощающих работу с JTAG -цепочками или тестируемыми БИС. Для решения задач самотестирования БИС предусмотрены две команды стандарта JTAG — INTEST и RUNBIST. Они предназначены для запуска процедуры автономного тестирования содержимого кристалла. Команда RUNBIST производит тестирование кристалла без привлечения каких -либо внешних данных. Выполнение команды приводит к запуску встроенной в кристалл тестирующей схемы. Результаты процедуры тестирования заносятся в регистр DR. Данные, зафиксированные в регистре DR после завершения команды, позволяют однозначно определить, исправна БИС или нет. Команда INTEST проверяет функционирование БИС путем подачи данных от тестирующего прибора. Запуск процедуры самотестирования, основанной на данных зафиксированных в регистрах сканирования DR, вызывает вы -
274
Проектирование систем на микросхемах программируемой логики
полнение тестовой процедуры основных схем кристалла. Завершение тестовой процедуры приводит к фиксации в регистре DR результата тестирования, который позволяет однозначно определить, исправна БИС или нет. Для тестирования внешних соединений БИС на печатной плате предусмотрено использование команды EXTEST. Стандарт оговаривает, что код операции этой команды должен содержать все нули. Исполнение команды предполагает отключение внутренних схем кристалла от внешних контактов (оно осуществляется установкой сигнала "тестирование" на рис. 2.38). Состояния выходных контактов БИС определяются информацией, находящейся в регистрах данных DR БИС. В начале выполнения команды в буферных регистрах DR на фронте сигнала "захват" фиксируется состояние сигналов на внешних контактах БИС, после этого в следующей фазе этой команды зафиксированные данные (при включенном сигнале "сдвиг" на мультиплексоре 1) могут выдвигаться из БИС и замещаться вновь подаваемыми данными, и, наконец, на завершающей фазе команды, обновляется состояние регистров DR (а значит, и состояния выходных контактов БИС) на фронте сигнала "фиксация". Хотя команда EXTEST позволяет производить тестирование межсоединений без привлечения каких -либо дополнительных команд, чаще всего она используется совместно с нижерассматриваемой командой SAMPLE/PRELOAD, выполняющей роль команды, загружающей информацию в регистр данных. Для контроля поведения БИС в рабочих режимах тестируемой системы стандартом предусмотрено сканирование значений сигналов, присутствующих на внешних контактах БИС. Эту задачу выполняет команда SAMPLE/PRELOAD. Поскольку ее исполнение не предполагает отключение внутренних схем кристалла от внешних контактов (инверсное состояние сигнала "тестирование" на рис. 2.38), то в начале выполнения команды в буферных регистрах DR по фронту сигнала "захват" фиксируется состояние сигналов на внешних контактах БИС. Значения этих сигналов соответствуют штатному режиму работы БИС. Интерпретация содержания такого мгновенного "снимка состояния" сигналов на границе тестируемой БИС зависит от состояния других БИС, связанных с тестируемой. Если все БИС находятся в штатном режиме, то содержание "снимка" отражает протекание рабочих режимов в системе и обычно используется для целей отладки. Возможность задания произвольной конфигурации тестируемой системы (одна группа БИС системы формирует тестовые выходные сигналы, а другая группа БИС находится в рабочем режиме), позволяет организовывать совместное тестирование межсоединений и функционирования внутренних схем БИС. Команды CLAMP и HIGHZ позволяют расширить возможности тестирования межсоединений или состояния и работоспособности выбираемых пользователем групп БИС в проверяемой системе. Команда HIGHZ переводит все выходные контакты управляемой БИС в Z -состояние, а устройство управления ГС — в состояние BYPASS. При ми -
Глава 2. Основы технологии проектирования ИСПС
275
нимальности аппаратных затрат ресурсов БИС на реализацию команды ее применение особенно эффективно при тестировании систем с шинной организацией. Для БИС микропроцессоров реализация такого состояния их выходных контактов носит название "In -Circuit emulation" и упрощает использование внешних отладочных эмуляционных средств. Исполнение команды CLAMP предполагает отключение внутренних схем кристалла от внешних контактов, ее выполнение приводит к установке на выходных контактах БИС значений, соответствующих данным, зафиксированным в регистре DR, и переводу устройства управления ГС в состояние BYPASS. Команда BYPASS позволяет установить устройство управления JTAG интерфейсом в состояние сквозного пропуска данных через БИС. Стандартом предусмотрено, что код операции команды должен содержать все единицы. Команда соответствует отключению БИС от процедур тестирования без изъятия ее из JTAG -цепочки.
Устройство управления JTAG -интерфейса Основу любого устройства управления JTAG -командами составляет контроллер тестирующего порта доступа (ТАР Controller). Поведением контроллера управляет синхронный конечный автомат, состояния и переходы которого определяются значениями управляющего сигнала JTAG -цепочки (сигналом TMS, фиксируемым по переднему фронту тактового сигнала цепочки — ТСК). Контроллер формирует выходные .сигналы, управляющие поведением BSC -ячеек, — сдвиг, захват, тестирование. Диаграмма состояний автомата приведена на рис. 2.40. Условие перехода — значение сигнала TMS — показано на диаграмме цифрами 0 или 1. В диаграмме состояний можно выделить четыре базовых фрагмента: - состояние TEST -LOGIC_RESET (сброс логики тестирования); - RUN -TEST\IDLE (состояние ожидания или выполнения внутренних тестов); - режим управления вводом/выводом данных (семь состояний от SELECT DR -SCAN до UPDATE -DR); - режим управления вводом команд и чтения состояния (семь состояний от SELECT -IR -SCAN до UPDATE -IR). Основу режимов управления образуют три состояния: состояние фиксации в выдвигаемых регистрах данных на момент начала фрагмента (состояние CAPTURE -DR или CAPTURE -IR), состояние выдачи из БИС зафиксированной информации и получения новой информации в БИС (состояние SHIFT -DR или SHIFT -IR) и состояние фиксации новой информации (состояние UPDATE -DR или UPDATE -IR) на момент завершения фрагмен -
276
Проектирование систем на микросхемах программируемой логики
та. Состояния PAUSE -DR и PAUSE -IR позволяют приостанавливать продвижение информации в цепочке на произвольное количество тактов синхронизации (например, для выполнения каких -либо действий в БИС с внешним тактированием).
Рис. 2.40. Диаграмма состояний автомата контроллера
Состояния EXIT1 -DR, EXIT2 -DR, EXIT1 -IR и EXIT2 -IR имеют вспомогательный характер (в том числе для реализации альтернативных переходов), но могут оказаться полезными при реализации устройств управления расширенных вариантов интерфейса JTAG, соответствующих новым вводимым командам.
Глава 2. Основы технологии проектирования ИСПС
277
Стандарты, связанные с JTAG -интерфейсом Для широкого использования идей и методов граничного сканирования BST и принципов организации JTAG -интерфейса предложения различных фирм были включены в ряд стандартов. Наличие стандартов позволяет организовать не только обмен информацией между разработчиками БИС, разработчиками тестирующих средств и проектировщиками аппаратуры, но и обеспечить согласованную совместную работу тестируемой аппаратуры и тестирующего программного обеспечения. Стандарты позволяют однообразно описывать пользовательские системы, поддерживающие ГС и JTAG -интер фейс. К настоящему времени наибольшее распространение получили рассматриваемые ниже стандарты. Язык BSDL BSDL — Boundary -Scan Description Language — язык описания организации и архитектуры граничного сканирования в рамках одиночной БИС. Язык входит в состав стандарта IEEE Std. 1149.1 и построен как подмножество языка VHDL. Одной из основных задач, возлагаемых на язык, является создание программных средств, автоматизирующих процесс создания тестов. Файлы в формате языка описывают соответствие логических сигналов и физических контактов, набор команд, поддерживаемых ТАР контроллером, размер сканирующих JTAG -цепочек, соответствие порядка ячеек ГС в цепочке номеру внешнего контакта и тип управления внешним контактом. Язык HSDL HSDL — Hierarchical Scan Description Language (разработка фирмы Texas Instruments) — язык, ориентированный на описание информационных потоков в группе БИС, объединенных JTAG -интерфейсом. HSDL является расширением языка BSDL, совместим с ним, вводит в состав стандарта IEEE Std. 1149.1.а и построен как подмножество языка VHDL. Средства языка позволяют определить JTAG -цепочку любого уровня, т. е. последовательность БИС, объединяемых в модуле, в системе или на плате, а также допускают описание динамических или реконфигурируемых цепочек. Язык позволяет описать свойства как отдельной БИС, так и группы БИС внутри тестируемого модуля Unit Under Test (UUT). Модуль — это элемент любого уровня архитектуры выше уровня БИС (может быть платой или системой). Язык позволяет: - создавать определяемые пользователем имена для описания команд сканирования и групп данных; - объединять отдельные биты тестовых последовательностей в легко управляемые подмножества битов с назначаемыми пользователем именами; - задавать условия разнообразных изменений, определяя свойства цепочек сканирования (статических, динамических или внешних относительно UUT).
278
Проектирование систем на микросхемах программируемой логики
Основной файл BSDL приборного уровня может быть аргументом соответствующего предложения файла HSDL и использоваться для организации интерактивной отладки или верификации тестируемого модуля UUT. Язык SVF Язык Serial Vector Format (SVF) был разработан фирмами Texas Instruments и Teradyne в 1991 году. Широко используется для описания тестовых векторов, посылаемых в приборы цепочки, для получения результирующих данных и маскирования любых данных. Необходимость введения формата диктовалась желанием фирм иметь шаблон данных, легко воспринимаемый широким спектром моделирующих и тестирующих программ и оборудования. Основным требованием являлась возможность использования языка на всех этапах проектирования от проектной верификации до окончательной диагностики. Другие стандарты Ряд фирм (например, ASSET InterTech, Inc.) разработали форматы макроязыков, существенно упрощающих написание различных программ. Макроязыки позволяют писать программы как для управления различными системами, так и для контроля и тестирования входящего в них оборудования. Основным достоинством макроязыков является способность расширять свои собственные возможности путем введения и определения новых понятий. Большая избыточность тестовых или загрузочных кодовых последовательностей, циркулирующих в JTAG -цепочках, и, как следствие последовательного характера передачи, значительные временные затраты на обмен, заставили разработчиков искать варианты сжатия информации. И хотя издержками такого подхода является необходимость введения языкового стандарта на метод сжатия, установка аппаратуры, свертывающей и развертывающей последовательности, целесообразность такого подхода оказалась очевидной. Все три составляющих метода сжатия получают все большее распространение. Появился стандарт на язык JAM, структуры и конструкции свертывающей и развертывающей аппаратуры типа JAM Player.
2.6.2. Проблемы и методология создания пригодной для тестирования аппаратуры Создание аппаратуры, которую можно было бы быстро продвинуть на рынок, — это задача не только быстро сделать проект, но и обеспечить быстрое производство этой аппаратуры. Кроме того, требуется сделать эту аппаратуру технологичной, а не только правильно работающей. Как обычно, при построении большого и сложного здания здесь важны все компоненты:
Глава 2. Основы технологии проектирования ИСПС
279
строительные элементы, инструментарий и разумная методология строительства, опирающаяся на стандартизацию всех составляющих. Строительные элементы тестирования могут быть отнесены к одной из двух групп, отличающихся как средствами, так и моментом применения. Первая группа — это схемы тестирования, которые входят в состав конечной продукции (БИС, печатной платы, системы и т. д.) и должны быть включены в систему до ее перехода в стадию реализации, и внешние относительно конечной продукции средства (программные пакеты и САПР), поддерживающие процедуру создания и включения тестирующих фрагментов. Вторая группа — это аппаратура и программное обеспечение, входящие в состав тестирующего оборудования, которое используется для тестирования готовой продукции. Очевидно, что эффективность работы аппаратуры второй группы оказывается зависящей не только от оборудования, используемого на этом этапе работ, но и от наличия схем тестирования, включенных в продукцию еще на этапе проектирования. Перед разработкой пригодной к тестированию аппаратуры проектировщик должен, прежде всего, определиться с применяемым инструментарием и методикой его использования. Так же как и при решении других проблем проектирования, допустимыми являются два подхода — ориентация на инструментарий автономной поддержки рассматриваемого этапа проектирования или комплексный подход, включающий работы всех этапов в один общий процесс проектирования. При очевидной целесообразности использования последнего варианта, необходимо учитывать сложности, ему сопутствующие (рост размерности решаемых задач, дороговизну требуемых САПР, резкое возрастание сложности реализации). Вследствие этих причин в настоящий момент широкого распространения комплексный подход к проблеме создания пригодной к тестированию аппаратуры еще не получил, и работы находятся на своей начальной стадии. Чуть ниже мы более подробно остановимся на основных особенностях реализации этого направления. Поскольку при комплексном подходе интегрируются решения, используемые при индивидуальном подходе, далее последовательно рассмотрим решения, характерные для отдельных этапов проектирования. Если проектировщик аппаратуры планирует опираться при выпуске конечного изделия (печатной платы или даже отдельной БИС) на возможность использования тестовых процедур граничного сканирования, то начальным и важнейшим для него действием является поиск средств, автоматизирующих выполнение соответствующих этапов проектирования. Эффективность процедуры тестирования в значительной мере будет определяться используемым программным обеспечением. Целый ряд фирм предлагает использовать для автоматизации различных этапов проектирования пригодной к тестированию аппаратуры разнообразные программные пакеты. Разобраться в наборе этих средств уже не самая простая задача. Поэтому в начале рассмотрим целесообразную организацию процедуры проектирования, а затем остановимся на возможностях, предоставляемыми САПР ведущих фирм.
280
Проектирование систем на микросхемах программируемой логики
Работы, выполняемые проектировщиком при создании проекта Стремление разработчиков использовать в своих проектах возможности, предоставляемые JTAG -интерфейсом (и граничным сканированием, в частности), должно начинаться с первых шагов проектирования. Если тестирование проекта предполагается строить на базе JTAG -интер фейса, то, прежде всего, необходим выбор элементов, обеспечивающих транспортный механизм интерфейса. Эти элементы должны иметь возможность подключаться к соответствующему оборудованию. Транспортная система может быть организована по разному — от простой цепочки (одиночная БИС) до сложных адресуемых, перестраиваемых и реконфигурируемых цепочек. Существует достаточно большое количество фирм, которые предоставляют широкую номенклатуру БИС данного целевого направления. Для более удобной организации сканирования может быть использована, например, специальная ИС адресуемого скан -порта SN74LVT8980, предназначенная для установки на отдельную плату, а для системного уровня может быть использована ИС контроллера тестовой шины SN74LVT8996. После того, как проектировщик определил средства и способы подачи и получения JTAG -последовательностей, он переходит к решению вопросов встраивания средств граничного сканирования или самотестирования в систему (это может быть отдельная БИС, печатная плата или набор таких плат). Если тестирование межсоединений в готовой продукции планируется построить на основе идей граничного сканирования, то в системе (на плате) должен быть установлен хотя бы один элемент с возможностью ГС. Интегральные схемы, поддерживающие граничное сканирование, могут быть любого типа — стандартными, полузаказными или полностью заказными. Практически любой тип стандартной продукции имеет альтернативные варианты реализации, которые, в отличие от стандартных, включают средства ГС. Подавляющее число выпускаемых в настоящее время БИС ПЛ поддерживает методы ГС либо в варианте "жестко" встроенной реализации (HW соге), либо в форме стандартных фрагментов, встраиваемых в ходе компиляции проекта (SW -core). Для реализации методов ГС в состав стандартных библиотек фирм, выпускающих схемы класса ASIC по технологии стандартных ячеек, включаются контроллеры JTAG -интерфейса и регистры ГС. Если разрабатываются полностью заказные БИС или схемы ASIC, изготавливаемые по технологии БМК, то появляется необходимость добавления к описанию проекта средств тестирования. Добавляемые фрагменты, как правило, выбираются проектировщиком со способом описания, принятым в основном проекте. Распространение получили описания на уровне регистровых передач и на уровне языков высокого уровня.
Глава 2. Основы технологии проектирования ИСПС
281
Наличие во многих приложениях фрагментов, для которых затруднена или экономически не оправдана реализация тестирования на принципах ГС, заставляет разработчиков анализировать возможность архитектурного построения системы, позволяющего охватывать тестированием и те фрагменты системы, в которых нет элементов, поддерживающих методы ГС. В настоящее время интенсивно разрабатываются формальные методы построения систем с возможностью контроля фрагментов, не охваченных ГС. Другим направлением создания надежной продукции (не отменяющим, а дополняющим методы граничного сканирования, и также опирающимся на транспортные механизмы интерфейса JTAG) является направление, связанное с таким проектированием БИС, при котором в них оказываются встроенными средства самотестирования Built -In -Self -Test (BIST). Достаточно большое число фирм занимается этим направлением, и они предлагают средства, позволяющие автоматизировать создание как аппаратуры, так и самих тестирующих последовательностей. Наибольших успехов при этом (как и следовало ожидать) удалось достичь в разработке средств, тестирующих работоспособность регулярных структур, например блоков ОЗУ. Фирмы, разрабатывающие тестовые фрагменты Hardcore или Softcore (в зависимости от технологии изготовления проектируемой БИС), не только передают их в форме интеллектуальной собственности IP, но и одновременно с этим поставляют оборудование и программное обеспечение, существенно ускоряющие процесс проектирования. САПР таких фирм, как Analogy, Cadence, Intusoft, Mentor Graphics и Synopsys позволяют не только встраивать эти фрагменты в проекты, но и учитывают их в синтезирующих и моделирующих пакетах. В результате разработчик имеет возможность выполнить полный цикл проектных верификационных работ, убеждающих его, что добавление тестовых фрагментов не привело к искажению штатной работы проекта.
Работы, выполняемые при тестировании готовой продукции После получения готовой продукции в форме БИС или печатной платы разработчик оказывается перед необходимостью выполнения настроечных и отладочных работ, для ускорения и упрощения которых и вводились средства, ориентированные на использование методов и средств граничного сканирования и JTAG -интерфейса. Процедура отладки и привлекаемое для этого оборудование, прежде всего, определяются видом тестируемой продукции. Необходимо разделять работы, выполняемые на этапе отладки лабораторных макетов и серийных образцов продукции (хотя и то, и другое базируется на возможностях JTAG -интерфейса). В простейших случаях, для проведения экспериментов с лабораторными образцами или первыми образцами опытных партий процедура
282
Проектирование систем на микросхемах программируемой логики
тестирования может опираться на обычный ПК, снабженный соответствующим программным обеспечением и имеющий загрузочный кабель, подключенный, например, к его параллельному порту. Промышленные установки, предназначенные для тестирования серийной продукции, представляют собой достаточно большие и дорогие агрегаты, а целесообразность их применения диктуется большой тиражностью выпускаемой продукции, что, в свою очередь, требует сокращения времени, необходимого для тестирования оборудования. Рассмотрим сценарий отладки лабораторного макета. Сложность проведения экспериментальных работ связана с тем, что отклонение поведения макета от ожидаемого может быть связано как с дефектом его изготовления, так и с ошибкой самого проекта. Более того, в ряде случаев может оказаться дефектным само тестирующее оборудование. Поэтому процедура выяснения причины отклонения оказывается более сложной, чем процедура, используемая при анализе серийной продукции, когда причина отклонений обусловлена только технологическими дефектами. Для проведения экспериментов проектировщик может пользоваться простейшими тестирующими программами, опирающимися на ресурсы граничного сканирования и JTAG интерфейса. На первом шаге работ проектировщик должен убедиться в работоспособности элементов, образующих JTAG -цепочку. Тестовые программы автоматически сравнивают идентификационные коды ИС, полученные из цепочки, с кодами, взятыми из справочных данных фирм -производителей ИС (фирмы поставляют такие файлы с расширением bsd). Отсутствие данных из цепочки должно заставить проектировщика использовать программы, локализующие причину и место нарушения, а несоответствие данных требует анализа и адекватных действий. На следующем шаге могут использоваться (если они включены в состав ИС) встроенные средства самотестирования. Отладочное оборудование при этом должно через JTAG -интерфейс инициировать процедуры самопроверки в проверяемых ИС. Информация, полученная из JTAG -интерфейса, после завершения процедуры самотестирования позволяет убедиться в работоспособности схем, входящих в отлаживаемую систему. После проверки работоспособности отдельных элементов печатной платы можно переходить к тестированию соединений этих элементов между собой. Если все элементы цепочки работают исправно, и в цепочке имеются ИС, поддерживающие команды и методы граничного сканирования, то существующие программы могут автоматически проверять исправность межсоединений и определять места нарушения контактов или наличия паразитных соединений. При хорошей организации тестовых последовательностей возможна локализация существующей неисправности с точностью до отдельной сканирующей ячейки. Проверяться могут не только соединения, расположенные между сканируемыми контактами, но и соединения, разделенные
Глава 2. Основы технологии проектирования ИСПС
283
достаточно простыми логическими цепями, не поддерживающими метод ГС. В последнем случае одновременно проверяются соединения и функционирование этих цепей. Убедившись в отсутствии ошибок межсоединений, проектировщик может переходить к тестированию оборудования, не поддерживающего ГС. Проверка работоспособности такого оборудования может выполняться на ресурсах JTAG -интерфейса, если проверяемые фрагменты своими входными и выходными цепями соединены с контактами сканируемых ИС. Эффективность тестирования определяется всей совокупностью задействованных элементов. Структура тестируемого фрагмента, места его подключения к источникам тестирующих сигналов и места снятия с него контрольных сигналов, организация теста — все эти вопросы должны решаться проектировщиком. Не в последнюю очередь рациональный выбор этих составляющих определяется возможностями их автоматизации. Различные фирмы предлагают здесь огромный спектр услуг, и в частности комплексы аппаратуры, программного и методического обеспечения, отличающиеся объемом и уровнем решения проблем, возникающих при автоматизации различных этапов проектирования пригодной к тестированию аппаратуры. Наибольшее распространение получили пакеты, автоматически генерирующие тестовые последовательности и шаблоны правильных реакций. Продукция различных фирм отличается и допустимой сложностью тестируемых объектов, и оборудованием, используемым для организации тестирования. Сложнее дело с пакетами, автоматизирующими процесс синтеза такой структуры фрагмента, которая может быть эффективно протестирована. Хотя построение аппаратуры, допускающей проведение тестирования в процессе ее эксплуатации, несомненно, является перспективным, удорожание при этом самой аппаратуры и процедуры ее проектирования заставляет рассматривать и альтернативные варианты. Если аппаратура отлаживаемой системы дает возможность изменения или неоднократной загрузки информации в программируемые фрагменты системы, то в этих фрагментах на этапе проверки работоспособности оборудования может размещаться тестовая информация. Раньше тестовые примеры размещались в памяти команд микропроцессорных систем, и это существенно упрощало проведение тестирования. Появление в современных системах приборов с программируемой структурой расширяет этот подход. Занесение в память конфигурации ПЛИС структуры тестового оборудования может производиться в любой требуемый момент. Поэтому конфигурация, соответствующая тестовым экспериментам, может применяться для отладки не только опытных образцов, но и серийной продукции. Тестирование опытньгх и серийных образцов, естественно, различаются полнотой, длительностью проведения и т. д. После того, как разработчик убедился в правильности монтажных соединений и работоспособности отдельных используемых ИС, в микросхемы памяти программируемых и конфигурируемых приборов может заноситься рабочая информация. Наступает этап проверки правильности функционирова -
284
Проектирование систем на микросхемах программируемой логики
ния проекта в целом. Методика проведения работ на этом этапе в основных чертах совпадает с методикой проверки функционирования отдельных фрагментов. Однако, как бы тщательно ни выполнялось проектирование, всегда остается небольшое количество (не более 5%) ошибок, нахождение которых составляет основную трудность отладки. Чаще всего это соответствует случаю, когда стабильное и "правильное" (с точки зрения разработчика) поведение проекта лишь изредка нарушается "неверным" поведением. Обычно в таких ситуациях сложнее всего обнаружить причину нарушения и выяснить условия ее возникновения. Потенциальные возможности, заложенные в стандарт граничного сканирования, и правильная отладочная тактика проектировщика могут помочь обнаружить любую, даже очень редко возникающую, ситуацию. Здесь находят применения следующие сценарии отладки, опирающиеся на возможности аппаратуры с JTAG -интерфейсом. 1. Получение мгновенных "снимков" со всех контактов всех БИС для выбранного момента времени. Информация, находящаяся на входах сканирующих ячеек, в любой момент времени может быть зафиксирована в сканирующих регистрах, а затем извлечена из системы. Все это может производиться без прерывания штатной работы системы. Помимо отладки, базирующейся на анализе граничных сигналов, все большее распространение в современных ПЛИС и SOPC получают методы внутрикристальной отладки. Существуют два подхода. Первый заключается во встраивании в проект контролирующих цепей, подключенных к цепочке регистров, функционирование которых определяется командами автомата, совпадающего по поведению и интерфейсу с ТАР -контроллером. Все эти цепи реализуются за счет использования общецелевых ресурсов ПЛИС и в окончательной конструкции устройства могут быть убраны. При втором подходе отладочные регистры уже исходно включены в состав штатных ресурсов кристалла. Чтобы минимизировать влияние контролирующих цепей на поведение основных фрагментов проекта, в реальных схемах подключение осуществляется только к глобальным и длинным линиям ПЛИС. Наличие ограничений и фиксация мест подключения контрольных точек приводят к тому, что поведение проекта может наблюдаться только в определенных местах. Применение ПЛИС с подобной организацией оказывается эффективным в тех случаях, когда отладочные средства интегрированы с САПР, занятой монтированием проекта в БИС. В этой ситуации САПР позволяет контролировать состояние сигналов, имена которых были заданы при спецификации проекта. Основным недостатком всех подходов является, как правило, достаточно длинная во времени процедура извлечения данных из цепочки, поэтому частота получения снимков оказывается не очень высокой. Другой задачей, существенной для обоих рассматриваемых подходов, является синхронизация моментов времени, связанных с фиксацией данных в сканирующих регистрах и с изменением контролируемых данных. Длина
Глава 2. Основы технологии проектирования ИСПС
285
сканирующих регистров делает проблематичной отладку в реальном масштабе времени. Наиболее сложной задачей здесь является реализация цепей, определяющих момент времени, интересующий проектировщика, и формирующих сигнал, соответствующий этому моменту. 2. Симуляция любых комбинаций сигналов на сканируемых контактах, причем сигналы могут быть направлены как наружу, так и внутрь БИС. Создаваемая комбинация сигналов (во времени и в пространстве) может быть и такой, какая не бывает в штатном режиме работы системы (или, по крайней мере, предполагается, что в системе реально такой комбинации не может быть). Подобная возможность позволяет экспериментально определить реакцию системы на "нештатную" комбинацию сигналов. 3. Если сигналы тактового генератора системы в состоянии управляться или замещаться сигналами, формируемыми тестирующим оборудованием, а проектировщика интересует в поведении отлаживаемой системы только функциональная последовательность смены состояний, то частота подачи тестирующей последовательности, передаваемой по JTAG -интерфейсу, может быть соотнесена со скоростью съема данных из регистра граничного сканирования. Таким образом формируется полностью контролируемая и управляемая тестовая процедура. Совершенно очевидно, что эффективность рассмотренных выше методик тестирования системы будет сильно зависеть от конструктивной реализации проекта. В некоторых случаях только интерактивное участие проектировщика в создании тестирующих последовательностей обеспечивает увеличение полноты тестирования. Например, проектировщик может ввести соединение штатно неиспользуемого контакта БИС ПЛ с электрической цепью, которая до того не могла быть протестирована. Наличие подобного соединения позволяет при подаче тестовой последовательности на фиктивное соединение добиться определенности тестирования. После того, как проект на тестовых примерах заработал правильно и стабильно, можно переходить к подготовке тестов для рабочих испытаний аппаратуры. Как уже отмечалось выше, требования к программам тестирования аппаратуры, в функциональной работоспособности которой практически отсутствуют сомнения, отличаются от требований, предъявляемым к программам, тестирующим серийную продукцию. Соответственно, отличаются аппаратные средства и САПР, привлекаемые для подготовки и проведения экспериментов этого этапа работ.
2.6.3. Обзор средств поддержки JTAG -интерфейса ведущими фирмами Поддержка, развитие и внедрение идей JTAG -интерфейса осуществляется различными фирмами практически по всем тем направлениям, которые были рассмотрены выше.
286
Проектирование систем на микросхемах программируемой логики
Прежде всего, аппаратная поддержка JTAG -интерфейса — средства, встраиваемые в выпускаемую продукцию и включающие: транспортные средства, расширяющие возможности JTAG -интерфейса, интеллектуальные средства, расширяющие возможности ГС, средства BIST, встраиваемые в СпИС и ИС. Затем средства, образующие саму тестирующую аппаратуру. И, наконец, программные средства, подготавливающие тестовые последовательности, программные и аппаратные средства, организующие тестирование на уровне БИС, печатных плат или систем.
Аппаратная поддержка JTAG -интерфейса Наибольшие усилия в части выпуска стандартной аппаратуры, обеспечивающей работу с JTAG -интерфейсом, прикладываются фирмами Texas Instrument (www.ti.com) и JTAG Technologies B.V. (www.jtag.com). Только TI выпускает более 40 типов коммерческой продукции этого направления. В том числе ИС, отличающиеся от стандартных только наличием встроенных средств JTAG -интерфейса. Например, вместо обычных магистральных приемопередатчиков (типа АП4, АП5, АП6) могут быть выбраны приемопередатчики фирмы Texas Instrument, поддерживающие режимы граничного сканирования. Выбор предлагаемых ИС достаточно широк — могут быть выбраны октальные приборы типа ВСТ и АВТ или ИС, предусматривающие работу с шинами (18/20 бит) типа АВТ/АВТН для питающего напряжения 5 В или LVTH для напряжения 3,3 В. Для поддержки расширенных вариантов транспортного механизма JTAG -интерфейса фирма предлагает использовать ИС адресуемого скан -порта Addressable Scan Port (ASP) типа SN74LVT8996, который обычно устанавливается на отдельной плате, а для системного уровня встраивания — контроллер тестовой шины embedded Test Bus Controller (eTBC) типа SN74LVT8980. Фирмы -производители ПЛИС в большинстве выпускаемых схем предусматривают использование JTAG -интерфейса. Однако полнота поддержки JTAG -интерфейса (число и типы поддерживаемых команд) коррелирована со сложностью ПЛИС. Иногда приходится включать в проект схему PLD из семейства БИС с превышением логической мощности по сравнению с требуемой только из -за того, что она поддерживает необходимые команды граничного сканирования. У некоторых схем фирмы Xilinx элементы JTAG интерфейса в явном виде отсутствуют и являются опционными (при их встраивании в структуру кристалла затрачиваются ресурсы PLD). Направление деятельности ряда фирм — добавление фрагментов граничного сканирования в базовую структуру проекта. Основные фрагменты — контроллер тестового доступа и ячейки сканирующих регистров. Подобные фрагменты могут встраиваться в подготовленный проект не только для
Глава 2. Основы технологии проектирования ИСПС
287
ПЛИС, но и при изготовлении проектов по заказной или полузаказной технологии. Так, например, программный пакет фирмы Synopsys (САПР носит название BSD Compiler) автоматизирует процедуру добавления фрагментов граничного сканирования к основному проекту, сопровождая ее выпуском тестов для последующего тестирования конечной продукции. САПР BSD Compiler позволяет автоматизировать процессы синтеза и верификации логики граничного сканирования в ИС, выпускаемых по заказной или полузаказной технологии. Для синтеза BSD Compiler использует описание пользовательского проекта на уровне регистровых передач (RTL) и добавляет требуемые JTAG -компоненты из фирменной библиотеки (DesignWare). Затем САПР автоматически проверяет комплексный проект на совместимость со стандартом ШЕЕ 1149.1. И на последнем этапе автоматически создает файлы на языке BSDL (Boundary Scan Description Language), предназначенные для тестирования на уровне печатных плат и для генерации функциональных и параметрических векторов для производственного тестирования. Фирма Alternative System Concepts Inc., ASC (www.ascinc.com) предлагает пакет VBIT (VHDL Built Test), который позволяет проектировщику автоматически вставлять средства JTAG -интерфейса в проекты высокой плотности, написанные на языке VHDL, еще до начала их логического синтеза. Другой разновидностью аппаратных добавлений, увеличивающих возможности тестирования БИС, является добавление к базовому проекту средств встроенного самоконтроля (BIST). Работы по этому направлению характерны для таких фирм, как Diagonal Systems, Inc. (www.diagonal.com), Fluence Technology (www.fluence.com), Genesys Testware, InterHDL (www.interhdl.com), LogicVision (www.Iogicvision.com) и Syntest. Фирмы выпускают средства, автоматизирующие различные этапы проектирования. Проекты, предназначенные для добавления средств BIST, могут использовать описание своей структуры на одном из стандартных языков описания аппаратуры, таких как Verilog, VHDL, EDIF или Spice. Продукция перечисленных фирм обеспечивает добавление BIST -функций, автоматическую генерацию тестовых векторов или моделирование отказов. Одним из представителей, поддерживающих это направление, является фирма LogicVision. Она предлагает широкий набор блоков IP, соответствующих различным видам встраиваемой тестовой продукции. Тестовая продукция поддерживает реализацию большого числа типичных приложений и содержит в том числе такие средства, как: - Memory BIST — встраиваемый IP -блок для встраиваемых динамических и статических ОЗУ; - 1C Memory BIST — законченное IP BIST -решение, представляющее собой контроллер и тестирующее обрамление элементов ОЗУ, которое ав -
288
Проектирование систем на микросхемах программируемой логики
тематически генерируется как синтезируемый RTL -объект для проектов на языках VHDL или Verilog; - PLL BIST — встраиваемые элементы тестовых цепей для цепей фазового управления Phase -Locked Loops; - Logic BIST — встраиваемые фрагменты комбинационной логики. Другим видом продукции этой фирмы является пакет Chip Test Assemble, который создает и собирает всю тестовую инфраструктуру кристалла в соответствии со стандартом IEЕЕ 1149.1, включая контроллер и регистр граничного сканирования.
Программная поддержка тестирования Естественно, что все описанные выше возможности реализуются в том случае, когда управление БИС, входящими в состав JTAG -цепочки, выполняется достаточно интеллектуальным контроллером, обеспечивающим подачу предварительно разработанных тестовых последовательностей и контроль последовательностей, получаемых в результате тестирования. Тестовые последовательности, как правило, создаются специальным программным обеспечением. Программное обеспечение, автоматизирующее процесс подготовки тестовых последовательностей, опирается на систему межсоединений, реализованных на плате и на тестирующие возможности БИС, расположенных на этой плате. Целый ряд фирм разрабатывает и поддерживает программные пакеты, автоматизирующие указанные выше тестовые процедуры. Предлагаются аппаратно -программные комплексы, выполняющие загрузку тестовых последовательностей, получение контролирующих последовательностей и анализ полученных результатов. Среди этих фирм можно указать на фирмы ASSET Intertech (www.asset -intertech.com), Corelis (www.corelis.com), GenRad, Inc. (www.genrad.com), Flynn Systems Comporation (www.flynn.com), Hewlett -Packard. Фирма JTAG Technologies B.V. предлагает, например, пакет JTAGLINK, который обеспечивает прямое соединение между схемными редакторами типовых САПР и средствами фирмы, предназначенными для автоматической генерации тестов Automatic Test Pattern Generation (ATPG). Пакет обеспечивает стыковку с большинством САПР — такими как Mentor Graphics, Cadence, Viewlogic, OrCAD, Accel, P -CAD, Synopsis, Sunario и др. Большинство фирм предлагает более простые (и, соответственно, более дешевые) пакеты. Например, фирма ACUGEN Software, Inc. (www.acugen.com) выпускает программное обеспечение, выполняющее автоматическую генерацию тестов Automatic Test Generation (ATG) для приборов программируемой логики (PLD, EPLD, FPGA и небольших GATE Array), а также приборов, поддерживающих язык описания граничного сканирования BSDL.
Глава 2. Основы технологии проектирования ИСПС
289
Примером фирмы, предлагающей комплекс технических средств, является фирма Teradyne (www.teradyne.com). Фирма разработала виртуальный тестовый набор, включающий пять средств: Virtual Interconnect Test, Virtual Component Cluster Test, Boundary Functional Test, Boundary -Scan Intelligent Diagnostics и Access Analyzer. Первые четыре модуля, генерирующих тесты, дают проектировщику свободу в выборе тестовой стратегии, базирующуюся на его тестовых объектах и с различной степенью тестового доступа. Диагностический модуль быстро изолирует тестовую неисправность, идентифицирует отказавший прибор, тип неисправности и вовлеченные цепи. Анализатор доступа обычно используется перед разводкой для помощи проектировщику разделить сканируемые и не сканируемые дефекты.
Комплексная организация поддержки тестирования Как уже отмечалось, наибольших успехов при создании пригодных к тестированию проектов Design -For -Testability (DFT) можно достичь, только соблюдая единство подхода ко всем составляющим процесса проектирования и на всех этапах создания продукции. Естественно, что такой подход могут предложить только крупные фирмы, имеющие богатый опыт разработки и выпуска САПР. Примером фирм, стоящих на позициях комплексного решения задачи проектирования пригодной к тестированию аппаратуры, являются Mentor Graphics Corporation (www.mentor.com) и Synopsys (www.synopsys.com). Фирма Synopsys при производстве пригодных к тестированию БИС предлагает автоматизировать процесс проектирования, опираясь на последовательную работу разработанных ею трех пакетов: DFT Compiler, BSD Compiler и TetraMAX ATPG. Первый пакет поддерживает создание целевого проекта, содержащего требуемые тестовые вставки, второй пакет синтезирует устройство, содержащее целевую систему, фрагменты, тестирующие ее работу и, наконец, фрагменты, поддерживающие граничное сканирование, третий пакет, опираясь на результаты синтеза собранного проекта, автоматически генерирует тестовые последовательности Automatic -test -pattern -generation. До настоящего времени синтез тестов для проектирования пригодных к тестированию проектов выполнялся путем дополнения тестовых фрагментов к основной части ASIC -проекта, и это приводило к тому, что улучшение свойств пригодности к тестированию требовало возврата к началу проектной процедуры. На рис. 2.41 показана традиционная методика добавления тестовых фрагментов к базовому проекту. Чтобы успешно решать все проблемы времени, площади и рассеиваемой мощности требуется одновременное и совместное использование новейших средств САПР для создания законченных DFT -проектов. Для успешности этой процедуры необходимо, чтобы проектировщики RTL описания проекта и проектировщики DFT работали в согласии и с единым
290
Проектирование систем на микросхемах программируемой логики
взглядом и видением проекта, используя объединенные проектные средства и потоки. Конечно, это должно предполагать, что средства DFT не будут оказывать негативного воздействия на критические временные моменты основной обработки данных в проекте.
Рис. 2 . 4 1 . Традиционная методика проектирования пригодной к тестированию аппаратуры
Требуемая технология должна удовлетворять ряду важнейших требований: - тестовая САПР должна начинать работу с уровня регистровых передач и подключаться к основному описанию для совместного синтеза; - при разводке синтезируемые для теста фрагменты должны хорошо интегрироваться с физическими проектными средствами; - тестовые фрагменты должны позволять синтезировать DFT с полной оптимизацией по введенным ограничениям.
Глава 2, Основы технологии проектирования ИСПС
291
Последовательность комплексной разработки пригодных к тестированию проектов, предлагаемая и используемая фирмой Synopsys, приведена на рис. 2.42. Из рисунка видно, что процедура проектирования с первого же этапа предполагает совместное описание устройства и средств его тестирования.
Рис. 2 . 4 2 . Последовательность разработки пригодного к тестированию ASIC - или1 SOPC -проекта
Другие подходы Приведенный выше материал был посвящен рассмотрению возможностей JTAG -интерфейса, что определялось, во -первых, его эффективностью при простоте использования, а во -вторых, слабой освещенностью этого подхода в отечественной литературе. Чтобы избежать односторонности рассмотрения, стоит упомянуть и об альтернативных вариантах организации тестовых процедур. Ряд фирм продолжает выпуск средств, опирающихся на традиционные методы и устройства. Среди них такая фирма, как SZ Testsysteme, уже более 20 лет специализирующаяся на выпуске гаммы оборудования, тестирующего системы со смешанным (цифровым и аналоговым) представлением информации и с широким диапазоном возможностей по скорости, диапазону входных напряжений. Помимо обычных методов тестирования разрабатываются методы тестирования, базирующиеся на современных технологиях и нетрадиционных методах. Так, фирма Teradyne выпускает аппаратуру для автоматической,оптиче -
292
Проектирование систем на микросхемах программируемой логики
ской проверки печатных плат Automated Optical Inspection (AOI). Фирма OptEm Engineering Inc. (www.optem.com) предлагает аппаратуру и программное обеспечение, которые анализируют печатные платы, затем отображают корпуса ИС, сопротивления и емкости для всех их внешних соединений и выдают отчет о местах потенциальных замыканий и цепях, где можно ожидать временных проблем при передаче сигналов.
2.6.4. Системные функции на основе JTAG -интерфейса Реализация возможностей, предоставляемых JTAG -интерфейсом, определяется правильной политикой на этапе подготовки использования опционных контактов БИС, т. е. на этапе выпуска проектной документации для печатных плат. Поскольку для некоторых типов БИС ПЛ контакты, предназначенные для организации JTAG -интерфейса, являются опционными, желательно, как минимум, оставлять их резервными, а лучше выводить на дополнительные контактные площадки, чтобы, при необходимости, можно было объединить БИС, находящиеся на печатной плате и поддерживающие методы граничного сканирования в единую JTAG -цепочку. Для некоторых типов ПЛИС характерно отсутствие постоянно существующих ячеек граничного сканирования и необходимо на этапах контроля межсоединений загружать в подобные БИС специально подготовленную тестовую конфигурацию, которая и позволит воспользоваться методами граничного сканирования. Подобные мероприятия дадут возможность, в случае необходимости, организовать тестирование межсоединений на изготовленной плате.
Конфигурирование БИС ПЛИС Транспортный аспект стандарта JTAG -интерфейса (стандарт IEEE Std. 1149.1) позволил стандартизировать, во -первых, прием (передачу) информации в (из) БИС, входящих в JTAG -цепочку, а во -вторых, исполнение команд JTAG контроллерами, входящими в состав каждой БИС -цепочки. В результате он оказался прекрасным инструментом для создания расширенных версий JTAG -интерфейса (enhanced JTAG interface), позволив тем самым использовать JTAG -интерфейс для решения не только задач тестирования, но и широкого круга других задач. Возможность адресного направления информации внутрь БИС, расположенной на печатной плате, и одновременное указание о запоминании этого потока информации как содержимого ПЗУ этой БИС, привел к введению специальнбго термина для такой возможности применения JTAG -интерфейса — внутрисхемное программирование (In System Programmability, ISP). При употреблении термина ISP безразлично, является ПЗУ памятью команд МП или памятью конфигурации БИС ПЛ. Если же ОЗУ находится в БИС ПЛ, и оно используется как память конфигурации схемы ПЛИС, то для такого применения JTAG -интерфейса
Глава 2. Основы технологии проектирования ИСПС
293
вводится термин "внутрисхемное реконфигурирование" (In System Reconfi gurability, ISR). Если БИС программируемой логики расположена на плате расширения с интерфейсом PCI (и поскольку по стандарту среди контактов таких плат предусмотрено наличие и контактов JTAG -интерфейса), то появляется возможность репрограммировать конфигурацию БИС платы расширения, не вынимая самой платы из компьютера. Такая возможность получила название In Site Programmability, ISP — с совпадением аббревиатуры для внутрисхемного программирования.
Развитие средств конфигурирования схем ИСПС Фирма Xilinx анонсировала выпуск первой производственной системы, решающей конфигурационные проблемы на системном уровне: технологии System АСЕ, System Advantaged Configuration Environment. Гибкость и емкость позволяет одной системе АСЕ CF, содержащей 16 -мегабайтную схему памяти (CF, CompactFlash) и управляющий контроллер, конфигурировать плату, наполненную БИС FPGA, или целый набор плат, соединенных объединительной платой. Подобная централизация упрощает процедуру конфигурирования систем, содержащих сотни БИС FPGA, позволяет заменять массив конфигурационных БИС памяти новым содержимым либо осуществлять выборочную корректировку. Чтобы изменить или корректировать конфигурацию системы, можно воспользоваться либо заменой модуля памяти (8 Гбайт), либо корректировать содержимое внутрисистемными средствами через МП -порт, либо загрузить новую конфигурацию, ориентируясь на сетевые средства, которые используют, например, технологию Internet Re configurable Logic (IRL). У проектировщиков часто возникает необходимость иметь различные модификации конфигурации. В процессе проектирования могут быть созданы рабочие, тестовые и отладочные конфигурации. Все эти конфигурации могут оказаться востребованными в различных ситуациях жизни конечной продукции.
Встраивание отладочных приборов и инструментов в ПЛИС И наконец, широкое распространение в последнее время находит использование транспортного механизма JTAG -интерфейса для обмена информацией с фрагментами БИС, предназначенными для отладки схем, расположенных внутри кристалла, что позволяет говорить о внутрисхемной или внутрикристальной отладке. Ввиду исключительной важности этого свойства для эффективного проектирования современных систем рассмотрим его несколько подробнее. Возможность использования связана с исключительно большими логическим ресурсами (по крайней мере, при постановке мощных ПЛИС в опытные образцы и возврате к более дешевым вариантам в серийном исполнении).
294
Проектирование систем на микросхемах программируемой логики
Определенные отладочные ресурсы закладывались и ранее, например, фирмой Motorola в выпускаемых ею контроллерах (в разд. 2.3 упоминался блок BDM). В схемах микроконтроллеров этой фирмы широко использовалась методика внешнего доступа к элементам программного обеспечения. Сейчас огромные внутренние ресурсы ПЛИС создают платформу для развития старых и создания новых методик. Конечно, требуемое теперь время для модификации современной схемы, включая ее перепрограммирование прямо внутри исследуемой системы, намного короче традиционной процедуры перепайки контактов или добавления ИС на свободном монтажном поле и т. д. Но есть различие поведения сигналов, выведенных на наружный контакт (для дополнительного контроля, например), и сигналов схем, находящихся внутри кристалла. Методика отладки должна учитывать возможные модификации схемы, вносимые синтезатором ПЛИС, и поэтому предпочтение стоит отдавать средствам, расположенным непосредственно около исследуемого фрагмента схемы. Выбор различных вариантов контроля поведения сигналов реализуется, например, в САПР Quartus фирмы Altera. Проектировщик может ориентироваться при отладке как на связь со встраиваемым логическим анализатором внутри БИС программируемой логики этой же фирмы АРЕХ20К (SignalTap embedded logical analisis), так и на результаты защелкивания в соединительном устройстве (MasterBlaster) внешних относительно БИС значений сигналов (до 32 сигналов), присутствующих на произвольных соединительных линиях между БИС. Для БИС ПЛ класса SOPC фирмы Triscend транспортный механизм JTAG интерфейса может использоваться не только для загрузки конфигурации и программного кода, но и для совмещенной отладки аппаратных и программных ресурсов. Через JTAG -интерфейс возможна установка аппаратных точек останова для встроенного в БИС специального блока управления точками останова (Hardware Breakpoint Unit) микроконтроллера и доступ к его основным программно -доступным элементам. К ним относятся не только стандартные предопределенные аппаратные ресурсы типа регистров таймера и т. д., но и фрагменты, построенные на программируемых элементах. Наблюдение за контролируемыми параметрами и сигналами возможно не только после остановки системы, но и в процессе ее штатной работы. В последнем случае разработчик задает временной интервал обновления отладочной информации (из -за большой длины сканирующих регистров темп такого обновления не превышает долей секунды). Фирма TI (Texas Instruments) значительное внимание уделяет проблеме анализа в реальном времени (Real -time Analysis) для отладки своих приложений, связанных с цифровой обработкой (DSP Solutions). Отладка выполняется в реальном масштабе времени. При этом решаются следующие задачи: анализ логики работы ПО, получение информации, необходимой для анализа производительности и оценки эффективности работы ПО (в том числе и
Глава 2. Основы технологии проектирования ИСПС
295
сбор статистической информации), управление, при необходимости, поведением проекта. Требования к такому подходу — встраивание предопределенных (базовых) тестовых ресурсов и ресурсов, назначаемых пользователем (разработчиком), автоматическое (без постоянного управления проектировщиком) поступление требуемых данных в отладочные средства, использование интерфейса реального времени между исследуемым устройством и отладочным средством: Real -Time Data Transfer (RTDT), JTAG или другого определяемого пользователем интерфейса. Основными требованиями к базовому тестовому оборудованию являются минимальное и предсказуемое паразитное воздействия на выполнение основных функций оборудования и его оптимальность. Точно так же, от встраиваемого разработчиком оборудования требуется наличие в нем механизмов управления его встраиванием и включение в его состав средств условного включения/выключения.
ГЛАВА 3
Языки описания дискретных устройств 3.1.Общиеположения 3.1.1. HDL -программа как модель проектируемого устройства Языковое описание устройства — это текст, сохраняемый в некотором файле или нескольких файлах, которые в совокупности составляют представление разработчика о проекте и используются на всех последующих этапах проектирования, в том числе при синтезе устройства и его моделировании. Тексты описаний в большинстве языков проектирования дискретных устройств по составу синтаксических конструкций и по интерпретации результатов их исполнения (физического или модельного) очень схожи с традиционными языками программирования. Поэтому часто такое текстовое описание называют программой на языке проектирования, или, коротко, HDL программой, а конструкции, описывающие способ формирования результатов, — операторами. HDL -программа может рассматриваться как знаковая модель дискретного устройства [1, 34]. Знаковыми моделями называют способы представления реальных или проектируемых объектов, которые не имеют физического или геометрического подобия с объектами моделирования, а отражают лишь существенные свойства объектов с использованием принятых формальных обозначений. Воспроизведение функционирования и иных свойств объекта по знаковым моделям может выполняться на основе мысленных или машинных экспериментов с ними. Знаковая модель, как всякая другая модель, обеспечивает выделение наиболее существенных для разработчика характеристик. Как правило, составитель HDL -программы абстрагируется от конкретной физической реализации, выделяя, прежде всего, воспроизведение функционирования проектируемого изделия. После выполненных прове -
298
Проектирование систем на микросхемах программируемой логики
рочных процедур на основе модели может быть построен объект, т. е. некое физическое устройство, которое подтвердит или (что при хорошем уровне моделирования мало вероятно) опровергнет предположения, заложенные в модель. Естественно, в современных условиях основную работу по интерпретации модели в физический объект выполняет компьютер, но иногда пользователь может вмешиваться в процедуру синтеза, т. е. возможны интерактивные процедуры проектирования. Современные языки позволяют строить модели (программы), характеризующиеся различной степенью приближения к будущей реализации — от внешнего описания закона функционирования до детального представления проекта на уровне вентилей или макроячеек БИС. Одним из способов сближения описания и фактической реализации является иерархическое проектирование, возможность которого предусмотрена семантикой современных языков проектирования.
Типы данных Входная информация в дискретных устройствах — цифровые сигналы, которые должны поступать в систему через контакты и далее двигаться по цепям, называемым также связями, к блокам, выполняющим те или иные преобразования, и далее на выходные контакты или к другим блокам. Входным, внутренним и выходным данным проектов сопоставляются имена связей, которым соответствуют цифровые сигналы на соответствующих входных и выходных контактах проектируемой схемы или внутренних цепях проекта. Источнику сигнала, поступающего на некоторую связь, в языках сопоставляется оператор, присваивающий значения переменной, представляющей связь или сигнал на этой связи. Такие операторы называют драйверами. Различие сигналов от связей выполняется только по контекстным признакам. Основным типом данных в языках являются данные сигнального типа, по свойствам близкие к обычным логическим данным (часто мы будем называть их просто логическими). Основное отличие логических данных в языках проектирования от логических данных языков программирования заключается в наборах допустимых значений, что более подробно будет изложено в разд. 3.1.2. Кроме того, явно или неявно подразумевается, что сигнал обладает временными характеристиками, в частности, изменение значений отображающей переменной может происходить не сразу после присвоения ей нового значения. Для удобства работы данные могут, как и в обычных языках программирования, структурироваться и объединяться в агрегаты — массивы, векторы, записи (VHDL, Verilog), группы (AHDL). В некоторых оговоренных случаях структурированные логические данные представляются в достаточно "привычных" формах, например как числа или строки. Преобразованиям логи -
Глава 3. Языки описания дискретных устройств
299
ческих данных сопоставляются определенные компоненты в структуре проектируемого устройства. Помимо данных сигнального типа применяется ряд служебных типов данных. Из них наиболее важными являются данные арифметического типа и строчные данные. Хотя программы могут предусматривать преобразования таких данных, однако эти преобразования реализуются только на этапе компиляции и, может быть, моделирования проекта. При реализации в аппаратуре используются только окончательные результаты преобразований, обычно в форме констант, задающих конфигурацию аппаратных средств.
Структура и поведение Модель, отражающая объект проектирования в форме правил преобразования входных данных в выходные, называется поведенческой. Такая точка зрения на проект представлена рис. 3.1, о. В общем случае можно записать функцию преобразования как
Y= F(A, B). Используя терминологию VHDL, назовем модуль F— PROJECT ENTITY (дословный перевод — сущность проекта), входы и выходы назовем портами (PORT). Программные модули на языке VHDL, описывающие проекты в поведенческой форме, именуют поведенческими архитектурными телами.
Рис. 3 . 1 . Поведенческое (а) и структурное (б) представление проекта
Структурная модель описывает проект в виде совокупности модулей, каждый из которых реализует определенную часть задачи, и набора связей меж -
300
Проектирование систем на микросхемах программируемой логики
ду ними. Такое представление интерпретируется рис. 3.1, б. В данном случае, очевидно, выполнена декомпозиция функции F в виде: F(A, В) = I(G(A, В), Н(А, В)). Каждый подблок (в нашем примере блоки G, Н и I), в свою очередь, может быть представлен в виде поведенческой или структурной модели. Структурная модель является естественным способом создания сложных проектов, описание которых целесообразно выполнить по иерархическому принципу. В программном модуле высшего уровня иерархии содержатся объявления портов и внутренних связей, а также так называемые декларации вхождений компонентов (INSTANTION DECLARATION), т. е. определенных синтаксисом языка указаний на включенные компоненты и способ их соединений. В VHDL такое описание называют структурным архитектурным телом. На рис. 3.2 представлен типовой набор проектных модулей и их взаимосвязей на примере VHDL. Хотя в других рассмотренных в настоящей книге языках понятие архитектурного тела явно не определяется, общая структура комплекса программных модулей иерархического проекта в разных языках имеет много общего. Рассмотрим процедуру представления иерархических проектов в языковой форме на основе дисциплины нисходящего проектирования.
Рис. 3.2. Иерархическая структура проекта
Глава 3. Языки описания дискретных устройств
301
Первым этапом проектирования по дисциплине "сверху вниз" является создание поведенческой модели высшего уровня иерархии. На рисунке этот этап отображен исходным первичным модулем ENTITY PROJECT, описывающим интерфейс проекта, и связанным с ним вторичным модулем ВВ (Behavioral Body) — описанием его поведения. Средствами используемого пакета проектирования выполняется сеанс моделирования поведения. Часто может потребоваться несколько коррекций до получения соответствия поведенческой модели заданным требованиям. Если объект является сравнительно простым, то поведенческое описание высшего уровня после отладки на модели может непосредственно передаваться в подсистему компиляции для синтеза аппаратной реализации. Однако, как показывает опыт использования САПР, при интерпретации сложных алгоритмов возникают ситуации, когда компилятор "навязывает" неоптимальные решения. Использование детализации описания позволяет смягчить эффект такого навязывания, усилить влияние разработчика на окончательную реализацию. Некоторые конструкции программ, особенно характеризующиеся большой глубиной вложения операторов, вообще не поддаются в распространенных САПР прямой интерпретации в соответствующее схемное решение. Кроме того, разделение общего описания на фрагменты облегчает реконфигурацию системы за счет замены некоторых блоков другими блоками аналогичного назначения, не говоря о преимуществах связанных с возможностью распараллеливания проектной процедуры между несколькими исполнителями. При структуризации проекта каждой выделенной структурной единице сопоставляется проектный модуль со своим ENTITY. Модули первого уровня декомпозиции на рисунке обозначены как М11, М12, •• -, М1n. Создается структурное архитектурное тело SB (Structural Body), соответствующее верхнему уровню иерархии. SB содержит декларацию выделенных подблоков и описание необходимых межблочных связей. Первичное (поведенческое) описание подблока может быть построено путем "вырезания и копирования" соответствующих фрагментов текста из поведенческого тела предшествующего иерархического уровня с добавлением требуемых стандартом языка заголовков. В общем случае, возможно сохранение описания части подблоков в архитектурном теле высшего уровня иерархии в поведенческой форме. Тогда говорят о смешанных, или структурно -поведенческих телах. Важно отметить, что ENTITY целостного проекта остается без изменений. После тестирования структурированной версии описания можно перейти к структуризации подблоков, которая выполняется подобным образом. При необходимости, после каждого уровня структурная декомпозиция блоков может быть продолжена. В результате получается древовидная иерархия проекта. Процесс проектирования можно рассматривать как перемещение по дереву декомпозиции, а окончательный проект как совокупность однонаправленных путей в дереве от корня, представленного ENTITY целостного проекта, к конечным вершинам. На любом этапе декомпозиции (в том числе на ко -
302
Проектирование систем на микросхемах программируемой логики
печном и на всех промежуточных этапах) конечными вершинами являются только поведенческие тела, а промежуточные вершины представлены структурными телами. Если модуль далее не подлежит декомпозиции, он представляется только поведенческим телом. В процессе осуществления конкретного проекта полная декомпозиция требуется не всегда. На некотором этапе может оказаться выделенной совокупность операторов, которая воспроизводится некоторым модулем, присутствующим в библиотеке, поставляемой с САПР, используемой при проектировании, библиотеке предыдущих разработок проектировщика или приобретаемых у третьих фирм расширениях библиотек. Тогда достаточно в соответствующем структурном теле сослаться на этот библиотечный модуль. Однако и в этом случае общая структура проекта сохраняется. Просто ссылаясь на библиотечный модуль, проектировщик фактически подключает к своему проекту иерархическое поддерево, вершиной которого является модуль, указанный в ссылке. Само поведенческое или структурное описание подключаемого модуля от проектировщика может быть скрыто. Тестирование является одной из важнейших проектных процедур. Можно рекомендовать одновременно с разработкой программы описания проектируемого устройства изделия создавать программу для тестирования проекта. Подобная программа представляет структурную модель (SB) тестирующей установки (Test -Bench), компонентами которой, в общем случае, являются: проектируемый модуль, генератор тестирующего воздействия (Stimulator) и анализатор результатов (рис. 3.3).
К нижним уровням иерархии
Рис. 3.3. Структура модулей для тестирования проекта
Замечание В языках VHDL и VerilogHDL можно встраивать описание поведения внешних выводов, фактически, тестового воздействия, непосредственно в программу, представляющую проектируемый модуль. Тем не менее, создание модуля для
Глава 3. Языки описания дискретных устройств
303
тестирования как самостоятельной проектной единицы представляется более оправданным как с точки зрения использования Test -Bench на различных этапах реализации проекта, так и с точки зрения отделения описания фактически реализуемых и служебных модулей проекта.
Test -Bench верхнего уровня с весьма незначительными изменениями может использоваться для отладки структурированных версий описания проекта. В сложных случаях могут создаваться свои программные модули для тестирования фрагментов. Проектирование "снизу вверх" предусматривает объединение простейших модулей в более сложную структуру. Исходные модули — это решения, созданные проектировщиком на более ранних этапах работы, в ходе работ над другими проектами или доступные проектировщику через библиотеки САПР. Специфические языковые конструкции позволяют описывать последовательное объединение компонентов в группы (выделение групп осуществляется исходя из степени сильной алгоритмической и информационной связанности компонентов в целевой системе) с последующим объединением полученных фрагментов в структуры высшего уровня иерархии. Сложные проекты, как правило, создаются большими группами разработчиков. В этом случае проектирование сверху вниз более оправдано. После любого этапа декомпозиции выделенные фрагменты, для которых уже определен интерфейс и принципы функционирования, могут передаваться для детальной проработки разным исполнителям. Отметим, что важнейший элемент корпоративной работы — это проектная база данных коллективного пользования. В подобной базе должна быть установлена строгая иерархия прав доступа, но в любом случае изменение, внесенное разработчиком одного из разделов, должно быть доступно для разработчиков смежных разделов.
Стили описания проектов Возвращаясь к понятию поведенческой модели, отметим, что известны различные подходы к описанию поведения в HDL -программах. Для наглядности рассмотрения этих подходов будем использовать понятие информационного графа алгоритма (рис. 3.4). Вершинам информационного графа проектируемой системы сопоставляются элементарные действия (операторы), которые выполняются над исходными или промежуточными данными, а дугам соответствуют информационные связи [10]. Выделим основные подходы к описанию функционирования дискретных систем, иногда называемые стилями программирования. Выбор стиля программирования во многом определяется наклонностями и опытом разработчиков, но надо иметь в виду, что часто стиль существенно влияет на порождаемую системой автоматизированного проектирования реализацию.
304
Проектирование систем на микросхемах программируемой лотки a
б синхр.
Рис. 3.4. Информационный граф алгоритма: каскадная форма (а) и конвейерная форма (б)
- Последовательный стиль описания соответствует традиционным подходам к составлению компьютерных программ. Расположение и порядок исполнения операторов в тексте описания соответствует порядку прохождения данных через информационный граф. Любой оператор в тексте записывается после всех операторов, ему инцидентных, т. е. тех, с которыми он имеет связи по входу. Такое описание наиболее точно интерпретируется ярусной формой информационного графа (см. рис. 3.4, а), которая получается из исходного представления алгоритма путем упорядочения независимых примитивных операторов таким образом, что вершины каждого яруса связаны с вершинами предыдущих. Желательно, чтобы максимальное число связей осуществлялось вершинами непосредственно предшествующего яруса. Порядок записи операторов одного уровня не имеет значения. Графы с обратной связью в последовательной форме интерпретировать в HDL затруднительно, а иногда и невозможно. - Параллельный стиль предполагает асинхронное и, по возможности, одновременное исполнение операторов в реализуемом устройстве. Обычно блок, реализующий некоторый оператор, непосредственно реагирует на признак исполнения действия любым из его предшественников. Особенности моделирования поведения параллельного описания в профаммных системах последовательного типа будут рассмотрены в разд. 3.1.2. Для
Глава 3. Языки описания дискретных устройств
305
представления параллельных процессов используются такие формы записи, которые предусматривают исполнение каждого оператора после выполнения хотя бы одного любого из инцидентных ему операторов (в VHDL такие операторы называются параллельными и отличаются от последовательных по своей локализации в программе). Порядок записи параллельных операторов безразличен, допустимы обратные связи и петли. - Потоковый стиль отличается от предыдущего тем, что оператор исполняется после готовности всех предшественников данного оператора. В чистом виде потоковый принцип довольно сложен в реализации, за исключением случая линейного алгоритма или блочно -линейного алгоритма (т. е. алгоритма, разделимого на последовательно соединенные блоки, каждый из которых может иметь достаточно сложную структуру). Чаще используется его модификация — конвейер. Операторы, представляющие вершины одного яруса графа, исполняются после реализации всех операторов предыдущего яруса. Операторы одного яруса могут описываться и как последовательные, и как параллельные. Техническая реализация обычно предусматривает синхронную работу ступеней конвейера от общего синхронизирующего сигнала, причем период синхронизирующих сигналов больше максимального времени задержки элементов. На рис. 3.4, б представлена реализация того же алгоритма, что и на рис. 3.4, а. Прямоугольниками показаны вспомогательные элементы, фиксирующие состояния входов и выполняющие запуск очередной ступени в синхронные моменты времени. На управляющие входы всех вспомогательных элементов подается один и тот же сигнал. Обозначения на управляющем входе отображают относительный порядковый номер порции данных, подаваемых на очередную ступень конвейера. В случае рассинхронизации прохождения потоков данных по разным путям вставляются пустые операторы (элементы задержки), отображенные на рис. 3.4, б заштрихованными кружочками. Конвейерный стиль описания порождает конвейерные реализации, которые, как известно, обладают повышенной производительностью, т. к. во время обработки порции данных некоторой ступенью предыдущая ступень может обрабатывать следующую порцию данных. В то же время недостатком конвейера в сравнении с параллельной реализацией может стать большая задержка результатов относительно момента появления порции данных. - Автоматный стиль, в отличие от предыдущих, опирается не на модель передачи данных, а на модель переключения состояний. Стиль основан на определении некоторого множества состояний проектируемого устройства и правил перехода из одного состояния в другое в зависимости от входных сигналов. Каждому состоянию или переходу соответствует определенный набор действий. Такой подход наиболее эффективен при описании устройств, характеризующихся циклическим выполнением однотипных последовательностей преобразований, в частности управляющих устройств, процессорных модулей.
306
Проектирование систем на микросхемах программируемой логики
Целесообразный стиль создания проекта и привлекаемые для его реализации средства языка определяются структурными особенностями проектируемого устройства. В реальных проектах содержатся, как правило, структурные фрагменты различных типов, которые целесообразно описывать с привлечением различных средств, в частности стилей программирования.
3.1.2. Принципы интерпретации поведения дискретных устройств средствами моделирования Процессы в дискретных устройствах, как и вообще в реальном мире, происходят параллельно во времени, причем изменения на входах в различных частях устройства могут происходить асинхронно и относительно независимо. При моделировании такое поведение должно быть воспроизведено с требуемой степенью точности последовательными алгоритмами, реализуемыми в ЭВМ. Для правильного понимания принципов языкового описания и результатов моделирования следует достаточно четко представлять методы, заложенные в подсистемы моделирования САПР.
Моделирование и реальное время Известно два противоположных подхода к построению систем моделирования дискретных устройств — сквозное моделирование и событийное моделирование [1]. При сквозном моделировании время делится на кванты, длительность которых выбирается (с необходимой точностью) как наибольший общий делитель времен задержек компонентов. Каждый квант реального времени соответствует единице модельного времени и отображается вычислительной процедурой (шагом моделирования), состоящей из двух фаз. Частный и простейший случай — моделирование с константными задержками, т. е. равными для всех компонентов. Тогда в первой фазе последовательно выполняются вычисления состояний всех компонентов на основе сигналов, вычисленных на предыдущем шаге, а результаты сохраняются в буфере предсказанных состояний. В следующей фазе данные из буфера переписываются в рабочие ячейки, сохраняющие значение сигналов для очередного шага. Если при моделировании предполагаются произвольные задержки компонентов, то используется не простой одноступенчатый буфер предсказанных состояний, а буферы типа FIFO (первый вошел — первый вышел) для каждого компонента. Глубина каждого буфера равна задержке соответствующего компонента, выраженной в числе единиц модельного времени. Сдвиг данных в буфере выполняется после каждого шага моделирования. Таким образом, результаты, поступающие на вход такого буфера, поступят на его выход
Глава 3. Языки описания дискретных устройств
307
через время, точнее, число шагов, соответствующее выбранной модельной задержке. Некоторые особенности имеются при моделировании без учета задержек. В этом случае каждый шаг моделирования реализуется как итерационная процедура. Буфер предсказанных состояний может и не требоваться. Вычисленные состояния сразу доступны программе и используются при моделировании уже следующего компонента моделируемого устройства. Если после такого прохода по всем компонентам обнаружены изменения по сравнению с результатами предыдущего прохода, процедура повторяется до достижения установившегося состояния или до исчерпания заданного числа итераций. Когда установившееся состояние достигнуто, можно переходить к очередному шагу моделирования. Если после заданного числа итераций на каких -либо связях наблюдаются изменения сигналов, можно сделать вывод о наличии осцилляции и определить эти выходы как неопределенные. Недостатки сквозного моделирования достаточно очевидны. Это, во -первых, нерациональные затраты машинного времени, вызванные потребностью достаточно мелкой дискретизации времени и необходимостью воспроизведения на каждом шаге поведения всех компонентов, в том числе тех, на входах которых не происходит изменений сигналов. На самом деле такие компоненты программа моделирования могла бы попросту пропускать. Во вторых, налицо нерациональное использование памяти, а это, в сущности, тоже потеря производительности. При моделировании систем с большим разбросом задержек требуются сравнительно емкие FIFO -буферы предсказанных состояний. Поэтому практически все развитые системы моделирования используют событийный подход, или, как говорят, дискретную событийную модель. На каждом шаге моделирования перевычисляются состояния только тех компонентов, на входе которых в данный момент происходят изменения. Изменения логических переменных, как входных, так и промежуточных, называют событиями. Любое событие может вызвать цепочку других событий. Моделирование системы производится не для равномерно отстоящих моментов реального времени, а лишь для моментов, для которых ранее были предсказаны события. Событийная модель кроме совокупности таблиц, представляющих структуру моделируемого устройства, использует две основные структуры данных — календарь событий и поле состояний сигналов. Календарь событий — это список, каждый элемент которого представляет запись и содержит значение времени наступления события, имя изменяемого сигнала и предсказанное на интервал времени после наступления события значение этого сигнала. Элементы списка упорядочены по возрастанию времени появления событий. Перед началом моделирования в календарь событий заносятся все запланированные в эксперименте события на входах, т. е. изменения входных сигналов, а в поле состояний сигналов —
308
Проектирование систем на микросхемах программируемой логики
исходные состояния (в крайнем случае, неопределенные состояния). Каждый шаг моделирования отражает реакцию системы на одно событие и предусматривает следующую последовательность действий: 1. Из календаря выбирается запись, соответствующая очередному событию. В первом цикле выбирается первый элемент календаря событий. В дальнейшем выборке подлежит событие, у которого отметка модельного времени является ближайшей большей по сравнению с отметкой времени события, проанализированного на предыдущем шаге. Устанавливается модельное время в соответствии с указателем времени события, а новое значение сигнала, вызвавшего событие, переписывается в поле текущих состояний сигналов. 2. По имени сигнала из структурных таблиц последовательно выбираются компоненты, на входы которых подан изменяющийся сигнал, и для всех этих компонентов выполняется моделирование, заключающееся в определении характера изменения его выходных сигналов в ответ на это событие. Выполняется предсказание изменений выходных сигналов в будущие моменты модельного времени. Это называют временным распределением переходов (scheduling a transaction) выходных сигналов. Отметим, что пока выполняется цикл отработки одного события все сигналы как бы "заморожены". 3. Модификация календаря событий. При этом выполняется запись всех новых предсказанных событий в календарь. Отметка времени каждого нового события вычисляется как сумма текущего времени и времени задержки элемента, который генерирует соответствующий сигнал. Событие помещается в список вслед за имеющимся в списке событием, характеризующимся ближайшей меньшей отметкой времени. Кроме того, в ряде случаев должны удаляться некоторые события, которые имеются в календаре. Алгоритм удалений зависит от используемой модели задержки. Модели задержки, используемые в VHDL, и соответствующие правила удалений приведены в разд. 3.2.6. Если изменение входов не приводит к изменению выходов, или, как говорят, происходит поглощение события, то, естественно, календарь не изменяется. Простейший пример такой ситуации — переход "логический ноль—логическая единица " на входе элемента ИЛИ, на другом входе которого уже присутствует единица. 4. Если в календаре нет событий, предсказанных на время, позднее текущего модельного времени, то моделирование прекращается, в противном случае выполняется возврат к п. 1. Событийное моделирование без учета задержек также имеет определенную специфику. Модель и в этом случае предполагает наличие задержки, но очень малой, называемой дельта -задержкой (5 -задержка). Дельта -задержка не несет информации о реальном времени передачи сигналов, а отражает причинно -следственные связи в объекте моделирования. Если на каком либо из элементов при выполнении п. 2 описанного порядка моделирования
309
Глава 3. Языки описания дискретных устройств
предсказывается изменение сигнала, то соответствующее событие заносится в календарь после всех событий, имеющихся в данный момент в календаре и предсказанных на это же время. Отметка времени у предсказанного события такая же, как и у инициирующего события. Важным для понимания механизмов и результатов моделирования является то, что это предсказанное событие не влияет на исходные данные для воспроизведения поведения остальных компонентов в циклах моделирования, предшествующих циклу отработки этого события.
Рис. 3.5. Однофазный D -триггер
В качестве иллюстрации в табл. 3.1 показаны результаты моделирования однофазного D -триггера, схема которого приведена на рис. 3.5. В таблице представлено содержание календаря событий (одна строчка — одно событие) до моделирования, а также после моделирования с учетом задержек, принятых равными 1 не, и без учета задержек. В исходном состоянии все сигналы нулевые. Знак < - означает изменение сигнала. Таблица построена на основе файлов отчета сеансов моделирования VHDL -описания в системе Model Technology. Обратите внимание, что одно и то же время может быть присвоено нескольким событиям. События, предсказанные на одно и то же время, не упорядочены, а записываются одно за другим по мере обнаружения переходов при обработке предыдущих событий. Таблица 3.1. Результаты моделирования однофазного D -триггера Исходный календарь Время
Событие
Время
Событие
d< -1
10
Календарь после моделирования без учета задержек Время
Событие
0
0
0 10
Календарь после моделирования с учетом задержек
d< -1
10
d< -1
310
Проектирование систем на микросхемах программируемой логики
Таблица 3.1 (окончание) Исходный календарь Время
Событие
Календарь после моделирования с учетом задержек Время
Событие
Календарь после моделирования без учета задержек Время
Событие
15
clk < - 1
15
clk < - 1
15
clk < - 1
20
clk < - 0
16
Ь< -1
15
b< -1
25
d< -0
17
q< -1
15
q< -1
30
clk < - 1
20
clk < - 0
20
clk < - 0
35
clk < - 0
21
а< -1
20
а< -1
40
clk < - 1
21
b< -0
20
b< -0
45
d< -1
25
d< -0
25
d< -0
50
d< -0
30
clk < - 1
30
clk < - 1
55
clk < - 0
31
a< -0
30
a< -0
32
q < -0
30
q < -0
35
clk < - 0
35
clk < - 0
40
clk < - 1
40
clk < - 1
45
d< -1
45
d< -1
46
b< -1
45
b< -1
47
q< -1
45
q< -1
50
d< -0
50
d< -0
51
b< -0
50
b< -0
52
q < -0
50
q < -0
55
clk < - 0
55
clk < - 0
Алфавит моделирования Важной характеристикой метода моделирования цифровых устройств является количество различимых состояний сигнала. Каждому состоянию сопоставляется индивидуальный символ, совокупность символов составляет алфавит моделирования. Естественно, каждое состояние специфически воспринимается приемниками сигналов, поэтому системе моделирования определяется набор правил преобразования сигналов типовыми цифровыми элементами.
Глава 3. Языки описания дискретных устройств
311
Простейший алфавит — двоичный, содержащий набор {' о', ' 1'}. Функционирование элементов описывается по правилам алгебры логики. Моделирование на базе этого алфавита весьма экономично, но возможности моделирования ограничены. Невозможно описание шинной логики, в том числе схем, имеющих высокоимпедансное состояние на выходе (Z -co стояние), схем с открытым коллектором и подобных. Затруднено воспроизведение сбойных ситуаций, например, вызванных подачей управляющих сигналов на триггеры во время, когда информационные сигналы еще не установлены. Весьма распространен алфавит из четырех символов {'о', 'х', '1', 'Z'}. Здесь 'х' означает неопределенное состояние. Такой символ присваивается, в частности, сигналу на выходе логического элемента во время переходного процесса. Неопределенное состояние принимает выход триггера после подачи активизирующего сигнала на синхронизирующий вход при запрещенной или неопределенной комбинации сигналов на информационных входах триггера. Символ ' z ' представляет высокоимпедансное состояние порта или отключенную линию. Алфавит {'О1, 'X', ' 1 ' , 'Z'} является единственным, используемым при записи и моделировании программ, написанных на языке AHDL в системе MAX+PLUS II. Дальнейшее расширение возможностей — девятиэлементный алфавит, в котором приняты следующие символы для представления состояний связей: - 'u' — не инициализировано (сигналу в программе вообще не присваивались другие значения; обеспечивает контроль корректности инициализации); - 'z' — отключено (все источники, подключенные к связи в высокоимпе дансном состоянии); - 'х' — активное неопределенное состояние; - ' о' — активный ноль; - ' 1' — активная единица; - 'L' — слабый ноль; - 'Н' — слабая единица; - 'W' — слабое неопределенное состояние; - ' - ' — не важно (разработчик может запрограммировать переход в это состояние, если реализация алгоритма не зависит от результата; выбор конкретного значения предоставляется компилятору с целью оптимизации реализации устройства). Разница между слабыми и активными состояниями состоит в том, что слабый сигнал формируется от источников (называемых драйверами), имею -
312
Проектирование систем на микросхемах программируемой логики
щих повышенное выходное сопротивление по сравнению с активными источниками. В этом случае источник, генерирующий активный сигнал, подавляет слабый, если не отключен. Пример элемента, генерирующего слабую единицу, — буфер с открытым коллектором: на выходе у него может быть активный ноль, но слабая единица. При записи программ в VHDL пользователь может априорно задать алфавит моделирования тех или иных языковых конструкций, определяя тип сигналов — от простого двоичного, задаваемого как тип BIT (битовый) до девяти компонентного типа STD_ULOGIC. В принципе, пользователь может создавать свои типы с большим или меньшим числом символов для представления логических данных, или, что то же самое — числом воспроизводимых в модели состояний сигналов. Язык Verilog в качестве базового использует алфавит с {'о', 'х', '1', 'Z'}, однако проектировщик может присвоить драйверу сигнала специальный атрибут "уровень силы" (strength level), который позволяет моделировать вентильные и буферные компоненты, а также ключевые и резистивные схемы с учетом соотношения их выходных сопротивлений. При выборе алфавита моделирования (если это допускает система моделирования) следует учитывать, что расширенный алфавит, обеспечивая во многих случаях большую адекватность моделирования, требует больших затрат машинного времени на проведения сеансов моделирования.
3.1.3. Соглашение о правилах записи программ Программы составляются из лексических элементов, к которым относят имена (идентификаторы), ключевые (зарезервированные) слова, специальные символы, числа, текстовые символы (characters) и строки символов. Лексические элементы объединяются в синтаксические конструкции — выражения (expression). Выражение — это конструкция, которая объединяет операнды и знаки операции для формирования результата, являющегося функцией от значений операндов и семантического смысла знака операции. Любое выражение может стать операндом в другом выражении. Константные выражения содержат только определенные в языке записи значений данных и объявленные ранее в тексте имена констант (параметров). Выражения в свою очередь составляют предложения. Основные категории предложений это декларации (declaration) и операторы (statement, дословный перевод — утверждения). Главное назначение деклараций состоит в определении смысла некоторых идентификаторов. Операторы определяют действия, предусмотренные описываемым алгоритмом, иногда в неявной форме. Представление языковых конструкций в настоящей книге, кроме пояснения их содержательного смысла и примеров использования, предусматривает формальное определение синтаксиса, т. е. правил вхождения лексических элементов в эти конструкции. При записи программ необходимо строго
Глава 3. Языки описания дискретных устройств
373
придерживаться синтаксических стандартов языков. В противном случае компилятор не сможет интерпретировать предложения и будет выдавать сообщение об ошибке. Синтаксические конструкции определяются с использованием формализованных правил их записи — формул Бэкуса—Науэра (BNF). Такие формулы представляют некоторые трафареты, в которые разработчик подставляет правильно оформленные конструкции. Определяемая (или уже определенная) конструкция в BNF представляется ее названием, в данной книге на русском языке, заключенным в угловые скобки . Допускается опережающее использование конструкции, иными словами, определение конструкции далее по тексту после ее первого использования в определении другой конструкции. Сразу за определяемой конструкцией ставится знак ::=, который трактуется как "записывается в форме", после чего записывается трафарет конструкции, состоящий из лексических элементов рассматриваемого языка, определенных конструкций и специальных метасимволов, смысл которых поясняется далее. Метасимвол | определяет альтернативные возможности записи конструкции. Пара метасимволов « » — кавычки -"елочки" — ограничивают конструкцию, которую можно повторить сколько угодно раз, в том числе ни одного раза. Например: ::= « » ::= 0 | 1 | 2 | 3 | 4 | 5 | б | 7 | 8 | 9 ::= « | »
Последнюю формулу можно трактовать так: "идентификатор записывается в виде любой последовательности букв и цифр, начинающейся с буквы". Пара метасимволов [ ] — квадратные скобки — будет использоваться для отображения необязательного элемента синтаксической конструкции VHDL. Например, BNF -форма ::= [ ) ]
определяет, что список ассоциаций при вызове функции не обязателен. Но в языках Verilog и AHDL квадратные скобки используются как основные символы для выделения индексов. Поэтому при определении синтаксиса этих языков использованы неполные начертания скобок: [ и ] Во всех рассмотренных далее языках при записи идентификаторов и ключевых слов допускаются только латинские буквы. Кириллица может использоваться лишь в комментариях и текстовых константах, причем не во всех системах проектирования, поэтому такая возможность требует специальной проверки.
314
Проектирование систем на микросхемах программируемой логики
В языках VHDL и AHDL не вводится различий в использовании прописных и строчных букв (за исключением символьных данных). Так, ключевое слово, открывающее декларацию переменных, может быть записано и как VARIABLE, и как variable, а запись переменной box означает то же, что BOX, даже если варианты встречаются в одном контексте. Тем не менее, в данной книге для лучшей читаемости программ на этих языках мы будем придерживаться правила, по которому ключевые слова записываются прописными буквами, а идентификаторы — строчными. Однако Verilog HDL не допускает прописных букв для отображения ключевых слов. Поэтому в разд. 3.3, посвященном изложению основ этого языка, авторы вынужденно отказались от наглядного выделения ключевых слов. Символ "перевод строки" игнорируется известными HDL -компиляторами. Поэтому разбиение текста программ на строки произвольно. В данной книге авторы старались при записи листингов программ по возможности придерживаться правила "одна строка — одно предложение", хотя в некоторых случаях предложение будет записываться в нескольких строках. Возможны варианты, когда несколько коротких предложений размещены в одной строке. При описании синтаксиса языка VHDL синтаксические формулы даются в варианте VHDL'93. Опции, которые не поддерживаются в VHDL'87, будут подчеркиваться. И последнее. Авторы в настоящей работе не ставили своей целью полное описание синтаксиса языков. Приводятся только наиболее важные, по мнению авторов, и часто используемые в проектировании конструкции и принципы составления программ. Некоторые альтернативные BNF -пред ставления намеренно опущены, чтобы вычленить наиболее существенные варианты. Для более детального ознакомления с рядом специфических конструкций потребуется изучение соответствующих стандартов. Однако надо знать, что стандарты, являясь официальными документами, весьма сложны для понимания, если не иметь представление о принципах использования основных конструкций. Кроме того, авторы предполагают, что читатели знакомы с программированием на общеупотребительных языках, таких как Pascal и С.
3.2. Основы языка VHDL 3.2.1. Язык VHDL как программная система Язык VHDL был разработан в США в начале восьмидесятых годов по заданию Министерства обороны как язык спецификации проектов с целью обеспечения единообразного понимания подсистем различными проектными группами. В 1987 г. спецификация языка VHDL была принята в качестве
Глава 3. Языки описания дискретных устройств
315
стандарта ANSI/IEEE STD 1076 -1987, который часто называют VHDL'87. Удобства и относительная универсальность конструкций этого языка достаточно быстро привели к созданию программ моделирования систем на основании их описания в терминах VHDL. С начала девяностых годов разрабатываются прямые компиляторы VHDL программ в аппаратные реализации различных классов. Это наряду с необходимостью более адекватного представления в языке современных тенденций в цифровой схемотехнике стало стимулом усовершенствования языка и привело к созданию расширенного стандарта ANSI/IEEE STD 1076 -1993, или кратко VHDL'93 [56, 57, 58]. К тому же следует отметить, что стандарты IEEE подлежат обязательному обновлению каждые пять лет. В 1999 г. была утверждена новейшая версия стандарта IEEE STD 1076.1 -1999, известная как VHDL -AMS. Наиболее существенным нововведением VHDL -AMS является появление конструкций, обеспечивающих эффективное описание аналоговых и аналого -цифровых устройств. За основу изложения в настоящей книге принят VHDL'93. Учитывая, что VHDL'87 еще имеет достаточно широкое распространение, конструкции, которые не поддерживаются VHDL'87, отмечаются особо (подчеркиванием, как мы предупредили в предыдущем разделе). В настоящее время трудно найти САПР дискретных устройств, которая не воспринимает описания устройств на VHDL или хотя бы на его усеченных версиях. В этом смысле надо различать набор языковых конструкций, ориентированных на спецификацию и обеспечение возможности моделирования проекта, и так называемое реализуемое подмножество, т. е. подмножество, которое может непосредственно интерпретироваться схемными компонентами в окончательном проекте в рамках принятой САПР. VHDL поддерживает широкий набор задач, возникающих при проектировании. Он обеспечивает возможность описания устройств с различной степенью детализации и в различных формах, начиная от внешнего описания общих принципов функционирования до представления в форме элементарных цифровых компонентов (вентилей и триггеров). Разрешается представление через алгоритм функционирования в форме, близкой к традиционным алгоритмическим языкам (так называемое "чистое поведение"). В то же время присутствуют средства, описывающие проект как набор компонентов и связей между ними, допустимы и смешанные формы описаний. Поэтому обеспечивается возможность организации проектной процедуры как последовательной декомпозиции абстрактных спецификаций. Значительное место в языке отведено средствам моделирования, позволяющим проектировщику быстро обнаруживать ошибки и сравнивать альтернативные варианты до сравнительно дорогостоящей фактической реализации проекта. Все это уменьшает объем рутинной работы, "позволяя разработчику сконцентрироваться на стратегических решениях и сократить время доставки изделия на рынок" [34].
316
Проектирование систем на микросхемах программируемой логики
В соответствии с вышесказанным средства языка VHDL можно отнести к одному из двух разделов [52, 56] (см. рис. 3.6): - общеалгоритмический компонент, определяющий набор типов данных и операторов, обеспечивающих общее описание алгоритма функционирования; - проблемно -ориентированный компонент, включающий такие специфические и важные для описания аппаратных средств разделы, как специфические для аппаратуры типы данных, средства для описания процессов с учетом их протекания в реальном времени, средства для структурного представления проекта. Общеалгоритмический компонент по составу, смыслу и принципам использования ее составляющих мало отличается от состава традиционных языков программирования, да и форма записи (синтаксис и семантика языковых конструкций) весьма близка к традиционным языкам. Предварительно остановимся на некоторых составляющих проблемно -ориентированного компонента. В числе проблемно -ориентированных типов данных прежде всего следует отметить физический тип, используемый для моделирования поведения реальных цифровых систем. Здесь присутствует предопределенный тип — время. Пользователь может определить дополнительные типы данных, отражающих электрические (напряжения, токи, сопротивления и т. п.) или механические свойства носителя информации. Многозначная логика формально в языке не определена. Однако входящие в любой комплекс моделирования на VHDL стандартные пакеты, например std_iogic_H64, определяют целую совокупность допустимых алфавитов представления сигналов на основе их декларации как данных перечислимого типа, а также определяют правила их преобразования. Ограниченные типы данных присутствуют в ряде традиционных языков программирования, например PASCAL. Но следует иметь в виду существенное отличие. Если в PASCAL ограничение множества допустимых значений служит лишь для контроля исполнения программы, то в VHDL такое ограничение задает разрядность устройств и связей, представляющих соответствующие данные. Специфическим понятием языка VHDL является подтип. Данные, отнесенные к подтипу, сохраняют основные свойства данных базового типа и совместимы с ними в выражениях. Но для них определяются дополнительные ограничения по сравнению с базовым типом, и, возможно, дополнительные функции, которые относятся только к данным, отнесенным к подтипу. Среди средств представления поведения системы в реальном времени следует, прежде всего, отметить средства представления параллелизма в реальной системе: понятие сигнала, как единицы передаваемой информации между
1
i
Компоненты VHDL
Общеалгоритмический компонент
Проблемно -ориентированный компонент
Описание поведения (последовательные операторы)
Описание поведения во времени
I
I Структурное описание
Структурное архитектурное тело Действительные
Представление
Описание вхождений Описание конфигурации
Представление
Перечислимые
Параметры настройки Оператор условной генерации
Вызов процедуры массивы, строки Параллельные
Охраняемый блок и охранное выражение
Рис. 3 . 6 . Язык VHDL как программная система
Операторы ожидания событий
318
Проектирование систем на микросхемах программируемой логики
параллельно работающими компонентами; так называемые параллельные операторы, отражающие непосредственное взаимодействие компонентов; понятие процесса, как совокупности действий, инициируемой изменениями сигналов. При моделировании параллельный оператор интерпретируется таким образом, что он исполняется при любом изменении сигналов, являющихся его аргументами, точнее, при отработке реакции на соответствующее событие. Отметим, что моделирование на основе VHDL -описания должно выполняться на базе дискретной событийной модели. Кроме средств описания параллельных процессов определены конструкции, явно указывающие поведение объекта проектирования во времени — выражения задержки AFTER, оператор приостановки WAIT и ряд других. Средства структурного представления проекта включают оператор вхождения компонента (Component Instance Statement), задающий тип используемых структурных компонентов и способы их соединений, декларации конфигурации (Configuration Declaration), с помощью которых можно выбирать вариант реализации включаемого компонента, и ряд других конструкций языка. Из представленного предварительного обзора можно видеть, что VHDL представляет собой развитую алгоритмическую систему, позволяющую описывать разнообразные структуры и явления в информационных системах.
3.2.2. Структура проекта. ENTITY и архитектурные тела Проект в системе проектирования на основе VHDL представлен совокупностью иерархически связанных текстовых фрагментов, называемых проектными модулями. Различают первичные и вторичные проектные модули, при этом ::= | | I
Декларация ENTITY — определяет имя проекта и, необязательно, его интерфейс, т. е. порты и параметры настройки. Подчиненное ENTITY архитектурное тело описывает тем или иным способом функционирование устройства и (или) его структуру. Пакет — набор объявлений вводимых пользователем типов, переменных, констант, подпрограмм и т. п. (подобно h -файлам в языке С). Декларация пакета определяет только смысл глобальных для проекта идентификаторов. Тело пакета содержит расшифровку порядка вычисления процедур и функций пакета, определение локальных имен.
Глава 3. Языки описания дискретных устройств
319
Каждому ENTITY сопоставляется одно или и несколько архитектурных тел. Декларация пакета не требует обязательного присутствия тела пакета. Несколько вторичных модулей, соответствующих одному первичному, составляют набор возможных альтернативных реализаций объекта, представленного первичным модулем. Например, одному ENTITY может соответствовать несколько архитектурных тел, отличающихся степенью детализации описания и даже алгоритмом преобразования данных, определенных в ENTITY. Первичные и соответствующие им вторичные модули могут сохраняться в различных файлах или записываться в одном файле. Важно лишь, чтобы они были скомпилированы в общую проектную библиотеку, причем первичный модуль компилируется раньше подчиненного ему вторичного. При записи первичного и вторичного модуля в одном файле первичный модуль записывается ранее соответствующего ему вторичного. Типовой текст программы на языке VHDL имеет следующую структуру: •CVHDL программа>: : = « « » « » » « » •Составление библиотеки> : : = LIBRARY ;
Иными словами, текст представляет произвольный набор первичных и вторичных модулей, причем каждому первичному модулю может предшествовать указание на библиотеки и пакеты, информация из которых используется для построения этого модуля. Указание использования (Use Clause) применяется для различных целей с определенными модификациями синтаксиса. В данном контексте используется конструкция :: = USE .. USE ..АЬЬ
Эта запись определяет место хранения используемой информации. Вариант записи USE - ALL обеспечивает доступ ко всем модулям объявленного пакета. Отметим, что даже если несколько первичных модулей в одном программном файле ссылаются на одинаковые библиотеки и модули, декларация использования предшествует каждому первичному модулю индивидуально. Упрощенная форма синтаксиса декларации ENTITY имеет вид: ::= ENTITY IS [] [] END [ ENTITY ] ;
320
Проектирование систем на микросхемах программируемой логики
: : = GENERIC (: [ := ] «;: [ := ] » ); : : = PORT (: [] «;: [ =]» ); ::= IN | OUT | INOUT Объявление параметров настройки включается в ENTITY ДЛЯ создания проектов, которые предполагается использовать как фрагменты в разнообразных других проектах, причем возможна модификация некоторых свойств встраиваемого фрагмента, точнее выбор параметра из множества значений, определенного типом параметра. Определение портов задает имена входных (IN), ВЫХОДНЫХ (OUT) И двунаправленных (INOUT) ЛИНИЙ передачи информации и тип данных, передаваемых через порты. Объявление портов, как следует из представленных правил синтаксиса, не обязательно. Но возникает вопрос: зачем может понадобиться устройство, не имеющее входов и выходов? Оказывается, такая конструкция позволяет эффективно сочетать описание собственно проектируемого устройства и алгоритм его тестирования. Программы, создаваемые для отладки и называемые Test-Bench, обычно включают описание как самого проектируемого устройства, так и модель внешней среды, в частности генератор тестового воздействия. Такая система внутренне определена. Для параметров и входных портов можно задавать значение по умолчанию, представляемое выражением, отделенным от типа знаками :=. Эти значения принимаются, если соответствующим единицам информации не присвоены другие значения в модулях высшего уровня иерархии. Архитектурные тела представляют содержательное описание проекта. Архитектурное тело в некотором смысле подчинено соответствующему ENTITY. Различают структурные архитектурные тела (описывающие проект в виде совокупности компонентов и их соединений), поведенческие архитектурные тела (описывающие проект как совокупность исполняемых действий) и смешанные тела. Формальных признаков, по которым архитектурное тело можно было бы отнести к определенному типу, не вводится — различие в составе используемых в программе операторов. Определены следующие правила записи архитектурных тел: ::= ARCHITECTURE OF IS BEGIN END [ ARCHITECTURE ] ;
Глава 3. Языки описания дискретных устройств
32?
Здесь имя архитектуры — это любое индивидуальное имя проектного модуля. Имя ENTITY задает первичный модуль, которому подчиняется архитектурное тело. В разделе деклараций объявляются локальные для этого модуля информационные единицы — типы данных, сигналы, подпрограммы и т. д. Раздел операторов описывает правила функционирования и (или) конструирования устройства в терминах языка. Одному ENTITY может быть сопоставлено несколько архитектурных тел. Рассмотрим в качестве примера совокупность проектных модулей, представленных в листинге 3.1. Программа описывает устройство, реализующее подсчет числа разрядов входного шестнадцатиразрядного кода input, установленных в состояние логической единицы с выдачей результата в числовой форме на выход output. Одному ENTITY bit_count сопоставлено три архитектурных тела, представляющих функционирование устройства с различной степенью детализации. Формальный синтаксис операторов будет определен далее, но представляется, что читатель, знакомый с программированием в общеупотребительных языках, сможет понять суть записанных преобразований. Следует сделать только два вводных замечания. Во -первых, всякий фрагмент, начинающийся с двойного тире (--) до конца текущей строки является комментарием. Во -вторых, присвоение значения в зависимости от контекста задается либо знаком :=, либо знаком
Скалярные типы, вводимые пользователем Определение перечислимого типа имеет вид: : : = (перечислимое значение «, перечислимое значение ») : : = |
Примеры: - TYPE s t a t e IS
(S0,S1,32,S3)
Может представлять, например, набор допустимых состояний системы, для каждого состояния определяются выполняемые действия и правила перехода в другое состояние.
Глава 3. Языки описания дискретных устройств
329
- TYPE colour IS (white, black, red, green, blue, yellow, argenda)
Набор цветов. Переменные этого типа могут использоваться, например, для управления выводом на дисплей как в сеансах моделирования, так и в реальных устройствах. - TYPE s t d _ u l o g i c IS
(
'U',
'X','0','1','Z','W,'L','H','-');
Тип std_uiogic и порождаемый на его основе подтип std_logic используются для представления сигналов в девятизначном алфавите (см. разд. 3.1.3). Хотя формально эти типы не относятся к предопределенным, их определение включено в пакет std_logic_H64, являющийся неотъемлемой частью всех современных интерпретаторов языка. Иными словами, эти типы, равно как соответствующий векторный тип std_logic_vector, можно фактически считать предопределенными. Определение численных типов пользователя целесообразно, во -первых, для контроля совместимости данных в программах, а во -вторых, для точного задания разрядности слов, представляющих данные в проектируемом объекте. В общем случае определение ограниченного типа подчиняется синтаксическому правилу: ::=[ ] ::= RANGE | RANGE ::= DOWNTO | ТО
Направление (TO — увеличение, DOWNTO — уменьшение) должно быть согласовано с соотношением ограничений. Примеры: TYPE Unsigned_short IS INTEGER RANGE 0 TO 255; TYPE my_data IS INTEGER RANGE -2**(n -l)+l TO 2**(n -l) -l; TYPE input_level IS -10.0 TO +10.0;
Тип unsigned_short объединяет целые положительные числа, которые могут быть представлены в байтовом формате. Тип my_data объединяет целые в диапазоне, который объявляет пользователь через разрядность данных п. В этом случае пользователь точно указывает компилятору число разрядов, необходимое для представления данных, обеспечивая экономию ресурсов микросхемы по сравнению с неограниченным типом. При объявлении типа input_ievei базовый тип явно не задан, используется тип ограничений в соответствии с типом их фактических значений. Пусть пользователь в одном проекте вводит два типа: TYPE data IS integer RANGE О ТО 15; TYPE controle IS integer RANGE 0 TO 15;
330
Проектирование систем на микросхемах программируемой логики
Хотя с точки зрения представления эти типы равноценны, оказывается, что управляющие сигналы controle и сигналы данных data несовместимы, что облегчает контроль корректности описания.
Физические типы Наряду с предопределенным типом TIME пользователь может определить другие физические типы, которые будут отражать физические (механические, электрические или иные) свойства носителя информации. ::= RANGE UNITS = ::= RECORD ; «;>> END RECORD;
Пример. Определим тип pixel, представляющий цветовые составляющие отображения точки на экране в формате FULL COLOR (полная цветопередача), предусматривающем восьмиразрядное представление трех цветовых составляющих. TYPE pixel IS RECORD red,green,blue: integer RANGE 0 TO 255; END RECORD;
Тогда тип "видеопамять" может быть определен как TYPE video_ram IS ARRAY(integer RANGEO,integer RANGE ) OF pixel;
Экземпляр видеопамяти будет определяться, например, следующим образом: SIGNAL VRAM : video_ram (679 DOWNTO 0, 839. DOWNTO 0);
Этот экземпляр может сохранять информацию об изображении размером 680 строк по 840 элементов в строке. Выборка значения красной состав -
Глава 3. Языки описания дискретных устройств
333
ляющей верхнего левого элемента изображения из такой памяти описывается оператором Out_red 0utl Outl IF x(l) = 4' THEN s IF start='l' THEN prepare preparecontrole); Third: PROCESS ( x2,y2, controle)
Глава 3. Языки описания дискретных устройств
307
BEGIN
IF, controle='0' THEN z3 cell(i) ] => фактический параметр>»)
По форме списки соответствий настроек и порта совпадают со списком соответствий вызова подпрограмм. Но для параметров настройки фактическим параметром может быть только константное выражение, а для порта — только имя сигнала либо имя порта "главного" модуля. Нельзя объявлять в качестве фактического параметра в списке соответствий порта имя входа или выхода другого компонента. Все связи осуществляются только через объекты, объявленные в текущем архитектурном теле как сигналы. (В принципе, объявление сигналов может осуществляться в общедоступном модуле PACKAGE.)
Подобно вызову подпрограмм возможны полная и сокращенная формы записи списка соответствий. В сокращенной записи (без формальных параметров) все элементы списков соответствий записываются в том же порядке, как в списках параметров и сигналов порта данного компонента. Если используется полная форма списка соответствий, то порядок записи элементов в списке произволен. Рассмотрим для примера структурное описание устройства, изображенного на рис. 3.19. Предположим, что ENTITY и архитектурные тела модулей У, W и Z скомпилированы в рабочую библиотеку проекта. Каждому вхождению компонента в проект присвоено собственное имя. Например, компонент U1 структурной схемы реализован как модуль типа V, т. е. модуль V является его прототипом. Не вдаваясь в детали описания функционирования этих компонентов, определим, что узел U1 принимает байты данных по линии А, в зависимости от управляющих сигналов преобразует их и выдает результат на четырехбайт ный выход. Модуль W выполняет некоторые преобразования входного слова данных. В конкретной структуре компонент U2 принимает старший байт данных от компонента U1 и преобразует его. Этот байт замещает старший байт выходных данных компонента U1, и сформированный таким образом код поступает на вход компонента U3, выход которого является выходом устройства. В архитектурном теле программы описания этого устройства, представленном в листинге 3.40, после объявления прототипов компонентов определены
Глава 3, Языки описания дискретных устройств
407
сигналы: каждой линии связи сопоставляется сигнал с собственным именем. Для большей наглядности на рисунке и в тексте программы порты модулей обозначены строчными буквами, а сигналы — прописными, хотя формально это не имеет значения. Строчные и прописные буквы в обозначениях имен равнозначны, а имена портов компонентов и имена сигналов независимы и, в частности, могут совпадать.
CONT
INPUT
Рис. 3.19. Структурное представление проекта
Каждый компонент в архитектурном теле представлен своим оператором вхождения, метка которого определяет его имя в проекте, вслед за чем записано имя прототипа и списки соответствий. Если типы данных соединяемых портов компонентов совпадают, то объявляется один общий сигнал, имя которого размещается на соответствующих местах в списках соответствий портов компонентов. В данной программе примером описания такого соединения является сигнал d. При несовпадении типов данных портов, а такое может произойти при переносе проектных модулей в различные проекты, следует вводить условные модули преобразования типов. На рисунке такие "виртуальные" модули, которым при фактической реализации не сопоставляется никаких элементов, представле -
408
Проектирование систем на микросхемах программируемой логики
ны кружочками. Так старшие разряды выходного кода компонента U1, представленные группой А(31 DOWNTO 0), переименованы оператором с меткой rename и подвергнуты преобразованию в целый тип для согласования с типом данных, определенным для входного порта модуля W. Обратим внимание на форму записи списков соответствия. Для компонентов U1 и U2, прототипами которых являются модули V И W соответственно, используется сокращенная форма записи списков соответствия портов, причем для компонента U2 опущен список соответствия параметров, что означает, что принято значение по умолчанию — в данном случае width := 8. Оператор вхождения для компонента Z показывает полные формы списков соответствия. Ключевое слово OPEN в качестве формального параметра означает неиспользуемый порт. Для входного порта это соответствует использованию постоянного значения сигнала, определенного по умолчанию.
ENTITY structure_example IS PORT ( input: IN std_logic (7 DOWNTO 0 ) ; controle: IN std_logic (3 DOWNTO 0) ; s: OUT std_logic); END structure_example; ARCHITECTURE structure OF primer IS COMPONENT V PORT( A:IN std_logic_vector (7 DOWNTO 0 ) ; CONTROLE:IN std_logic_vector (3 DOWNTO 0 ) ; B: OUT std_logic_vector (31 DOWNTO 0 ) ; C:OUT std_logic); END COMPONENT; COMPONENT W GENERIC (width:integer:=8); PORT( A:IN integer RANGE 2**width -l DOWNTO 0; B: OUT integer RANGE 2**width -l DOWNTO 0 ) ; END COMPONENT; COMPONENT Z GENERIC (width:integer:=16); PORT( A: IN std_logic_vector (width -1 DOWNTO 0) C:in std_logic; B,D: OUT std_logic); END COMPONENT; SIGNAL c, e: std_logic_vector (7 DOWNTO 0); SIGNAL cI, eI -.integer RANGE 0 TO 255;—цифровые эквиваленты сигналов С и Е SIGNAL a, f: std_logic_vector(32 DOWNTO 0 ) ; SIGNAL d: std_logic;
Глава 3. Языки описания дискретных устройств
409
BEGIN Ul: v PORT MAP (input, controle, a,d); U2:W PORT MAP (cI,eI); U3:z GENERIC MAP(width=>32) PORT MAP(A=>f,C=>d, B=>S,D=>OPEN); — согласование типов данных rename: c => => => => =>
=> request_exist, priority_level[]; О, В"ХХ"; О, В"ХХ"; 1, В"11"; 1, В"10"; 1, В"01"; 1, В"00";
3.4.5. Оператор повторения Оператор повторения (FOR -GENERATE STATEMENT) в AHDL присутствует только в одной модификации — с априорно заданным числом повторений. В фактической реализации производится не просто повторение действия как такового, а реализация совокупности единообразно описанных компонентов. Синтаксис оператора повторения имеет вид: ::= FOR IN GENERATE « END GENERATE; ::= ТО
Глава 3. Языки описания дискретных устройств
481
Переменная цикла — любое имя, не совпадающее с ключевыми словами или другими идентификаторами в программе. Переменная цикла не требует специального объявления и всегда является целой. Во многих случаях повторяющиеся действия (фрагменты) представимы простыми операторами над группами. Поэтому в AHDL -программах оператор FOR -GENERATE следует использовать при описании рекуррентных алгоритмов, когда результаты исполнения некоторых циклов (фактически, выход структуры, сгенерированной на одном из проходов цикла компилятором) используются в качестве исходных данных для последующих циклов. В листинге 3.62 представлен пример описания узла контроля на четность входного байта. Для каждого i -го разряда формируется сигнал odd_carry[i+1], являющийся признаком четности совокупности этого разряда и всех предыдущих.
TITLE "odd_checker"; CONSTANT length=8; — число разрядов ( odd_in:INPUT; — вход расширения data[length -1..0]:INPUT; odd_result:output ) VARIABLE odd_carry[length..0]:node; BEGIN odd_carry[0]=odd_in; FOR i IN 0 TO length -1 GENERATE odd_carry[i+1]= odd_carry[i] $ d a t a f i ] ; END GENERATE; odd_result=odd_carry[length]; end; Завершая обзор основных операторов языка AHDL, укажем, что допустимы вложения операторов. Например, оператор повторения может включать вложенный оператор повторения, оператор выбора и т. д.
3.4.6. Описание регистровых схем Включение в проект триггерных устройств (как отдельных триггеров, так и регистров) выполняется подобно вызову других библиотечных модулей, что в AHDL трактуется как вызов функции. Пока мы ограничимся только одним из способов описания включения триггеров и регистров в проект — декларацией вхождения. В разд. 3.4.9 будет представлен еще один способ, называемый прямым вызовом функции. Там же будет подробно описан вызов функций, в том числе формальные определения синтаксиса соответствующих выражений.
482
Проектирование систем на микросхемах программируемой логики
Вхождение регистра или отдельного триггера должно быть объявлено в разделе деклараций переменных следующим образом: ::= [ [. .] ] : ; ::= LATCH ] OFF | DFFE | JKFF | JKFFE I SRFF | SRFFE | TFF | TFFE
Регистровая схема определяется как группа триггеров, т. е. с указанием диапазона индексов. В табл. 3.12 сведены триггеры, содержащиеся в библиотеке примитивов пакета MAX+PLUS II и доступные к использованию в AHDL -программах. Таблица 3.12, Триггеры, содержащиеся в библиотеке примитивов пакета MAX+PLUSII Тип регистра
Список контактов
LATCH
d, e n a , q
OFF
d, clk, clrn, prn, q
DFFE
d,
JKFF
j,k,
clk,
c l r n , prn, q
JKFFE
j,k,
clk,
c l r n , prn, ena, q
s,r,
clk,
JKFFE
s,r,
clk,
TFF
t, c l k , c l r n , prn, q
TFFE
t,
JKFF
clk,
clk,
c l r n , prn, ena, q
clrn, prn,
q
c l r n , prn, ena, q
c l r n , p r n , ena, q
В таблице, кроме имен триггеров, приведены списки предопределенных портов, где: - clk — синхросигнал (определено динамическое управление, причем положительный фронт активный); - clrn — асинхронный сброс (активный логический ноль); - prn - асинхронная установка (активный логический ноль); - ena — разрешение работы (ena=vcc разрешает запись данных в триггерах LATCH и разрешает прохождение сигнала elk в остальных типах триггеров); - d , j , k , r , s — информационные входы в соответствии с общепринятым обозначением информационных входов триггеров [3, 15, 27]; - q — выход триггера.
Глава 3. Языки описания дискретных устройств
483
Функция переходов однозначно задается типом триггера. В логической секции сигналы на входах триггеров определяются логическими выражениями. При этом вход представляется как последовательность имени регистра или триггера и имени контакта (в соответствии с табл. 3.12), разделенных точкой. Если в программе отсутствует присвоение какому -либо из управляющих входов, то по умолчанию считается, что на этот вход подана логическая единица. Выходы триггеров, представляемые в форме ,q, могут использоваться как аргументы в любых логических выражениях. Если выход триггера или регистра является также и выходом схемы, можно применить два варианта: или ввести порт со своим именем, а в логической секции выполнить присвоение порту значения выхода триггера, или объявить одно и то же имя триггера дважды: сначала в предпроектной секции со спецификацией OUTPUT и, кроме того, в секции переменных со спецификацией типа триггера. Указанные правила иллюстрируются программами, приведенными в листингах 3.63 и 3.64. Модуль, описанный листингом 3.63, представляет восьмиразрядный регистр с асинхронным сбросом и синхронной загрузкой, причем загрузка выполняется при единичном сигнале на входе load. Отметим, что отсутствие присвоения значения входу рrn означает, что этот вход пассивен. Программа из листинга 3.64 описывает счетчик с тремя состояниями с асинхронным сбросом, построенный на J -K -триггерах (JKFF). Аналог этой схемы на дискретных компонентах представлен на рис. 3.25. Отметим, что практическая реализация в микросхемах фирмы Altera отличается от представленной на рисунке. Триггеры типа J -K компилятор преобразует в соответствующую реализацию на D -триггерах, гарантируя при этом функциональную совместимость.
Рис. 3.25. Счетчик с тремя состояниями (аналог программы в листинге 3.64)
484
Проектирование систем на микросхемах программируемой логики
SUBDESIGN b u r _ r e g ( c l k , l o a d , r e s e t , d [ 7 . . 0 ] : INPUT; q[7..0] : OUTPUT; ) VARIABLE ff[7..0] : DFFE; BEGIN f f [ ] . c l k = clk;
ff[].clrn=reset ff [].ena = load; ff[].d = d [ ] ; q[] = fffj.q; END;
SUBDESIGN counts ( clk, reset:INPUT; ql,q2: OUTPUT) VARIABLE ql,q2:jkff; BEGIN
ql.clk=clk; ql.clrn=reset; q2.clk=clk; q2.clrn=reset; ql.j=!q2.q; ql.k=!q2.q; q2.j= ql.q; q2, k= q2.q; END;
Нижеприведенные профаммы описывают регистровые устройства, ориентированные на реализацию арифметических действий с сохранением результатов. Профамма, представленная листингом 3.65, описывает реверсивный счетчик. По умолчанию его разрядность равна 8 и задана в разделе параметров. Однако при включении этого модуля в качестве компонента в иерархические структуры могут задаваться иные значения (см. разд. 3.4.9). Изменение состояния счетчика выполняется по фронту сигнала clk, если при этом присутствует входной перенос (carry_in:=vcc), или контакт carry_in вообще не используется. После переполнения счетчик переходит в нулевое состояние. Выходной перенос не предусмотрен; в принципе, его роль может исполнять старший разряд счетчика, естественно, с потерей эффективной разрядности.
PARAMETERS (n=8 — разрядность ); SUBDESIGN revers_count ( clk: INPUT, reset, up_down, carry_in : input=VCC; q[n..O] : OUTPUT VARIABLE q[n..0]:dff;
Глава 3. Языки описания дискретных устройств
485
BEGIN q[].clk=clk & carry_in; q[].clrn=!reset; IF up_down==vcc THEN q[].d=q[].q+1; ELSE q[].d=q[].q - l ; END IF; END;
Программа, представленная в листинге 3.66, описывает накапливающий сумматор и, на наш взгляд, не требует специальных комментариев.
PARAMETERS (n=8); SUBDESIGN accum_add ( clk,.reset:INPUT; data[n -l..0]:INPUT; sum[n -l..0]: OUTPUT; overflow : OUTPUT — переполнение ) VARIABLE q[n..0]:dff; BEGIN q[].clk=clk;
q[].clrn=reset; q[].d=q[].q+(GND,data[]); sum[]=q[n - l . . 0 ] . q ; overflow=q[n]. q; END;
3.4.7. Монтажная логика и буферные примитивы Специфический класс встроенных функций языка AHDL — это так называемые примитивы буферов. Кроме достаточно универсального модуля TRI, используемого для представления схем с тремя состояниями на выходе, имеется ряд "приборно -ориентированных" примитивов, позволяющих включать в проект специфические ресурсы микросхем программируемой логики фирмы Altera. В общем случае, монтажная логика описывается путем записи в профамме нескольких операторов, присваивающих значение одной и той же переменной или фуппе. Такое присвоение интерпретируется как объединение по логике ИЛИ логических выражений, соответствующих правым частям этих операторов.
486
Проектирование систем на микросхемах программируемой логики
Так, совокупность присвоений Wired_or= select[1] & a l ; Wired_or= select[2] & a2: Wired_or= select[3] & a3;
воспроизводит функции монтажного ИЛИ для трех сигналов al, a2, аЗ, выбираемых кодом select [ ], и эквивалентна Wired_or=select[l] & al I Wired_or # select[2] & a2 I select[3] & a3;
Заметим, что если ни один из сигналов не выбран, принимается базовое значение, т. е. GND. Если какой -либо драйвер дает высокоимпедансное состояние, то соответствующее присвоение игнорируется, за исключением случая, когда все драйверы в высокоимпедансном состоянии — тогда выход принимает значение 'z' (это правило подобно правилам преобразования, установленном для данных подтипа STD_LOGIC в языке VHDL). Высокоимпедансное состояние не может быть присвоено сигналу через "обычное" логическое выражение или таблицу. Это состояние могут принимать только выходы примитивов TRI, OPDRN или порт, специфицированный как BIDIR. Примитив TRI имеет два входных порта и один выходной. Первый вход IN — вход данных, второй ОЕ — управляющий. При логической единице на входе ОЕ — выход повторяет вход данных, в противном случае находится в высокоимпедансном состоянии. Примитив OPDRN имеет один вход и один выход. Если на вход поступает логический нуль, то на выходе присутствует логический нуль, в противном случае выход находится в высокоимпедансном состоянии. Программа (листинг 3.67) иллюстрирует подключение двух источников (регистры v[0][] и v[1] []) на общий выход через буферы с тремя состояниями выхода под управлением кода select[]. Обратите внимание на то, что фактически присвоение значения переменной io в программе выполняется дважды, и, кроме того, допустимы присвоения значения соответствующему сигналу в модуле высшего уровня иерархии.
SUBDESIGN Double_bus_reg ( clk : INPUT; load[l..0],select[l..0] : INPUT; io[7..0] : BIDIR; ) VARIABLE v[l..0][7..0]:NODE; — два восьмиразрядных регистра W[l..0][7..0]:TRI; — два трехстабильных восьмиразрядных буфера
Глава 3. Языки описания дискретных устройств BEGIN FOR j IN 0 ТО 1 GENERATE FOR i IN 0 ТО 7 GENERATE v [ j ] [ i ] = D F F ( i o [ i ] , clk, w[j][i].oe=select[j];— — w[j][i].in=v[j][i]; —
457
load[j],); каждый буфер управляется своим сигналом разрешения и имеет свой вход
i o [ i ] = w [ j ] [ i j . o u t ; — здесь представлено по два присвоения значения — каждому биту выходного порта от одного из двух буферов. END GENERATE; END GENERATE; END;
Замечание Здесь для описания подключения регистров использована конструкция "In -Line Function Reference" (вызов функции в строке) — подробнее об этом см. разд. 3.4.9.
Примитивы CARRY и CASCADE (в языке — соответствующие функции) явно указывают компилятору на необходимость использования специфических ресурсов микросхем семейств FLEX и APEX — цепочечного логического переноса и логики прямой связи смежных элементов [4, 31]. Применение этих ресурсов может обеспечить уменьшение времени задержки в логических схемах, реализованных на основе последовательной декомпозиции логических выражений, а также уменьшить затраты коммутационных ресурсов микросхемы. Хотя синтаксически оба примитива имеют один формальный входной параметр и возвращают один результат, в качестве фактического параметра этих функций можно использовать логические выражения и таким образом определять сравнительно сложную логику связи смежных макроячеек. Фактический параметр примитива CASCADE обязательно записывается в форме логической операции И или ИЛИ, один из операндов которой это константа или выход другого примитива CASCADE, а второй операнд — произвольная логическая функция. Возвращаемое значение функции CASCADE присваивается переменной типа NODE, которая может стать аргументом следующего примитива CASCADE или использоваться в одном (и только одном) логическом выражении в операторе присваивания. Во втором случае эта переменная должна объединяться по логике И либо ИЛИ с произвольной логической функцией для формирования сигнала. В БИС семейств FLEX такая запись интерпретируется структурой, показанной на рис. 3.26. Здесь представлены две макроячейки, объединенные через каскадирующий буфер. Узел каскадирования, обозначенный С, в зависимости от записи фактического параметра примитива CASCADE выполняет операцию И либо ИЛИ, а
488
Проектирование систем на микросхемах программируемой логики
LUT реализует произвольную функцию четырех аргументов. Принцип использования примитива CASCADE иллюстрируется программой (листинг 3.68), которая представляет узел проверки двух шестнадцатиразрядных кодов на равенство. Несовпадение любой пары одноименных битов дает логическую единицу, распространяющуюся по цепочке каскадированных макроячеек.
CascOUT Рис. 3.26. Пример каскадирования макроячеек
SUBDESIGN comp_casc ( а[15..0],Ь[15..0]:INPUT; result:OUTPUT; ) VARIABLE t e m p [ 7 . . 0 ] : NODE; BEGIN temp[0]=GND; FOR j IN О ТО б GENERATE tertptj+11 - cascade* (a[2*j] $ b [ 2 * j ] ) f (a[2*j+l] $ b [ 2 * j + l ] ) # temp[j]), END GENERATE; r e s u l t = temp[7]#(a[14] $ tt (a[15] $ b [ 1 5 ] ) ; END;
Глава
3.
Языки
описания
дискретных
устройств
_
489
Логическое выражение, используемое как формальный параметр примитива CARRY, может содержать произвольную логическую функцию трех переменных, одна из которых является выходом другого, следующего в цепочке, примитива CARRY. Другая функция тех же трех переменных может использоваться как независимый выход. Наиболее часто логика CARRY служит для создания арифметических устройств. Любой i -й ячейке такой цепочки следует сопоставить оператор: Outi - .d = F1i (ai, b, с,); ci+l = CARRY (F2i (ai ,bi ,c,)); i = (0, n -1); со = const, где F1i и F2I — логические функции, реализуемые первой и второй настраиваемыми логическими схемами LUT соответствующей макроячейки. Примитивы LCELL и SOFT служат для указания компилятору на необходимость или возможность включения макроячеек в структуру реализованного устройства. Вызов функции LCELL гарантирует, что выражение, определяющее фактический параметр, будет воспроизводиться отдельно выделенной макроячейкой. Например, выражение х= а & b t с & d;
и выражение х= LCELL ( а & b) t LCELL ( с & d) ;
реализуют одну и ту же функцию. Но первая воспроизводит ее на одной макроячейке, а вторая на трех (два элемента И и один ИЛИ). Явное выделение части выражения примитивом LCELL позволяет наблюдать результат реализации соответствующей подфункции в сеансе моделирования. Дело в том, что если даже объявить вспомогательную переменную для представления части логического выражения, но записать ее формирование с помощью "обычного" присвоения, а не с использованием примитива LCELL, то в проекте такая переменная может "исчезнуть" в результате поглощения в другом выражении. Явная декомпозиция и использование LCELL могут быть полезны также для выравнивания задержек распространения сигналов по разным путям в схеме. Правда, этой возможностью следует пользоваться весьма осторожно, т. к. время распространения зависит не только и не столько от числа ячеек в цепи передачи, сколько от расположения логических ячеек и распространения сигналов по цепям связи. Примитив SOFT подобен LCELL, но предоставляет компилятору возможность использовать или не использовать выделенную ячейку для реализации логического выражения, являющегося фактическим параметром функции LCELL. Это в некоторой степени рекомендует компилятору способ декомпозиции
490
Проектирование систем на микросхемах программируемой логики
сложных выражений, если такая декомпозиция потребуется. Кроме того, присвоение вида = SOFT()
делает переменную в правой части оператора наблюдаемой в сеансах моделирования, несмотря на то, что в реализации эта переменная может быть поглощена. В целом, как отмечалось, использование приборно -зависимых буферных примитивов обеспечивает разработчику возможность частичного управления процедурой синтеза.
3.4.8. Цифровые автоматы В AHDL цифровой автомат определен как переменная перечислимого типа. Имя автомата и список допустимых значений этой переменной (состояний автомата) определяются в разделе переменных: •(декларация цифрового автомата> ::= : MACHINE [ OF BITS ( «,») ] WITH STATES (); ::= [ = ] «, [ = ] » ::=
У любого автомата по умолчанию определены три управляющих входа: - . reset — подача логической единицы на этот вход безусловно переводит автомат в исходное состояние, т. е. первое из перечисленных в списке состояний; - .с1k — автомат может изменять свое состояние по положительному фронту этого сигнала в соответствии с определенной в логической секции функции переходов; - . еnа — сигнал разрешения работы; изменение состояния (кроме сброса) может происходить только при единичном сигнале на входе епа. Если вход не используется, переключение автомата разрешено. Число состояний определяется алгоритмом работы и выполняется на этапе содержательного представления проекта. Каждому состоянию присваивается уникальное имя. Задание кода состояния не обязательно. Отметим, что методические материалы фирмы Altera [31] рекомендуют использовать сокращенную форму (без явного присвоения состояниям кодов в списке состояний и использования ключевого слова OF BITS), предоставляя назначение кодов состояния компилятору пакета MAX+PLUS II. Полагают, что автоматическое назначение состояний обеспечит лучшую оптимизацию проекта
Глава 3. Языки описания дискретных устройств
491
в соответствии выбранным разработчиком критериями качества. В таком случае влияние разработчика на выбор способа кодирования реализуется путем задания опций проекта в системе MAX+PLUS II. Может быть задано либо двоичное кодирование состояний, либо кодирование по принципу "одно состояние — один бит". Двоичное кодирование обеспечивает уменьшение числа триггеров в регистровом блоке автомата, а кодирование "одно состояние — один бит" — упрощение логической части схемы. По умолчанию для микросхем семейств МАХ используется первый способ (двоичное кодирование), а для семейств FLEX — второй. Функция переходов задается набором операторов, присваивающих переменной, представляющей автомат, значения (идентификаторов состояний) из числа объявленных в списке состояний. При этом могут использоваться и логические выражения, операторы I F -THEN, CASE, а также оператор таблицы и их сочетания. В языке AHDL входы и выходы — это обязательно логические переменные (AHDL, в отличие от VHDL, не допускает объявления входов и выходов как данных перечислимого типа, но, в отличие от Verilog HDL, в нем возможно и даже рекомендуется задавать набор состояний их именами, а не кодами). Описание автоматов Мура и автоматов Мили с асинхронными выходами совпадают по форме и отличаются только логическими соотношениями, задающими функции выходов. В автоматах Мура выход зависит только от состояния, а в автоматах Мили и от входа. Для представления автомата Мили с синхронизируемыми выходами следует его выходные переменные специфицировать как триггеры, а на входы синхронизации и установки этого "дополнительного" регистра подать те же сигналы начальной установки и синхронизации, что и на остальные управляющие входы автомата. В листинге 3.69 приведено описание автомата Мили, заданного графом переходов (рис. 3.27), с использованием оператора таблицы.
(
Замечание ) В ряде работ, в том числе [3] и материалах фирмы Altera, автомат Мили с асинхронными выходами назван просто "автоматом Мили", каноническая версия автомата Мили не рассматривается, да и автомат Мура определен иначе, чем принято здесь. Авторы пользуются классификацией автоматов, введенной в работах [15, 24], и не вправе обсуждать терминологию в пределах данной книги, но обращают внимание читателя на возможные разночтения.
SUDDESIGN my_meal ( clock, r e s e t , x i n : INPUT; y [ l . . 0 ] : OUTPUT)
492
Проектирование систем на микросхемах программируемой логики
VARIABLE meal: MACHINE WITH STATES (sO,sl,s2); y[l..0]: dff; — * * * BEGIN meal.reset=!reset; meal.clk=clock; y[].clrn= !reset; y[].clk=clock; TABLE => meal, xin meal, => 0 sO, sO, B"00" 1 => sO, si, B"01" => 0 sO, B"01" si, 1 => s2, B"10" si, => 0 s2, s2, B"01" 1 => s2, si, B"10" END TABLE; END;
1/01 0/00
1/10
0/01 Рис. 3.27. Граф переходов и выходов автомата Мили (пример)
Рис. 3.28 иллюстрирует способ реализации этого автомата при компиляции в микросхемы семейства FLEX (принято унитарное кодирование состояний) и является расшифровкой файла отчета результата компиляции в системе MAX+PLUS II. Компилятор назначил такие коды состояний: so = B"000", si = в"110", s2 = в"101". Функции логики синтезированы в форме: F1 F2 F3 F4 F5
= = = = =
xin xin xin xin xin
& & & & &
m2 ml m2 m2 m3
# # # # #
!xin & ml; !xin & m3; !m2 & m3; !xin &ml; !xin &(ml # m2);
Глава 3, Языки описания дискретных устройств
493
Если из программы исключить строку, отмеченную комментарием "***", то получим автомат Мили с асинхронными выходами, в котором выходы реализуются комбинационной логикой.
Рис. 3.28. Реализация автомата по листингу 3.69 в микросхемах типа FLEX10K
В листинге 3.70 представлена программа, интерпретирующая автомат Мура, заданный отмеченной таблицей переходов (см. табл. 3.6). Здесь вход и выход закодированы одним битом каждый, причем ХО и YO представлены логическим нулем, а X1 и Y1 — логической единицей.
494
Проектирование систем на микросхемах программируемой логики
SUBDESIGN my_moor3 ( clock, r e s e t , v:INPUT; у: OUTPUT) VARIABLE moor: machine with states(SO,S1,S2); BEGIN moor.reset=reset; moor.clk=clock; CASE moor IS WHEN s0=> IF v = g n d THEN moor= s0; ELSE moor= s i ; END I F ; WHEN sl=> IF v = g n d THEN moor= s1; ELSE moor= s 2 ; END I F ; WHEN s2=> IF v==gnd THEN moor= sO; ELSE moor= s1; END IF; END CASE; IF moor=sl THEN y=GND; ELSE y=VCC; END IF; END;
Явное кодирование состояний разработчиком, как отмечено, рассматривается в рекомендациях фирмы Altera как вспомогательная опция. В частности, это может быть полезно, если выходы регистра состояний автомата непосредственно используются как выходные сигналы, т. е. реализуется автомат Мура без выходной логики. Биты кода состояний именуются и могут использоваться в качестве аргументов логических выражений логической секции. Кроме того, допустимо бит кода состояния использовать как выход проекта. В этом случае имя бита объявляется дважды — при декларации автомата и декларации порта. Интересно, что возможно определить число битов состояния, меньше необходимого для присвоения кода всем состояниям. В этом случае объявленные биты будут "привязаны" к коду состояния, остальные же произвольно доопределятся компилятором. Программа (листинг 3.71) интерпретирует тот же автомат, что и программа (листинг 3.70), но здесь использовано явное задание одного из двух битов кода состояния, а также табличное представление функции переходов.
Глава 3. Языки описания дискретных устройств
495
SUBDESIGN my_moor3a ( clock, reset, v:INPUT; z: OUTPUT) VARIABLE moor: machine of bits (z) with states(sO= B"l", Sl= B"0", S2— В Т }; BEGIN moor.reset=reset; moor.clk=clock; TABLE => moor, v moor; => sO, 0 sO; => sO, 1 s1; => s1, 0 s1; => s1, 1 s2; => s2, 0 sO; s2, 1 => s1; END TABLE; END;
В приведенных примерах подключение автомата в сложные проекты предполагается путем передачи через порты сигналов. Используются спецификации портов INPUT и OUTPUT. Кроме того, AHDL позволяет непосредственно экспортировать и импортировать состояния автоматов. Тогда один из портов модуля -источника, представляющего управляющий автомат, специфицируется как MACHINE OUTPUT, а порт модуля -приемника — как MACHINE INPUT. Пример иерархического проекта, один из модулей которого экспортирует, а другой импортирует состояние автомата, рассмотрен далее.
3.4.9. Иерархическое проектирование в AHDL Любой проектный модуль может использоваться в качестве компонента в другом проекте. Для этого текст описания модуля верхнего уровня иерархии должен содержать ссылку на прототип включаемого модуля (подпроекта) и операторы, описывающие соединения включаемого модуля с прочими компонентами проекта. Ссылка в форме записи оператора объявления прототипа (Function Prototype Statement) может содержаться либо непосредственно в секции заголовка программы, либо в специальном файле. Такой "подключаемый" файл обычно имеет расширение inc и создается в тех случаях, когда несколько проектов содержат сходные разделы в секции заголовка (Tytle Section).
496
Проектирование систем на микросхемах программируемой логики
Подлючаемый файл может создаваться с помощью обычных текстовых редакторов. Кроме того, в системе MAX+PLUS II включаемый файл с декларацией прототипа любого проектного модуля может создаваться автоматически. Достаточно, имея в окне редактора системы текст описания этого модуля, вызвать к исполнению команду Create Default Include File меню File. Имя создаваемого в этом случае подключаемого файла совпадает с именем SUBDESIGN включаемого проектного модуля и, соответственно, с именем текстового файла, содержащего описание этого модуля. Для доступа к информации, заключенной в подключаемом файле, модуль высшего уровня иерархии должен содержать оператор включения (Include Statement) файла, записываемый в форме: :: = INCLUDE "[ ] .inс";
Текст подключаемых файлов может содержать любой набор операторов, допустимых в секции заголовка проекта, в том числе объявление прототипа. Этот текст как бы замещает при компиляции оператор включения. Путь к файлу — традиционная для DOS запись локализации файла в системе. В общем случае синтаксис оператора объявления прототипа имеет вид: ::= FUNCTION ( ) [ WITH ( )] RETURNS ( );
Список входов содержит имена портов, содержащихся в предпроектной секции прототипа и специфицированных как INPUT или MACHINE INPUT, список выходов содержит имена портов, специфицированных в описании прототипа как OUTPUT, BIDIR или MACHINE OUTPUT. Список параметров содержит имена, содержащиеся в разделе PARAMETERS текстового файла, описывающего прототип. Имена входов, выходов и параметров в декларации прототипа точно совпадают с именами соответствующих данных в программе, описывающей модуль -прототип, и заносятся в списки через запятые, причем порядок записи в списках не имеет значения. Например, если в проект включается модуль accum_add, представленный программой (листинг 3.66), следует включить в текст описания проекта декларацию прототипа (или оператор включения файла, содержащего такую декларацию) следующего вида: FUNCTION accum_add (clk, r e s e t , d a t a [ ( n - 1 } . . 0 ] ) WITH (n) RETURNS (sum[(n - 1 ) . . 0 ] , overflow);
Для модулей, поставляемых со стандартной библиотекой системы MAX+PLUS II, в системе присутствуют соответствующие подключаемые
Глава 3. Языки описания дискретных устройств
497
файлы, доступные к использованию в любых проектах, выполняемых в этой среде. Оператор включения такого файла в программе, использующей библиотечный модуль, обязателен, хотя путь можно не указывать. Прототипы примитивов (триггеров, буферных схем) автоматически подключаются к любому проекту и дополнительной декларации не требуют. Каждое конкретное использование некоторого компонента называют вхождением. Конкретизация соединений вхождения, а при необходимости также и параметров настройки, возможно двумя способами: через использование декларации вхождения (Instance Declaration) или через прямой вызов функции (In -Line -Function Reference). Декларация вхождения размещается в подсекции переменных, т. е. здесь каждому встроенному модулю присваивается собственное имя и объявляется способ его реализации — имя функции прототипа и значения параметров настройки. BNF -форма декларации вхождения имеет вид: :: = «,»: [ WITH ( = «, = ») ]
Если для параметризованного модуля в декларации вхождения отсутствует указание значения какого -либо параметра, этот параметр принимает значение, определяемое в тексте описания соответствующего модуля как "значение по умолчанию". Синтаксис декларации вхождения допускает объявление нескольких однотипных модулей, каждый их которых в проекте получает собственное имя. Отметим, что имя вхождения может содержать индексное выражение, т. е. быть именем группы. Такая запись соответствует декларации группы однотипных модулей, которые имеют одинаковое имя, но различные индексы. Переменная, представляющая состояние порта включенного модуля, записывается следующим образом: : : = .
и может использоваться в логической секции подобно другим переменным. Ограничение лишь в том, что входной порт вхождения может быть только приемником, т. е. записываться лишь в правых частях операторов присваивания, а выходной, наоборот, не может входить в правые части операторов присваивания, а используется в логических выражениях, включая левые части операторов присваивания. Как имя вхождения, так и имя порта прототипа в записи такой переменной могут содержать индексное выражение. Индексное выражение в имени вхождения должно присутствовать, если в декларации вхождения объявлена группа встраиваемых модулей. Индексное выражение в этом случае опреде -
498
Проектирование систем на микросхемах программируемой логики
ляет конкретный модуль или подгруппу из группы модулей, соединения которых представлены данным оператором. Индексное выражение в имени порта прототипа должно присутствовать, если порт прототипа является группой. Такое индексное выражение определяет, какие разряды или какой из разрядов группы определяются данным оператором. Использования Instance Declaration иллюстрируется программой, озаглавленной "two register example" (листинг 3.72). Проект содержит два регистра -защелки (lpm_latch), объединенных в группу reg[1..0] и вызываемых из библиотеки параметризованных модулей системы MAX+PLUS II. Каждый регистр загружается с общего входа din по своему синхросигналу. Выход формируется как результат побитового сравнения содержимого регистров в обратном порядке, т. е. старший разряд одного регистра сравнивается с младшим разрядом другого.
TITLE "two register example"; FUNCTION lpm_latch (data[LPM_WIDTH - 1 . . 0 ] , — входной код gate, — сигнал разрешения записи aclr, aset, aconst) — вспомогательные входы WITH (LPM_WIDTH, LPM_AVALUE) RETURNS (q[LPM_WIDTH -l..0]); — выходные данные PARAMETERS (n=8); Subdesign double_reg (loadO,loadl,reset:input; din[n -1..0]: input; eq [n -1..0]:output VARIABLE reg[1..0] : lpm_latch WITH (LPM_WIDTH=n); BEGIN reg[0].data[]=din[]; reg[0].gate=load0; reg[l].data[]=din[]; reg[l].gate=load1; reg[].aclr=reset; FOR i IN 0 to n -1 GENERATE Eq[i]= regfl].q[i] !# regfO].q[n -l - l ] ; END GENERATE; END;
Другой способ включения модулей в иерархический проект называют прямым вызовом функции (In -Line -Function Reference). Такой вызов не требует декларации вхождений в секции переменных и во многих случаях обеспечивает более компактную запись. Вызов записывается индивидуально для каж -
Глава 3. Языки описания дискретных устройств
499
дого вхождения и размещается в логической секции. Оператор вызова имеет синтаксис: ::=
= () [ WITH ()] [ RETURNS (] ::=
| ( ::= .
Уточним, что в случаях, когда функция возвращает несколько значений, фактические переменные в левой части оператора присваивания записываются как временная группа — в круглых скобках, разделенные запятыми. Все списки в рассматриваемом контексте записываются как последовательность элементов списка, разделенных запятыми. Укороченные формы записи списков соответствии предполагают позиционное сопоставление фактических и формальных параметров функций, а полные — сопоставление по имени. Позиционное сопоставление требует точного соответствия порядка следования имен и параметров в списках порядку их следования в декларации прототипа. Если какой -либо вход или параметр не используется или используется значение по умолчанию, соответствующая позиция в списке отмечается как пустая. То же касается описания входных цепей. При сопоставлении по имени порядок записи не имеет значения, важно лишь совпадение имени формального параметра с именем, указанным в декларации прототипа. Разные способы прямого вызова непараметризированных модулей иллюстрируются программой, представляющей проект MACRO (листинг 3.73). Проект содержит два четырехразрядных счетчика, первый запускается входным сигналом clk, а второй — сигналом переполнения первого. К выходу второго счетчика подключен дешифратор. Списки входов и выходов первого счетчика и дешифратора представлены с использованием сопоставления по имени, а второго счетчика — через позиционное сопоставление. Отметим, что в этом примере для декларации прототипа использованы библиотечные подключаемые файлы, но в тексте программы декларация прототипа 4 count воспроизведена для лучшего ее понимания как комментарии.
INCLUDE "4count"; INCLUDE "16dmux"; —FUNCTION 4count (clk, clrn, setn, Idn, cin, dnup, d, c, b, a) —RETURNS (qd, qc, qb, qa, cout);
500
Проектирование систем на микросхемах программируемой логики
—FUNCTION 16dmux (d, с, b, a) —RETURNS ( q n [ 1 5 . . 0 J ) ; SUBDESIGN macro ( clkl : INPUT; out[15..0] : OUTPUT; ) VARIABLE ql[3..0], q2[3..0] : NODE; carryl:node; BEGIN (ql[3..0]/carry)= 4count (.clk=clk,.dnup= GND) returns (.qd,.qc,.qb,.qa,.cout); (q2[3..0],) = 4count (carryl,,,,, GND,,,,); out[15..0]=16dmux(.(d,c,b,a)=q[3..0]); END;
Для иллюстрации задания параметров модулей рассмотрим прямой вызов модуля ipm_add_sub (настраиваемый сумматор -вычитатель) из библиотеки параметризованных модулей системы MAX+PLUS И. Прототип функции для этого модуля имеет вид: FUNCTION lpm_add_sub (cin, dataa[LPM_WIDTH -1..0], datab[LPM_WIDTH -1..0], add_sub, clock, aclr) WITH (LPM_WIDTH, LPM_REPRESENTATION, LPM_DIRECTION, ONE_INPUT_IS_CONSTANT, LPM_PIPELINE, MAXIMIZE_SPEED) RETURNS (result[LPM_WIDTH -1..0], cout, overflow);
Пусть на его основе строится восьмиразрядный сумматор в беззнаковом формате, причем его входы и выходы объявлены в проекте как переменные. Тогда прямой вызов с использованием списков с сопоставлением по имени будет иметь вид: (sum[],cout)=lpm_add_sub (.сin=gnd, . d a t a a [ ] = а [ ] , . d a t a b [ ] = b ) WITH (LPM_WIDTH=8, LPM_REPRESENTATION="UNSIGNED", LPM_DIRECTION="ADD") RETURNS(.result[],.cout);
Вызов функции при тех же условиях, но с позиционным сопоставлением, запишется так: (SUM[],cout,)=lpm_add_sub (gnd, a [ ] , b [ ] , , , ) WITH (8, "UNSIGNED", "ADD",,,);
Пример описания иерархического проекта, в котором передача информации между модулями осуществляется через порты MACHINE OUTPUT и MACHINE INPUT представлен программами mult16_l6 (листинг 3.74),
Глава 3. Языки описания дискретных устройств
501
part_mult (листинг 3.75) и mult_contr (листинг 3.76). Проект реализует умножение шестнадцатиразрядных операндов с выдачей 32 -разрядного результата. Используется последовательное умножение полуслов входных аргументов и накопление взвешенной суммы частичных произведений в соответствии с алгоритмом OUT[31..0]= in_a[7..0]xin_b[7..0] +(in_a[7..0]xm_b[15..8]+ +in_a[15..8]xin_b[7..0])x28+ +(in_a[15..8]xm_b[15..8])x216. Здесь используется традиционное при построении операционных устройств разделение на блоки — устройство управления, описанное программой mult_contr, и операционный блок part_mult. Устройство управления после сигнала s t a r t последовательно проходит четыре состояния: STEP1, STEP2, SТЕРЗ и STEP4, каждому их которых соответствует определенная фаза вычислительного алгоритма, после чего возвращается в исходное состояние IDLE. Операционный блок принимает сигнал состояния, и в зависимости от фазы цикла вычислений, коммутирует входные полуслова на соответствующие входы встроенного параллельного комбинационного умножителя. В качестве умножителя использован библиотечный модуль LPM_MULT из библиотеки параметризованных модулей САПР MAX+PLUS П. Выходной коммутатор операционного блока позиционирует частичные произведения в разрядной сетке результата в зависимости от фазы цикла вычислений. В программе верхнего иерархического уровня mult16_16 декларируются включаемые модули и переменные, обеспечивающие связи между ними. В том числе вводится переменная, представляющая состояние автомата в устройстве управления и специфицируемая ключевым словом MACHINE. Кроме того, программа mu1t16_16 содержит описание накапливающего сумматора и триггера готовности ready. Накапливающий сумматор, выход которого является выходом устройства, представлен логическим оператором. Отметим, что автомат меняет свое состояние по положительному фронту синхросигнала, результат на выходе блока part_muit появится с задержкой относительно этого фронта, складывающейся из задержки автомата, коммутаторов и параллельного умножителя. Чтобы код на входе накапливающего сумматора успел сформироваться к моменту фиксации в нем суммы, сумма гор синхронизируется отрицательным фронтом тактового сигнала.
INCLUDE "mult_contr,inc"; INCLUDE "partjnult.inc"; SUBDESIGN mult16_16 ( clk,reset,start: INPUT; in a[15..0],in b[15..0]: INPUT; — входные данные
502
Проектирование систем на микросхемах программируемой логики
out[31..0]: OUTPUT; — произведение ready: OUTPUT — готовность результата ) VARIABLE result[31..0]:dffe; ready: dff; busy: NODE; controle:MACHINE; — декларация "внешнего" автомата BEGIN (busy,controle)=mult_contr (clk, reset, start); — вхождение автомата result[].d=result[].q+part_mult (in_b[],in_a[],controle);—накопление result[].ena=busy; — работа/ожидание result[].clk=!clk; out[]=result[]; ready.clk=busy; — триггер готовности данных ready. d= VCC; ready.clrn=start; END;
INCLUDE "lpm_imlt.inc"; CONSTANT Z_code= b"00000000"; SUBDESIGN part_mult (inl[15..0],in2[15..0]:INPUT; controle:MACHINE INPUT; p_m[31..0] : OUTPUT) — частичное произведение VARIABLE a[7..0],b[7..0],c[15..0]:NODE; BEGIN c[]=lpm_mult (.dataa[]=a[],.datab[]=b[]) WITH (LPM_WIDTHA=8, LPM_WIDTHB=8, LPM_WIDTHP=16,LPM_WIDTHS=16); CASE controle IS WHEN stepl => a[]=inl[7..0];b[]=in2[7..0]; — умножение — младших байтов p_m[]=(z_code,z_code,c[]); — размещение в младших разрядах — результата WHEN step2 => a[]=inl[15..8];b[]=in2[7..0]; — перекрестное — умножение p_rti[] = (z_code,c[] ,z_code); — размещение в средних разрядах — результата WHEN step3 => a[]=inl[7..0];b[]=in2[15..8]; — перекрестное — умножение p_m[]=(z_code,с[],z_code);
WHEN step4 => a []= i n l [15 ..8 ];b []= i n 2[ 1 5. . 8 ] ; — умножение — старших байтов
Глава 3. Языки описания дискретных* устройств
503
p_m[]=(c[],z_code,z_code); — размещение в старших разрядах — результата END CASE; END;
SUBDESIGN mult_contr (clk,reset,start: INPUT; busy: OUTPUT; controle: MACHINE OUTPUT; ) VARIABLE Int_state:MACHINE WITH STATES (idle,stepll,step2,step3,step4); BEGIN int_state.clk=clk; int_state.reset=reset; controle=int_state; TABLE int_state, start=> int_state, busy; idle , 0 => idle, 0; idle , 1 => STEP1, 0; stepl, x => step2, 1; step2, x => step3, 1; step3, x => step4, 1; step4, x => idle, 1; END TABLE; END;
В приведенных выше программах неоднократно использовались параметризованные модули, поставляемые с библиотеками САПР MAX+PLUS II. А можно ли создать собственный параметризованный модуль? В принципе, да. Но надо иметь в виду трудозатраты на создание параметризованного модуля и на возможные модификации исходного текста описания. Использование параметров количественного типа, например разрядности данных, не требует особых затрат. Намного сложнее предусмотреть и описать возможные модификации структуры и алгоритма функционирования, в том числе контроль корректности задания конфигурации при вызове описания из других модулей в иерархических проектах. Во многих случаях разработка параметризованной версии оказывается неоправданной. Тем не менее, рассмотрим некоторые особенности создания параметризованных модулей. Параметризованный модуль, кроме обязательных предпроектной и логической секций, содержит оператор объявления параметров, синтаксис которого определен как:
504
Проектирование систем на микросхемах программируемой логики
::= PARAMETERS ( [ Оначение по умолчанию> ] «, [ Оначение по умолчанию> ] ») ; ::= |
Параметры внутри проектируемого модуля рассматриваются как константы, но их значение может быть установлено при включении модуля в качестве компонента в более сложный проект. Если модуль применяется автономно, или в проекте высшего уровня иерархии некоторые параметры не определены, используется значение по умолчанию. Параметры, задающие функции, реализуемые конкретными вхождениями параметризованного модуля, чаще всего используются в операторах условной генерации, синтаксис которого определен как: :: = IF GENERATE «» [ ELSE GENERATE «»] END GENERATE;
Оператор условной генерации может присутствовать в логической секции проектного модуля и в подсекции переменных. Аргументами выражения проверки являются параметры конфигурации. Выражение проверки может, например, предусматривать сравнение параметров с константами (равно, не равно и т. п.) или между собой. Если выражение истинно, реализуется первая группа операторов, в противном случае вторая, а в случае отсутствия конструкции ELSE GENERATE вообще никаких. Особый случай — проверка того, используется ли определенный порт при включении модуля в проект высшего уровня. Для такой проверки в AHDL предусмотрена функция USED (), которая возвращает логическую единицу, если порт с указанным именем определен в проекте высшего уровня, и ноль — в противном случае. Главное отличие оператора I F -GENERATE от условного оператора I F -THEN состоит в том, что он выполняется только на этапе компиляции проекта, а не в физической реализации. Иными словами, в реализуемом устройстве будет воспроизведена только одна из возможных альтернатив в зависимости от задаваемых в модуле верхнего иерархического уровня значений параметров. Отметим, что, в отличие от VHDL, оператор I F -GENERATE в AHDL может представлять альтернативные реализации. Полезным инструментом иерархического проектирования является оператор проверки, с помощью которого можно задать контроль корректности задания параметров при компоновке сложных проектов.
Глава 3. Языки описания дискретных устройств
505
: : = ASSERT REPORT [ «, » ] [ SEVERITY ] ::= INFO | WARNING | ERROR
Если выражение проверки ложно, то в процессе компиляции на терминал выдается строка сообщения, причем если в этой строке присутствует символ %, то на этом месте выводится значение переменной сообщения. Если в строке несколько символов %, то значения переменных сообщения выводятся в порядке их записи в списке. Уровень важности задает реакцию компилятора на обнаруженное несоответствие. Объявление уровня важности как ERROR или отсутствие конструкции SEVERITY является указанием прекратить компиляцию, в остальных случаях после выдачи сообщения компиляция продолжается. Указанные возможности иллюстрируются на примере программы (листинг 3.77), которая может быть использована для представления различных по существу блоков — сумматора, вычитателя или управляемого сумматора вычитателя. Кроме того, программу можно использовать как описание комбинационной схемы, так и схемы с памятью. Дополнительный параметр настройки — число разрядов. Операторы I F -GENERATE разрешают или блокируют реализацию определенных последовательностей деклараций или операторов. Например, в зависимости от значения параметра type выходные данные программы определяются либо как узлы, либо как D -триггеры. Обратите внимание, что операторы проверки позволяют осуществлять контроль корректности задания параметров настройки.
PARAMETERS (type="registered", direction="ADD", Width=8); ASSERT ( width>0) REPORT "value of width must be greater then %" width SEVERITY error; ASSERT ((type="registered") # (type=="unregistered")) REPORT "invalid design type declaration" SEVERITY ERROR; ASSERT( (Direction=="ADD")#(Direction=="SUBB")#(Direction=="ADD_SUBB")) REPORT "direction must be ADD,SUDD or ADD_SUBB" SEVERITY ERROR;
506
Проектирование систем на микросхемах программируемой логики
SUBDESIGN add_s ( cin,clock, clear, control, a[width -l..0],b[width -l..0] :INPUT; result [width -1..0],cout: OUTPUT) VARIABLE argl[width..0], arg2[width..0], int_res[width..0],arg3[width..0]:NODE; IF (type =="registered") GENERATE result[width -1..0],cout : dff; END GENERATE; BEGIN ASSERT type="registered" !$ used (clock) REPORT "for registered type use clock input" SEVERITY WARNING; Assert direction="ADD_SUBB" !$ used (control) report "for registered type use clock input" SEVERITY ERROR; IF (type ="registered") GENERATE result[].clk=clock; cout.clk=clock; result[].clrn=clear; cout.clrn=clear; (cout.d,result[].d)=int_res[]; ELSE GENERATE (cout,result[])=int_res[]; END GENERATE; IF cin==vcc THEN arg3[]=l; ELSE arg3[]= -!; END IF; argl[]=(a[width -1],a[]); — расширение знакового разряда arg2[]=(b[width -1],b[]); IF (direction="ADD") GENERATE int_res [ ] =argl [ ]+arg2 [ ]+arg3 [ ] ; END GENERATE; IF (direction="SUBB") GENERATE int_res [ ] =argl [ ] -arg2 [ ] -arg3 [ ] ; ELSE GENERATE IF (control=vcc) THEN int_res [ ] =argl [ ]+arg2 [ ]+arg3 [ ] ; ELSE int_res[]=argl[] -arg2[] -arg3[]; END IF; END GENERATE; END;
3.5. Что дальше? Обзор языков проектирования дискретных устройств показывает, что все они имеют достаточно много общих черт. Во -первых, это преемственность по сравнению с традиционными языками с точки зрения состава средств алгоритмического описания, включая наборы базовых типов данных, базовые операции, операторы присваивания, условные выражения и операторы, операторы повторения и т. д. Во -вторых, это введение в состав языка средств описания параллельных процессов, прежде всего конструкций событийного и временного управления инициализацией операторов и блоков.
Глава 3. Языки описания дискретных устройств
507
И в третьих, это наличие специфических типов данных и специальных средств для структурного представления проекта.
(
Замечание
)
В приборно -ориентированных языках конструкции событийного управления явно не вводятся, но, например в AHDL, по умолчанию все операторы инициируются по событийному принципу.
На вопрос, какой язык все -таки выбрать, однозначного ответа не существует. "Война языков", происходившая до середины 90 -х годов, прежде всего между VHDL и Verilog, к сегодняшнему дню закончилась "вничью". По данным опросов [49], 60% разработчиков предпочитают Verilog, а 40% — VHDL. При этом в Америке шире используется Verilog, европейские компании отдают предпочтение VHDL. В России VHDL имеет явное предпочтение, хотя бы потому, что VHDL отражен в целом ряде книг [6, 8, 56, 57], но до сих пор нам не известна книга на русском языке, систематически излагающая Verilog. Относительно языков ассемблерного уровня, следует ожидать, что они сохранят свою экологическую нишу. Наряду с графическими способами задания и схемным вводом в виде таблиц соединений они будут использоваться для представления критичных по времени исполнения фрагментов в проектах, ориентированных на конкретную элементную базу. Наряду и параллельно с развитием языков происходит развитие средств их интерпретации. Естественно, новые опции и изменения синтаксических конструкций языка, вводимые в новых версиях стандартов, должны своевременно отслеживаться при разработках САПР, но это не является особой проблемой, т. к. свежие версии компиляторов появляются значительно чаще, чем происходит обновление стандартов. Более важным в разработках новых версий САПР и их оценке являются следующие моменты. Одна из существенных проблем, связанных с использованием языков проектирования, — это различие между "эталонным языком" и "реализуемым подмножеством языка". Уже неоднократно отмечалось, что язык при проектировании используется для решения взаимодополняющих, но различных задач: спецификация проекта, моделирование и, наконец, синтез реализации. В языки включено достаточно много конструкций, которые предназначены исключительно для целей моделирования. Наиболее очевидные примеры — это операторы предупреждения языков VHDL и AHDL (Assert Statements), функции управления выводом в Verilog. Современные САПР не интерпретируют опции временного управления (операторы WAIT FOR в языке VHDL и префиксы вида | в Verilog). Выражения задержки, установленные пользователем, тоже игнорируются синтезаторами. Обычно значения задержки назначаются в системе проектирования по результатам синте -
508
Проектирование систем на микросхемах программируемой лотки
за, причем в ряде САПР предусмотрена генерация уточненного программного текста, в котором отражаются задержки реальных компонентов синтезированного устройства. Подобные уточненные описания предназначены для моделирования более сложных проектов, в том числе для экспорта в другие системы моделирования. Кроме этого, пользователь вправе предусмотреть в программе фрагменты, ориентированные только на реализацию процедур моделирования. При записи таких фрагментов разработчик может не обращать внимание на эффективность и даже возможность их физической реализации — важна лишь простота и наглядность описания — и в этом случае допускается применить даже достаточно экзотические конструкции, вроде рекурсивных вызовов процедур или операторов повторения с необъявленными заранее признаками их завершения. Такие фрагменты обычно просто удаляются после предварительного тестирования и отладки перед передачей программы в подсистему синтеза. Существуют системы интерпретации, в которых программным блокам можно сопоставлять специфические признаки, определяющие, какие из них подлежат реализации, а какие используются только при моделировании. Например, синтезатор системы MAX+PLUS II игнорирует операторы INITIAL в программах на Verilog. Иногда разработчик намеренно использует несинтезируемые конструкции на начальных этапах проектирования для обеспечения большей наглядности спецификации или для сокращения времени предварительной отладки (как для экономии собственных трудозатрат, так и машинного времени для моделирования), предполагая дальнейшую декомпозицию проекта на реализуемые фрагменты (см. пример в разд. 3.2.1). Но в то же время имеется ряд конструкций языков, которые в принципе синтезируемы, но не поддерживаются в конкретных САПР. Рассмотрим, например, VHDL -программу, представленную в листинге 3.78.
ENTITY unrealis IS PORT( clock:IN bit; a,b: IN integer RANGE 0 TO 15; compare_out : OUT bit_vector (1 DOWNTO 0) ); END urealis; ARCHITECTURE behave OF unrealis IS BEGIN PROCESS (clock) VARIABLE more, less:bit; BEGIN
Глава 3. Языки описания дискретных устройств
509
IF (clock='0')THEN IF a>=b THEN more:='l'; less:='0'; ELSE more: ='0'; less:='1'; END IF; ELSE compare_out 2, и в нуль в остальных случаях, в том числе перед первым циклом. Для удобства технической реализации код множимого в конце каждого цикла сдвигается на два разряда в сторону старших разрядов, а код множителя на два разряда в сторону младших, что позволяет избежать необходимости применения сдвигателей на произвольное переменное число разрядов. Тогда реализация каждого шага алгоритма накапливающего суммирования предусматривает анализ двух младших битов в регистре множителя. В зависимости от этого может выполняться одно из следующих действий: прибавление к накопленной частичной сумме кода, находящегося в данный момент в регистре множимого, вычитание из накопленной суммы этого же кода, либо прибавление к накопленной сумме удвоенного (сдвинутого на один разряд) кода регистра множимого. Заметим, что общее число операций вида прибавление или отнимание кода множимого и результата может быть на единицу больше величины N/2. Дополнительное сложение требуется, если в цикле N/2 образуется недостача, т. е. С установлен в единицу. Это же является причиной необходимости увеличения разрядности регистра множимого и регистра результата до значения N/2+2. Для рассматриваемого примера необходимо использовать следующий набор блоков: -- (2хN+2) -разрядный регистр результата; -- N -разрядный сдвигающий регистр множителя с возможностью параллельной загрузки и со сдвигом на два разряда в сторону младших разрядов в каждом такте; -- (2хN+2) -разрядный сдвигающий регистр множимого с возможностью параллельной загрузки и со сдвигом на два разряда в сторону старших разрядов в каждом такте; -- счетчик циклов, имеющий N/2+1 состояние; -- комбинационная схема, которая имеет два информационных (2хN+2) разрядных входа и один управляющий вход. В зависимости от управляющих сигналов выход комбинационной схемы может формироваться в одном из пяти вариантов: • нулевой код; • код с одного из входов (назовем его первым); • сумма кодов, поданных на входы; • разность кодов, поданных на входы;
Глава 4. Примеры проектирования устройств с применением ПЛИС
519
• сумма кода, поступающего на первый вход с удвоенным (т. е. сдвинутым на один разряд в сторону старших разрядов) кодом, поступающим на второй вход. В соответствии с этим структурная схема умножителя приобретает вид, представленный на рис. 4.2. Далее рассматривается описание устройства на языке VHDL.
Рис. 4 . 2 . Структурная схема умножителя
В VHDL -программе (см. листинг 4.1) линиям связи компонентов соответствуют сигналы. Идентификаторы и функциональное назначение этих сигналов определены в табл. 4.1.
520
Проектирование систем на микросхемах программируемой логики
Таблица 4.1. Идентификаторы и функциональное назначение сигналов VHDL -программы из листинга 4.1 Обозначение Идентификатор на схеме в VHDL -программе
Функциональное назначение Выходной код регистра множимого
q_rg2
q_rg2
Выходной код регистра множителя
last_state
last_state
Сигнал, сигнализирующий о том, что счетчик содержит код заданного числа циклов и означающий конец операции умножения
со_с
count_controle
Код, задающий операцию счетчика циклов
rg_c
register_controle
Код, задающий операцию сдвигающих регистров
c_l_c
comb_logic_control
Код, задающий операцию, реализуемую комбинационной схемой
product
product
Регистр накопления частичных сумм (произведение)
о I u
out_logical_unit
Выход комбинационной схемы
Разработка модели поведения цифрового автомата Прежде всего, определяется набор состояний управляющего автомата и на схеме алгоритма помечаются эти состояния. Общее правило разметки состояний состоит в следующем [15]: входу каждой вершины схемы алгоритма, следующей за операторной, сопоставляется состояние автомата. Однако в нашем примере общее число состояний может быть уменьшено, а соответственно, повышено быстродействие устройства. Операции, определенные на всех путях многовариантного выбора, совместимы с операциями, определенными в следующим за ними блоке, и могут быть выполнены одновременно с последними без каких -либо дополнительных аппаратурных затрат. Таким образом, управляющий автомат должен иметь два состояния, которые на схеме алгоритма обозначены S0 и S1 и помечены крестиками. В VHDL -программе состояние может быть представлено переменной или сигналом перечислимого типа. В программе (листинг 4.1) принято обозначение допустимых значений, совпадающее с обозначениями на схеме алгоритма, поэтому примем допустимые значения данных перечислимого типа как S0 и S1. Управляющие автоматы могут быть представлены в различной форме. В данном примере, ориентированном на описание устройства в VHDL, применен
Глава 4. Примеры проектирования устройств с применением ПЛИС
521
оператор выбора САSЕ, при этом в качестве ключа выбора варианта использована переменная, представляющая состояние автомата в текущий момент времени. Внутри каждого варианта определяется состояние перехода и значения выходных сигналов в соответствии с состоянием входов управляющего автомата. Следует обратить внимание на необходимость установки автомата в исходное состояние перед началом работы: выражение I F r e s e t = ' 1 ' THEN state IF start='l' THEN register_control