Общая характеристика

 

Система CUPL (слегка измененная аббревиатура от Universal Compiler of Programmable Logic  -  универсальный компилятор для программируемой логики) была разработана фирмой Logical Devices еще в 1983 г. С тех пор эта система стала наиболее используемым средством для разработки программируемых логических устройств (PLD). Пакет поддерживается всеми зарубежными производителями PLD, а ряд компаний, в том числе и AMD  -  мировой лидер отрасли, избрали CUPL в качестве внутрифирменного средства разработки.

 

У CUPL более 20 тыс. пользователей, что можно считать большим достижением для данного класса систем.

 

Существуют варианты CUPL для 8 платформ:

 

- PC 386/486 для DOS;

 

- PC 386/486 для Windows;

 

- Apple Macintosh (System 6 и System 7);

 

- Sun 3 и Sun 4 SPARC Station;

 

- VAX/VMS;

 

- DEC Station 3100 и 5000;

 

- HP9000;

 

- Apollo DN3500 и DN4500.

 

Система CUPL может быть интегрирована с большинством пакетов, работающих под управлением UNIX, включая Mentor Graphics, Valid, Viewlogic и др.

 

Средства описания проекта

 

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

 

- взаимодействующие автоматы состояний;

 

- таблицы истинности;

 

- высокоуровневые логические выражения.

 

Описание проекта на CUPL HDL может быть выполнено вручную с помощью встроенного или любого внешнего текстового редактора или автоматически на основе принципиальной схемы, созданной одним из более чем 10 схемных редакторов (PC-CAPS, CADSTAR, Schema, OrCAD SDT, McCAD, Workview и др.). Проект также может быть описан на языке VHDL. С помощью отдельно поставляемого модуля CUPL/VHDL (цена  -  $1995; удовлетворяет стандартам IEEE 1076 и IEEE 1064) такое описание транслируется в программу на CUPL HDL. Процесс проектирования с помощью системы CUPL показан на схеме.

Система проектирования программируемых логических устройств CUPL

 

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

 

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

 

Если выбранная разработчиком архитектура не поддерживает какие-либо использованные проектные решения, то CUPL произведет необходимые преобразования. Например, если в проекте использованы JK-регистры, а выбранная архитектура поддерживает лишь SP-регистры, то при компиляции CUPL учтет это обстоятельство, выполнив эквивалентные преобразования.

 

Независимость описания проекта от конкретной архитектуры PLD является очень важным свойством системы CUPL, поскольку переход на другую архитектуру не требует переделки с нуля. Это особенно актуально для больших проектов, реализуемых с помощью устройств типа CPLD или FPGA.

 

Компиляция проекта

 

Перед началом компиляции логического описания проекта задаются следующие параметры:

 

- критерий логической минимизации;

 

- режим оптимизации (Best for Polarity, DeMorgan, Keep XOR, P-Term Sharing);

 

- тип устройства (например, PAL16, PAL20) и его наименование (например, P1618, P16R4);

 

- тип корпуса (например, DIP или LCC).

 

Система CUPL имеет библиотеку, состоящую более чем из 5000 устройств типа CMOS PAL, PROM, IFL, FPGA, ERASIC, GAL, EPLD, EEPLD, PEEL, FPLA и LCA, выпускаемых Altera, AMD, Atmel, Intel, ICT, National, Philips, Xilinx и многими другими фирмами. С помощью входящей в комплект CUPL утилиты CBLD можно создавать свои библиотеки.

 

Процесс компиляции проекта разбивается на 5 этапов:

 

1) обработка текста программы препроцессором;

 

2) преобразование описаний автоматов состояний, таблиц истинности, функций, определенных разработчиком, в логические уравнения;

 

3) выполнение преобразований полученных на предыдущем этапе уравнений для реализации на устройствах выбранного типа (учитывается число выводов и другие физические характеристики, полярность и уровень сигналов);

 

4) логическая минимизация полученной двоичной матрицы;

 

5) проверка возможности размещения синтезированного проекта в выбранном устройстве; генерация документации и выходных файлов.

 

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

 

Компилятор CUPL позволяет использовать 4 различных метода логической минимизации (Quick, Quine-McCluskey, Presto и Espreso), причем для разных выводов одного и того же PLD можно указать любой из этих алгоритмов.

 

Если в качестве целевого устройства выбрана интегральная схема, относящаяся к одной из архитектур сложных PLD (CPLD) или FPGA, то в результате компиляции нужно получить файл в формате системы трассировки соответствующего типа.

 

Поскольку каждая подобная архитектура обладает рядом присущих только ей ограничений, CUPL включает в себя набор программ (fitters), с помощью которых откомпилированное логическое описание приводится к требуемой форме. В стандартный комплект поставки CUPL входят модули поддержки следующих архитектур CPLD и FPGA: Altera Max, AMD MACH, Atmel High Density EPLD, Intel Flex, ICT EPLD/FPGA, National MAPL, Philips PML, Xilinx FPGA. Например, CUPL может выдавать оптимизированные XNF-файлы, имеющие до 50 000 вентилей, для компоновки и трассировки кристалла с помощью пакета Xilinx XACT.

 

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

 

Результаты компиляции проекта могут быть получены в любом из множества форматов, включая JEDEC (для “прошивки” устройства с помощью программатора), ASCII HEX, PDIF (системы P-CAD), Berkley PLA, Open PLA, POF, LPM, EDIF 2.0, PDS, VHDL, Verilog и др.

 

CUPL и SUSIE

 

Неудивительно, что, занимая лидирующие позиции в смежных областях, фирмы ALDEC и Logical Devices развивают сотрудничество. В 1994 г. между компаниями достигнута договоренность о взаимном лицензировании своих программных систем, среди них:

 

- большинство специализированных вариантов SUSIE-CAD и ACTIVE-CAD для конкретных архитектур (SUSIE-AMD, SUSIE-Intel, SUSIE-PLD и др.), а также модули SUSIE-LOGIC и SUSIE-LOGIC/Max, интегрирующие в себя CUPL;

 

- интерактивный моделировщик SUSIE, а также схемный редактор SUSIE для среды Windows и редактор формы сигнала (waveform editor), которые будут включены в состав версии CUPL для PC/Windows.

 

В будущем компилятор VHDL компании LDI будет дополнен средствами из модуля VHDL Development System фирмы ALDEC.

 

Комплекс систем SUSIE/ACTIVE-CAD и CUPL ныне, пожалуй, наиболее мощное средство разработки PLD на платформе PC, превосходящее многие аналогичные системы для рабочих станций.

 

Автор благодарит АО CST Communications (г. С.-Петербург, а/я 166, Е-mail: postmaster@cst.spb.su)  -  официального дилера фирм Logical Devices и ALDEC -  и его директора А.Е.Соловьева за предоставленные возможности познакомиться с новыми версиями систем CUPL и SUSIE.

 

Всеволод Разевиг

 

ИС программируемой логики -зачем?

 

- Чтобы в несколько раз сократить время разработки изделий и запуска их в серийное производство.

 

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

 

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

 

- Чтобы надежно защитить изделия от нелегального воспроизведения.

Версия для печати