Настоящая статья продолжает серию обзоров систем автоматизированного проектирования, появившихся в последнее время на Российском рынке, и начатую в предыдущем номере журнала статьей "Система логического синтеза для FPGA/CPLD - ASYL+".

В статье рассматриваются возможности, достоинства и недостатки системы логического синтеза PLDesigner-XL (PLD-XL), ориентированной на программируемые технологии интегральных схем (PLD и CPLD). Система PLD-XL обеспечивает синтез как с языка DSL, так и с языков описания высокого уровня VHDL и Verilog, позволяет выбирать решения, оптимальные по производительности, числу кристаллов и стоимости, а также имеет тесную связь с аппаратурой программирования микросхем. Система поставляется в вариантах как для рабочих станций, так и для персональных ЭВМ, и является одним из лидеров на рынке.


Прежде чем приступать к описанию собственно системы PLD-XL необходимо сказать несколько слов о терминологии. В публикациях и технической документации часто встречаются сокращения FPGA, CPLD и PLD, обозначающие различные виды программируемых логических интегральных схем (ПЛИС). Чтобы сравнивать и понимать отличия различных систем САПР надо четко представлять себе отличия различных типов ПЛИС.

PLD (Programmable Logic Device) - программируемое логическое устройство. Все устройства типа PLD имеют две логических матрицы - матрицу И, на которую подаются прямые и инверсные значения входных сигналов, и матрицу ИЛИ, на которую подаются сформированные в матрице И логические произведения входных сигналов. Таким образом устройство типа PLD реализует логическию сумму произведений. Устройства типа PLD в свою очередь делятся на PROM, PLA и PAL/GAL в зависимости от того, структура какой из логических матриц является фиксированной, а какой - программируемой. В устройствах PROM (Programmable Read Only Memory) логическая матрица И является фиксированной, а матрица ИЛИ - программируемой. Поскольку все комбтнации входных сигналов жестко зашиты в матрице И, использование PROM наиболее эффективно для реализации устройств с небольши числом входов и большим числом логических произведений. В устройствах PLA (Programmable Logic Array) обе логические матрицы являются программируемыми, что делает их наиболее гибкими из всех устройств типа PLD. Расплатой за это является снижение быстродействия и повышение цены. В устройствах PAL/GAL (Programmable/Generic Array Logic) программируемой является логическая матрица И, а матрица ИЛИ является фиксированной. Эти устройства сочетают гибкость, свойственную PAL, с быстродействием, свойственным PROM.

CPLD (Complex Programmable Logic Device) - сложное программируемое логическое устройство. Устройства типа CPLD состоят не из одной, как в PLD, а из нескольких И/ИЛИ макроячеек, связанных между собой программируемыми схемами коммутации. Примерами устройств типа CPLD могут служить серии MACH компании AMD или MAX компании Altera.

FPGA (Field Programmable Gate Array) - программируемые (электрическим) полем матрицы вентилей. Устройства типа FPGA состоят из большого числа относительно небольших логических макроячеек, связанных между собой программируемыми схемами коммутации. Структура логических макроячеек зависит от производителя, например, у кристаллов от ACTEL основу макроячейки составляет схема из мультиплексоров, а у кристаллов от Xilinx - ППЗУ. Программируемые схемы коммутации позволяют соединить любые две произвольные макроячейки на кристалле. При этом, правда, возникают задачи оптимального размещения макроячеек и трассировки соединений между ними. Для решения этих задач используются специальные программные средства, поставляемые изготовителями кристаллов. Расплатой за гибкость при использовании FPGA является коэффициент заполнения кристалла, который никогда не достигает 100% (нормальным можно считать заполнение на 60-70%) из-за невозможности развести схемы соединений.

Итак, определившись с терминологией, вернемся к системам логического синтеза. В предыдущей статье мы рассматривали систему синтеза ASYL+, ориентированную на технологии FPGA и CPLD и показывающую наиболее впечатляющие результаты в базисе FPGA. Система PLD-XL напротив наиболее впечатляющие результаты показывает для технологий PLD и CPLD и является стандартом дефакто в области логического синтеза для этих типов устройств, включенным по OEM-соглашениям в большинство крупных пакетов САПР. Кстати, именно так позиционирует эти системы на рынке и обладатель прав на обе системы корпорация MINC Inc., которая недавно приобрела компанию IST, разработавшую ASYL+.

Начнем с рассмотрения входных языков, поддерживаемых системой логического синтеза PLD-XL. Описание проекта задается на языке DSL (Design Synthesis Language), который обладает достаточно мощными выразительными средствами для описания как комбинационной логики, так и конечных автоматов. Кроме того DSL позволяет описывать физические ограничения на синтезируемый проект: типы устройств, используемых для реализации проекта, назначение сигналов на выводы микросхем, специфические для каждого типа кристаллов ограничения и условия и т.п.

