logo search
Ответы на вопросы экз

11. Автоматизация проектирования

Прежде чем говорить об автоматизации проектирования, рассмотрим основные типы ИС.

1. Программируемые логические ИС (ПЛИС, PLD (Programmable Logic Device)). Это ИС с регулярной структурой (повторяющимися одинаковыми блоками), которую можно сконфигурировать (запрограммировать) в заданную структуру. Они могут быть перепрограммированы.

2. Заказные ИС. Это ИС, имеющие жесткую структуру, которую изменить невозможно. ASIC (Application-Specific Integrated Circuit) проблемно-ориентированная (специализированная) интегральная микросхема, заказная ИС. Микросхема для выполнения набора специальных функций (например, для управления устройством), обычно разрабатываемая под конкретного заказчика.

3. Полузаказные ИС. Это разновидность заказных ИС – и программируемые заказные ИС (Programmable ASIC), функциональность которых можно со временем наращивать. Они сочетают в себе и ASIC, и PLD особенности.

На рис. 2.61 представлена классификация ПЛИС по архитектуре

Рисунок 2.61 – Классификация ПЛИС по архитектуре

• PLD (Programmable Logic Device) – программируемое логическое устройство;

• SPLD (Standart PLD или Simple PLD) – стандартное или простое программируемое логическое устройство;

• PROM (Programmable Read Only Memory) – перепрограммируемое постоянное запоминающее устройство;

• PLA (Programmable Logic Array) – программируемая логическая матрица;

• PAL (Programmable Array Logic) – программируемая матричная логика;

• PLS (Programmable Logic Sequencer) – программируемый логический секвенсор;

• GAL (Generic Array Logic) – типовая или обобщенная матричная логика

• CPLD (Complex PLD) – сложное программируемое логическое устройство;

• FPGA (Field Programmable Gate Array) – программируемая пользователем вентильная матрица (классическая FPGA);

• FLEX (Flexible Logic Element Matrix) – матрица элементов гибкой логики (комбинированная FPGA);

Поскольку в Курсе ПТЦА мы работаем с платой Spartan-3E Starter Kit для программирования FPGA XC3S500E-5fg320, рассмотрим основные этапы автоматизированного проектирования устройств на ПЛИС на примере данной FPGA и в системе автоматизированного проектирования (САПР) Xilinx ISE (рис. 2.63).

На вход системы автоматизации проектирования поступает верифицированное описание устройства на поддерживаемом языке описания аппаратуры, например, VHDL-описание (файл с расширением vhd). Верификация – проверка правильности работы модели объекта.

VHDL (Very high speed integrated circuit (VHSIC) Hardware Description Language) язык описания аппаратуры, разработан в 80-е годы по заказу Министерства обороны США (стандарт IEEE 1076) в рамках проекта VHSIC по созданию высокоскоростной элементной базы.

Предназначен в первую очередь для спецификации – точного описания проектируемых схем и их моделирования на алгоритмическом, функционально-блочном и логическом уровнях проектирования. Имеет Ada-подобный синтаксис, позволяет описывать одновременные события, структуру системы, производить декомпозицию системы на подсистемы, моделировать работу системы и многое другое. Имеет ряд расширений для работы с аналоговыми и смешанными сигналами. Это входной язык для многих САПР электронных схем как программируемых, так и заказных.

Рисунок 2.63 – Основные этапы автоматизированного проектирования устройств на ПЛИС.

Синтез проекта – создание схемы, т.е. переход от функционально корректного описания проекта на языке VHDL к списку соединений (netlist), т. е. к машинно-ориентированной схематике.

Имплементация проекта – размещение схемы на целевой микросхеме. Имплементация проекта это последовательность событий, которая переводит netlist в файл программирования для устройства FPGA. Синтезируемый проект имеет ряд портов на верхнем уровне. Средствам имплементации необходимо знать, каким образом отводить порты проекта под физические выводы микросхемы FPGA, которая подсоединяется к различным ресурсам платы Spartan-3E Starter Kit. Если не сделать явных назначений, средства будут подключены к выводам случайным образом. Однако это плохой вариант, поскольку случайное назначение может быть неверным. Необходимо формировать файл пользовательских ограничений – user constraint file (UCF). Этот файл (c расширением usf) вмещает в себя ограничения, которые не были определены в VHDL описании, например, расположение выводов, ограничения на характеристики проекта. Скорее это удобнее делать в UCF, чем в VHDL описании. Например, если вы допускаете ошибку в назначении выводов, не нужно возвращаться и заново синтезировать проект.

В качестве примера UCF приведем листинг 2.2 для двухвходового сумматора по модулю два.

Листинг 2.1 – UCF для двухвходового элемент XOR

NET "a" LOC = "L13";

NET "b" LOC = "L14";

NET "c" LOC = "F12";

Здесь a и b – входные порты (сигналы), c – выходной порт (сигнал). L13 и L14 – выводы микросхемы FPGA XC3S500E-5fg320, подключенные к переключателям, задающим входные воздействия на плате. А F12 – вывод, подключенный к светодиоду на плате, на котором можно наблюдать результат.

В результате выполнения данного этапа формируется файл программирования ПЛИС. Для FPGA это bitstream, файл с расширением bit.

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

Программирование FPGA напрямую – удобный способ испытать проект. Этот метод полезен для прототипирования, когда проект не является окончательным, чтобы удостовериться в его правильности. Сложные проекты не всегда работают «с первой попытки». Одно из замечательных преимуществ FPGA перед ASIC схемами, состоит в том, что плата за ошибку при первой попытке минимальна. Ведь FPGA можно перепрограммировать, а ASIC придется выбросить.