Последовательность проектирования для бис пл
Порядок разработки системы, содержащей БИС ПЛ, был укрупненно приведен ранее. Более детально маршрут проектирования для ветви проектирования, соответствующей разработке конфигурации БИС ПЛ с использованием САПР, рассматривается ниже.
Предполагаем, что самый первый этап проектирования уже пройден и сделан выбор как определенной элементной базы, так и определенной САПР (или группы САПР). Далее разработка обычно выполняется в следующем порядке:
Этап 1. Составление содержательного описания проекта
Первая задача — переход от технического задания (ТЗ) к формализованному описанию проектируемого устройства. ТЗ, как правило, является смесью словесного и технического описания, его формализация приводит к выявлению основных блоков устройства (или алгоритма) и определению их связей и/или взаимодействия. В сущности, именно в этот момент реализуются начальные действия первого этапа. Формально же первый этап — разбиение задачи на отдельные функционально обособленные подзадачи — этап декомпозиции. Способ и средства разбиения чаще всего определяются именно функциональной завершенностью и обособленностью отдельных фрагментов, хотя в значительной степени здесь большую роль играют просто симпатии проектировщика, и лишь иногда разбиение является полностью предопределенным. Сама форма ТЗ может провоцировать проектировщика на использование тех или иных средств, хотя не исключено, что более эффективным мог бы быть другой метод описания проекта или его фрагментов. Декомпозиция может сводиться к составлению граф-схем алгоритмов функционирования фрагментов или к функциональной блок-схеме устройства и его частей Возможным вариантом для достаточно сложных систем будет разумное совмещение и поведенческого и структурного разбиения проекта. Разбиение осуществляется не только в рамках одного уровня иерархии, а для большинства проектов и разбиение на иерархически организованные уровни. Использование САПР на этом этапе проектирования — явление достаточно редкое, хотя для современных очень сложных проектов все большее распространение получают специальные блочные редакторы, позволяющие осуществлять декомпозицию проекта без детализации составных частей.
Этап 2. Разработка общей структуры проектируемой системы
Основной задачей этапа являются выбор допустимых для каждого уровня иерархии элементов, определение связей между ними и, если параметры элементов являются на страиваемыми, то и их настройка. Два момента являются определяющими для этого этапа:
с одной стороны, это источник набора допустимых элементов, с другой стороны — средства описания соединений элементов между собой, а при необходимости и описание новых (специфических для этого проекта) элементов.
Совмещенное описание проекта. Как уже указывалось возможно как только временное (поведенческое) так и только пространственное (архитектурно-структурное) описание проекта. Однако часто целесообразно совмещать обе возможности. При разработке устройств с цифровым представлением информации бывает естественным разбиение их на два блока: операционный и управления. Операционный блок (ОБ) выполняет преобразование данных и строится из стандартных частей, а блок управления (устройство управления УУ) обеспечивает необходимую Последовательность операций, выполняемых в ОБ (одном или нескольких). Для этого УУ передает на входы ОБ управляющие сигналы. Последовательность действий и, следовательно, управляющих сигналов зависит от результатов операций в ОБ и внешних воздействий. Отсюда видно, что УУ удобно задавать в форме конечного автомата с памятью (АП) того или иного типа. В сложных проектах возможно разделение УУ на несколько функционально слабо связанных пар ОБ — УУ на одном уровне иерархии или создание пары, иерархически погружен ной в ОБ (реже в УУ).
Библиотеки проектировщика. Элементный состав операционного блока зависит от состава используемой библиотеки. Набор функциональных возможностей библиотечных элементов предлагаемых стандартными САПР, чрезвычайно широк, а по составу и происхождению библиотеки можно разделить на следующие:
• стандартные библиотеки фирмы разработчика САПР, содержимое которой соответствует распространенной серии схем МСИ, например, типа 74 серии;
• стандартные элементы вычислительной техники (n — входовые логические элементы, дешифраторы, мультиплексоры, счетчики и т. д.); параметры элементов при этом фиксированы;
• типовые элементы вычислительной техники (счетчики, регистры, мультиплексоры и т. д.), конкретные параметры которых (разрядность, полярность управляющих сигналов и т. д.) могут назначаться проектировщиком произвольно;
• типовые узлы вычислительных систем (периферийные устройства, аппаратные ядра микроконтроллеров и микропроцессоров), часть параметров которых варьируется проектировщиком (как правило, разработка конфигурации этих узлов выполняется либо фирмой разработчиком узла, либо в содружестве с ней);
• элементы, созданные проектировщиком и объединенные в библиотеку проектировщика.
Любой проект может быть использован в качестве подпроекта в более сложном проекте. Единую библиотеку модулей проектировщика можно и не создавать (хотя желательно иметь некий путеводитель по собственным проектным модулям, а в лучшем случае — базу данных о выполненных проектах).
Как правило на любом уровне иерархии помимо базовых для данного уровня элементов ОБ дополняется требуемым для функционирования набором регистров, логических схем (как правило, многофункциональных и управляемых), буферных схем и коммулируемых связей между ними. Важно, чтобы на более низких иерархических уровнях описания проекта была однозначная трактовка функционирования всех элементов ОБ.
Описание проектов. Применение САПР требует эффективных, наглядных, управляемых и контролируемых средств описания проекта. Описать проектируемое устройство можно разными способами, причем обычно применяемые способы пригодны как для описания проекта в целом, так и для описания отдельных фрагментов. Методы описания, применимые исключительно для отдельных фрагментов устройства, относятся к числу редких.
В настоящее время к наиболее распространенным универсальным способам описания проекта, применимым для любого уровня иерархии проекта, относят графический и текстовый. Реже используются непосредственная разводка схем РРСА в редакторе топологии, описания в виде требуемых временных диаграмм и др. Каждый из способов описания проекта имеет свои достоинства и недостатки. Сходство способа описания и внутренней организации и поведения разрабатываемого устройства существенно сокращает время создания проекта, упрощает его тестирование и, как правило, оказывается наиболее наглядным и понятным.
Графическое представление проекта в современных САПР может создаваться как в базисе графических символов проектировщика, так и в базисе допустимых для выбран ной САПР библиотечных элементов, например, в базисе элементов стандартной серии ТТЛ(Ш). допустимость смешивания этих двух базисов в различных комбинациях — главное достоинство графического способа — его традиционность и наглядность, связанные с привычностью разработчиков к восприятию изображений схем. Конечно, это преимущество проявляется только при правильном иерархическом и структурном разбиении проекта.
Современные языки описания аппаратуры (HDL, Hardware Description Languages) до пускают описание проектируемого устройства как с точки зрения его поведения, так и с точки зрения его структуры. Эти возможности делают все более распространенным представление проекта в форме текстового описания алгоритмов функционирования его фрагментов в сочетании с текстовым же описанием межблочных соединений для сложных проектов. Достоинства текстового способа описания проекта заключаются в его компактности и относительной простоте автоматизации любых преобразований, включая начальную генерацию описания проекта. Очень важна возможность использования стандартных универсальных языков типа HDL, обеспечивающая простоту переноса проекта с одной аппаратной платформы на другую и переход от одной САПР к другой.
В отличие от текстовых графические способы представления проекта обычно узко специализированны и требуют особых средств для переноса информации о проекте в другую среду, для чего могут быть применены специальные универсальные языки передачи ин формации о проекте (типа языка ЕDIF).Языковое описание аппаратуры получает все большее распространение. Текстовые описания имеют две основные разновидности — языки низкого уровня (аналоги языков программирования типа Ассемблера) и языки высокого уровня.
Языки низкого уровня.Языки низкого уровня ближе к аппаратным средствам, вследствие чего представляют для компиляторов потенциальные возможности создания проектов с более выигрышными параметрами. Платой за это является обычно жесткая ориентация на определенную аппаратуру и производящую ее фирму. Примерами таких языков могут служить язык AHDL и АВЕL. (фирмы «Хilinх»). С помощью языков низкого уровня легче создавать проекты с наилучшими временными параметрами, так как в проектах будут учтены специфические особенности архитектуры той или иной CPLD или FPGA.
Языки высокого уровня. Языки высокого уровня менее связаны с аппаратными платформами и поэтому более универсальны. Среди них наиболее распространены языки VHDL и Verilog. Эти языки, как и другие алгоритмические языки высокого уровня, в принципе позволяют описать любой алгоритм в последовательной форме, т. е. через последовательность операторов присвоения и принятия решений. Основное их отличие - в способности отражать также и параллельно исполняемые в аппаратуре действия, представляемые отдельными параллельно выполняемыми процессами с общим инициализирующим воздействием.
Этап З. Описание работы управляющего автомата (УА)
На этом этапе определяется функционирование УА, обеспечивающее требуемое взаимодействие элементов ОБ. Следует подчеркнуть, что два последних этапа сильно взаимосвязаны и, если не разрабатываются параллельно, то обычно выполняются итерационно.
Формы и средства описания автомата разнообразны. Современная тенденция состоит в переходе от записи логических выражений, ограниченных правилами Т3, к графической форме. Описание в виде граф-схемы переходов (диаграммы состояний) становится одним из самых распространенных вариантов задания автоматов (в английской терминологии –State Machins). Графические редакторы для создания автоматов включаются в состав средств задания исходных проектов современных САПР (например, в САПР Foundation фирмы "Xilinx" разработки фирмы "Aldec").
Редакторы разных фирм-производителей СБИС ПЛ имеют особенности, но для всех них характерны исключительная простота, естественность и дружественность интерфейса с пользователем, а также отсутствие жесткой необходимости знания выходного языка редактора. Наиболее совершенные версии программ типа StateCAD Version 3.2 пакета Workview Office фирмы "Viewlogic" обладают полным набором средств для выполнения всей проект ной процедуры разработки УА, позволяющих реализовать следующие операции:
• создавать граф переходов, включая наименование состояний, направления, условия и приоритеты условий переходов, формируемые сигналы и способы их образования;
• проверять корректность составленного графа переходов (повторение имен, неоднозначность перехода, некорректность перехода и т. д.);
• компилировать проект (формировать выходной текстовый файл) в выбранном языковом базисе;
• моделировать поведение автомата в интерактивном или компиляционном режиме.
Важное достоинство программы StateCAD Version 3.2 — возможность широкого выбора форм представления результата (описания на языках высокого уровня — VHDL и Verilog и на языках низкого уровня — ABЕL, AHDL).
Заметим, что специфика продукции той или иной фирмы сказывается и на языках высокого уровня, выражаясь прежде всего в отличиях в библиотеках, требуемых для работы, и в сложности и вариантности допустимых синтаксических конструкций для компиляторов. Конечные результаты компиляции одной и той же исходной граф-схемы автомата или последующей компиляции одной и той же программы с языка высокого уровня в загрузочный файл микросхемы ПЛ, полученные от компиляторов разных фирм, могут существенно различаться и иметь различную эффективность. Программа StateCAD Version 3.2 пакета Workview Office удобна тем, что перед трансляцией графа переходов нужно задать не толь- ко желательное языковое представление (VHDL, AHDL, Verilog, ABEL и т. д.), но и фирменные атрибуты, что позволяет оптимизировать запись автомата и избежать применения синтаксических конструкций, недопустимых для компиляторов соответствующих фирм.
Как уже отмечалось, при использовании графических редакторов от пользователя не требуется обязательное владение выходным языком редактора. Однако в определенных случаях такое владение исключительно полезно. Полезность ориентации в языковых конструкциях проявляется, например, в ситуациях, когда автомат должен быть минимизирован по тем или иным параметрам, прежде всего по временным интервалам между формируемыми выходными сигналами, что может приводить к временным состязаниям сигналов. Именно в этих случаях владение языком и искусство проектировщика облегчают получение наилучших результатов.
Этап 4. Компиляция проекта
После составления проекта и всех его частей можно приступать к самому ответственному этапу проектирования — компиляции проекта. Именно здесь проявляются все скрытые ошибки и нестыковки. Компиляция разбивается на ряд последовательных подэтапов: сборка базы данных проекта, контроль соединений, логическая минимизация проекта, монтирование проекта в заданную или выбранную схему, формирование загрузочного (конфигурационного) файла и др.
На любом подэтапе могут возникать ошибки, требующие повторной компиляции после их коррекции.
Результат компиляции — загрузочный файл, т. е. конфигурационная информация для выбранной микросхемы ПЛ. Помимо этого обычно создается и файл отчета, содержащий всю информацию како процессе компиляции, так и сего результатах. Имеется существенное различие для компиляционных процедур схем типов CPLD и FPGA. Для схем типа FPGA помимо автоматического размещения и трассировки соединений, как правило, допустимо и ручное вмешательство проектировщика в этот процесс на любых его этапах. Этой цели служат редакторы топологии, позволяющие изменять структуру проекта на кристалле и повышать производительность проектируемых устройств. А для схем типа CPLD влияние проектировщика на структуру (а следовательно, и характеристики) скомпилированной схемы чаще всего возможно только за счет косвенного воздействия, либо за счет формы описания проекта, либо за счет установленных перед компиляцией опций. Ручная трассировка выбранных цепей возможна, например, в топологическом редакторе FPGA Editor входящем в состав САПР Foundation фирмы "Xilinx".
Этап 5. Тестирование проекта
Тестирование разработанного устройства, а в мало-мальски сложных проектах и от дельных его фрагментов — Один из важнейших этапов проектирования, поскольку практически не бывает бездефектных проектов, созданных с чистого листа. Обнаружение дефектов проекта — сложнейшая задача. Скорость и тщательность тестирования во многом зависят от искусства разработчика.
В современных САПР наиболее распространено тестирование путем работы с редакторами временных диаграмм. Эти редакторы делятся на компилирующие и интерпретирующие. В многооконных САПР интерпретирующего типа легко отображаются результаты моделирования для текущего момента модельного времени во всех видах отображения проекта (сигналы в электрических схемах, в топологии), легко изменить ход эксперимента и состав отображаемых сигналов. Достоинством компилирующих систем моделирования является минимизация временных затрат.
Распространение получили два способа генерации внешних относительно проекта воз- действий. Один способ состоит в задании этих воздействий в форме задания временной последовательности для редактора временных диаграмм (графический способ задания для компилирующих систем моделирования или формульный для интерпретирующих).Другой способ, особенно удобный для использования при языковом задании проекта и обычно используемый на этапе функциональной верификации проекта, состоит в написании специальной тестирующей программы. Программы для тестирования в этом случае строятся на основе архитектурно-поведенческого тела, в котором проектируемый модуль представлен как структурный компонент, а генератор воздействия — в поведенческой форме.
В большинстве реальных ЦУ после подачи на них некоторых начальных данных выполняются несколько повторяющихся циклов. Необходима проверка работы устройства на не- скольких наборах однотипных данных, поэтому можно рекомендовать следующую структуру программного модуля (процесса) представляющего тестовое воздействие: генерация сигналов начальной установки, затем реализация двух вложенных циклов, причем внутренний цикл последовательно формирует тестирующие сигналы для выполнения действий на одном наборе входных данных, а во внешнем производится их изменение.
Этап 6. Определение временных характеристик разработанного устройства
Современные САПР имеют внутри себя полную информацию о Структуре проектируемого устройства и временных параметрах всех его компонентов, и это позволяет автоматизировать процесс вычисления разнообразных временных характеристик проекта.
Например, в САПР МАХ + PLUS II предусмотрено автоматическое вычисление трех основных классов временных параметров:
• минимальных и максимальных задержек между источниками (Входными сигналами) и приемниками (выходными сигналами), информация о которых выдается в виде матрицы задержек;
• максимально возможной производительности устройства (пропускной способности) в виде максимальной частоты тактирования элементов памяти, используемых в проекте;
• времен предустановки и выдержки сигналов, гарантирующих надежную работу схем при фиксации сигналов в синхронных элементах памяти.
Многие САПР позволяют также выделять критические пути передачи и преобразования информации для схемного или топологического представления проекта.
Хотя выполнение перечисленных вычислений не гарантирует обнаружения всех ошибок проектировщика, связанных с временными процессами в ЦУ, оно существенно уменьшает число таких ошибок или, как минимум, позволяет обнаружить в проекте места, опасные с точки зрения сбоев.
Этап 7. Организация натурных экспериментов
Последним этапом проектирования является этап экспериментальной проверки спроектированного устройства. При всей тщательности выполнения предыдущих этапов всегда существует далеко не нулевая вероятность того, что в проекте имеются дефекты, которые могут проявиться на этапе внедрения или даже штатного использования устройства и по- влечь за собою тяжкие последствия.
Выполнение натурных экспериментов существенно увеличивает вероятность выпуска бездефектной продукции. Средства ускорения работ на этом этапе и возможности его переноса на ранние этапы разработки, т. е. до того момента, когда будет закончено изготовление конечного продукта, известны — это прототипные системы и средства проведения экспериментов с ними. Прототипные платы широко использовались и ранее, в частности, при создании микропроцессорных систем. Аналогична и ситуация при разработке систем и устройств на основе средств программируемой логики. Широкий спектр прототипных плат, содержащих микросхемы программируемой логики и дополнительную аппаратуру (прежде всего микросхемы быстродействующих ОЗУ), выпускается и поставляется различными отечественными и зарубежными фирмами. Здесь можно указать средства фирм "Altera" (Demo Board); "PLD Applications" (платы PCI Bus Evalution Board); "Xilinx", "Vidio Software (платы HOT PCI Design Kit)" и др.