Язык DSL достаточно прост и не требует больших усилий для своего освоения. Он позволяет описывать логические функции в виде формул типа "сумма произведений", таблиц истинности, факторизованных форм; имеет конструкции управления такие, как IF и CASE; имеет специальные конструкции для описания конечных автоматов, сигналов синхронизации, триггеров и т.д. Недостатком этого языка является его "нестандартность", что ограничивает область его применения относительно небольшими проектами, которые целиком могут быть описаны на DSL. Под нестандартностью здесь понимается несовместимость языка DSL с такими промышленными стандартами, как VHDL и Verilog, отсутствие развитых систем моделирования и смешанного моделирования. Для преодоления этого недостатка система PLD-XL предоставляет дополнительную возможность описания проекта на ограниченных подмножествах стандартных языков VHDL и Verilog. Кроме того для работы на полных синтезируемых подмножествах VHDL или Verilog можно использовать всю мощь системы ASYL+, которая тесно интегрирована с PLD-XL. Компания MINC, Inc. рекомендует для синтеза с языков VHDL и Verilog использовать развитые средства кодирования автоматов, оптимизации и разделения ресурсов и генерации макроячеек системы ASYL+. Интеграция этих двух систем настолько тесная, что вероятно в будущем они сольются в одну систему логического синтеза для ПЛИС. Пока же две системы интегрированы по входным языкам. Например, ASYL+, проведя первый этап синтеза со стандартных языков VHDL или Verilog, построив описание проекта на уровне логических функций, может сгенерировать это описание на языке DSL, а система PLD-XL - "подхватить" на лету это описание и закончить синтез в базисе PLD/CPLD.

Кроме функциональных языков описания система PLD-XL поддерживает также и язык описания списков цепей EDIF 2.0.0, что обеспечивает ее интеграцию с большим числом схемотехнических редакторов. Кроме того, в систему встроена поддержка библиотек компонентов OrCAD, ViewLogic и стандартной библиотеки компонентов EDIF 2.0.0.

Список поддерживаемых системой типов ПЛИС огромен. Достаточно сказать, что в технической документации на систему этот список выделен в отдельный весьма объемный документ. Поддерживаются программируемые кристаллы следующих поставщиков: Actel, Altera, AMD, Atmel, AT&T, Cypress, International CMOS Technology, Lattice, Motorola, PLX Technology, Philips Semiconductor, Texas Instruments, Toshiba, Triquint Systems и Xilinx. Причем база данных системы различает кристаллы также и по типу корпуса, температурному диапазону и исполнению (коммерческое или военное).

Рассмотрим теперь интеграцию системы с другими средствами САПР. Как уже отмечалось выше система тесно интегрирована со схемотехническими редакторами. Связь с системами моделирования может осуществляться на уровне использования стандартных языков VHDL или Verilog с использованием продуктов других поставщиков. PLD-XL предоставляет также возможность генерации VHDL:/ Verilog-моделей, учитывающих задержки, для уже размещенных кристаллов, что позволяет моделировать весь проект на более высоком уровне (например, на уровне платы или блока). Кроме того, в систему встроена своя собственная система моделирования на языке DSL, которая позволяет проверить правильность функционального описания проекта перед началом синтеза. Для управления процессом моделирования и задания тестовых последовательностей в системе PLD-XL используется специальный язык тестов (PLD-XL Test Language), который внешне напоминает язык программирования PASCAL, но включает такие удобные для проектировщика расширения, как таблицы истинности, описания типов сигналов и т. п.

В отличие от системы ASYL+, которую мы рассматривали в предыдущем обзоре, система PLD-XL тесно интегрирована также и с программными и аппаратными средствами собственно программирования кристаллов. В качестве результата синтеза система создает карты программирования кристаллов (одну, если весь проект размещается в одном корпусе; или несколько - если необходимо использовать несколько корпусов). Карты программирования кристаллов представляют собой обычные текстовые файлы в формате JEDEC для устройств PAL и GAL или INTEL - для устройств PROM и EPROM, которые с помощью коммуникационного программного обеспечения через последовательный порт компьютера загружаются непосредственно в программатор. В PLD-XL встроена возможность запуска этого коммуникационного программного обеспечения (ПО), т.е. фактически собственно программирования кристаллов, не выходя из системы.

Как уже отмечалось, система PLD-XL тесно интегрирована с системой логического синтеза ASYL+. Компания MINC Inc. рекомендует совместное использование обоих систем, прекрасно дополняющих друг друга.

Перейдем теперь к рассмотрению возможностей ядра системы синтеза, т.е. используемых методов и алгоритмов оптимизации логических функций. Поскольку система ориентирована на ПЛИС типов PLD/CPLD, имеющих в основе своей две логические матрицы (И/ИЛИ), то для оптимизации логических функций в системе используются математические методы двух уровневой оптимизации. Система предлагает пользователю на выбор три метода оптимизации - один чисто эвристический (Espresso) и два "точных" (Espresso Exact и Quine-McClusky). Основным и рекомендуемым является эвристический метод Espresso, который в большинстве случаев дает прекрасные результаты оптимизации. Точные методы оптимизации рекомендуется использовать для небольших или весьма важных фрагментов проекта, поскольку они требуют значительно больших ресурсов как процессора, так и памяти, позволяя при этом получить улучшенные по сравнению с Espresso результаты оптимизации. В любом случае всегда рекомендуется начинать с использования эвристических методов, поскольку применение точных методов и связанные с этим повышенные затраты ресурсов вычислительной системы не всегда ведут к адекватному улучшению результатов синтеза.

Помимо методов оптимизации, второй отличительной особенностью ядра системы синтеза PLD-XL является автоматическая декомпозиция большого проекта на несколько корпусов PLD/CPLD. В отличие от системы ASYL+, которая поддерживает декомпозицию проекта только для FPGA трех поставщиков, причем только на корпуса одного семейства, система PLD-XL позволяет автоматически декомпозировать проект на несколько микросхем различных семейств, различных поставщиков и даже смешивать кристаллы PLD/CPLD и FPGA. Это является несомненным и огромным достоинством системы. Декомпозиция проекта может быть полностью автоматической, управляемой пользователем или ручной. Результаты декомпозиции проекта напрямую зависят от ограничений и целей, которые задает проектировщик.

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

Под ограничениями понимается набор жестких требований к результатам синтеза, которые обязательно должны быть выполнены. К ограничениям относятся: семейство логических схем (CMOS, ECL, OBS и т.д.), тип корпуса (BGA, DIP, FP и т.д.), максимальная задержка каждой из микросхем в реализации проекта, минимальная тактовая частота, максимальное число корпусов в реализации проекта, производитель микросхем, температурный диапазон, максимальный ток потребления для каждой из микросхем и два ограничения, которые могут быть определены самим проектировщиком. Каждое из перечисленных выше ограничений может отсутствовать, увеличивая таким образом пространство поиска решения. Об этом нужно помнить и задавать ограничения разумно, чтобы уменьшить число просматриваемых системой вариантов и сократить время синтеза.

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

Заданные проектировщиком "шаблоны", "ограничения" и "приоритеты" система использует следующим образом. Для заданного проекта система просматривает все варианты его реализации на кристаллах, заданных "шаблонами"; отбрасывает те варианты реализации, которые не удовлетворяют заданным "ограничениям"; оставшиеся варианты реализации сортирует согласно заданным "приоритетам" и лучшие десять из них предлагает проектировщику на выбор. При этом для каждого из вариантов реализации система сообщает число и тип используемых микросхем, стоимость и максимальную задержку. Дальше уже проектировщик решает, какой из вариантов следует реализовать в аппаратуре, а система генерирует для выбранного варианта карты программирования кристаллов в форматах JEDEC или INTEL..

Последним этапом работы над проектом является запуск коммуникационного ПО и загрузка карт программирования кристаллов в программатор.

Система PLD-XL поставляется как для инженерных рабочих станций компаний Sun и Hewlett Packard, работающих под управлением различных версий операционной системы UNIX, так и для персональных компьютеров, работающих под управлением операционных систем компании Microsoft: MS Windows 3.x, Windows 95 и Windows NT. К персональным компьютерам система предъявляет достаточно высокие требования: размер оперативной памяти - не менее 16 Мб (рекомендуется 32 Мб); размер виртуальной памяти - не менее 60 Мб; свободного места на жестком диске - не менее 40 Мб.

Цены на систему PLD-XL зависят от конфигурации системы и используемой вычислительной платформы и колеблются от 865 долларов за конфигурацию "Prelude" на платформе Windows/PC, включающую поддержку 35 архитектур PLD; до 30 тысяч долларов за конфигурацию "Professional" на рабочих станциях, включающую поддержку всех технологий ПЛИС, описания проекта на VHDL или Verilog, автоматической декомпозиции проекта на несколько кристаллов.

В заключение подытожим достоинства и недостатки системы логического синтеза PLD-XL.

К несомненным достоинствам системы следует отнести:

  • использование простого и гибкого языка описания проекта - DSL;
  • поддержку стандартных языков VHDL и Verilog;
  • поддержку EDIF 2.0.0 для связи со схемотехническими редакторами;
  • встроенную систему функционального моделирования проекта;
  • огромный набор поддерживаемых технологий PLD/CPLD;
  • учет всех важных для проектировщика ограничений (включая стоимость);
  • декомпозицию проекта на несколько корпусов возможно различных архитектур;
  • тесную связь непосредственно с аппаратурой программирования кристаллов;
  • дружественный пользовательский интерфейс;
  • поддержку многих платформ, в том числе относительно недорогих ПЭВМ;
  • относительно невысокие цены, особенно для версий на ПЭВМ;
  • наличие дистрибьютора и службы поддержки в России.
  • Недостатки:

  • повышенные требования к ресурсам персональной ЭВМ;
  • отсутствие встроенной системы моделирования на VHDL / Verilog.
  • Как и ASYL+, описанная в предыдущем номере журнала, система PLD-XL будет интересна тем, кто внедряет нисходящие методы проектирования, ориентируется на программируемые технологии ПЛИС и не может себе позволить приобретение дорогостоящих инженерных рабочих станций и не менее дорогостоящих систем САПР для них.