Школа схемотехнического
проектирования устройств обработки сигналов
Можно имитировать все, кроме истины,
Занятие 8. ибо имитированная истина — не истина.
Средства визуальной разработки цифровых автоматов. Мендел из Коцка
При проектировании цифровых устройств очень удобно использовать их формализованную модель в виде конечного автомата. В англоязычной литературе прижился термин state machine. Методы проектирования цифровых автоматов, их теория неплохо изложены в литературе (см., например, [1-5]). В этом занятии мы рассмотрим программный продукт StateCAD фирмы Visual Software Solutions, Inc., предназначенный для моделирования цифровых автоматов и создания их описаний на языках описания аппаратуры, пригодных для реализации на ПЛИС [6-8]. Пакет StateCAD представляет собой инструмент графического ввода описания цифрового автомата в виде диаграммы (графа) состояний. В пакет включены следующие основные компоненты: StateBench — генератор тестов (test bench generation) и средство поведенческой верификации проекта (behavioral verification), ряд мастеров (Wizards)-описания диаграммы состояний автомата (FSM), логики (Logic), проекта (Design), оптимизации (Optimization), средство просмотра и редактирования файлов на языках описания аппаратуры (HDL Browser). Все компоненты разработаны для 32-разрядной среды Windows 95/98/NT. После графического ввода диаграммы состояний цифрового автомата StateCAD автоматически генерирует моделируемый и синтезируемый HDL-код, реализующий заданный автомат.
Владимир Стешенко
Рис. 1
оддерживаются следующие языки описания аппаратуры (HDL): VHDL-1076, Verilog, .ABEL — HDL, AHDL или ANSI-C; язык описания проектируемого автомата можно выбрать, нажав на соответствующую кнопку.
Нетрудно заметить, что такой подход, реализованный в StateCAD, значительно повышает производительность разработчика. StateCAD имеет развитые средства контроля и верификации проекта. Интерактивные диалоговые окна позволяют обнаружить неиспользованные условия, задержки в состояниях, неопределенные условия, синтаксические ошибки и неполные блоки диаграмм состояния на ранней стадии разработки проекта. StateCAD позволяет найти ошибки до моделирования. Выполненный в StateCAD проект можно проверить с использованием StateBench. После выполнения функциональной верификации тестовые воздействия (test bench) с учетом временных ограничений генерируются автоматически, их можно использовать в дальнейшем для временной верификации проекта после его синтеза на ПЛИС.
Для установки пакета достаточно довольно скромных аппаратных и программных средств. Необходимо наличие процессора не ниже 386, 16 Мбайт оперативной памяти и жесткого дис-
ка с 32 Мбайт доступного пространства. Statecad поддерживает мышь с двумя кнопками. Если у вас мышь с тремя кнопками, то средняя не используется.
С большим объемом ОЗУ и места на жестком диске доступны для выполнения большие по объему проекты. StateCAD допускает для моделирования и синтеза диаграммы состояний проекты, имеющие практически неограниченное число состояний, переходов и переменных. Однако проект может быть сжат до размеров, соответствующих объему памяти системы.
StateCAD используется как инструмент для разработки диаграмм состояний цифровых автоматов и начального анализа проекта. Выходные файлы StateCAD — это файлы на языках описания аппаратуры (VHDL, Verilog, ABEL — HDL, AHDL или C) и профессиональная документация. StateCAD поддерживает наиболее популярные HDL и имеет специальные средства поддержки компиляторов с VHDL и Verilog основных производителей. Выходные данные VHDL и Verilog могут компилироваться с использованием компиляторов из ViewLogic, Exemplar, Synopsys, Synario и других языков. Компилируемый VHDL может как моделироваться, так и синтезироваться для реализации на ПЛИС.
Если проект был выполнен в StateCAD, поведенческая верификация осуществляется с использованием StateBench. StateBench позволяет провести пошаговую проверку цифрового автомата. На рис. 1 приведен типичный процесс разработки цифрового автомата в пакете StateCAD.
Рассмотрение основных приемов работы с пакетом StateCAD начнем с окна диаграмм состояний (The Diagram Window). Оно позволяет отображать и редактировать диаграммы состояний цифровых автоматов.
StateCAD использует фиксированную цветовую схему. Область рисования окна диаграмм состояний всегда белого цвета, выбранные объекты всегда красного цвета, а невы-бранные объекты отображаются на экране в цветах, заданных пользователем. Нельзя открывать одновременно несколько окон в StateCAD. Окно диаграмм состояний StateCAD представлено на рис. 2.
Панель редактирования (Edit Mode Tool Bar)
0\ j>\ ВІИІХ
Панель работы с файлами (File Tool Bar)
анйшідіші®
Панель инструментов просмотра (View Tool Bar)
Панель мастеров (Wizard Tool Bar)
|Ч|ф|р?Н »^[[VHM 4
Рис. З. Панели инструментов StateCAD
Рис. 2
На рис. 2 введены следующие обозначения:
Diagram Window Окно диаграмм состояний
Browser Window Обозреватель файлов на языках описания аппаратуры. Позволяет просмотреть и распечатать код на языке описания аппаратуры, соответствующий текущей диаграмме состояний
Menu Bar Панель меню
Scroll Controls Панель прокрутки
Tool Bars Панель инструментов
Status bar Панель состояния
Строка состояния (status bar) в нижней части окна диаграмм состояния показывает информацию о назначении текущей команды. Строку состояния можно скрыть, используя меню команд Windows, Status Bar.
Команды StateCAD могут быть выполнены из панели инструментов, выпадающих меню и горячих клавиш с клавиатуры. Например, команду Вырезать (Cut) можно выполнить несколькими различными способами.
Команда меню Горячие клавиши Пиктограмма
Edit, Cut [ALT]+[E], [T] or [CTRL]+[X]
Панели инструментов (toolbar) включают в себя как стандартные команды Windows, так и панели инструментов рисования (Draw Mode), просмотра (View), работы с файлами (File), редактирования (Edit), установки цветов (Colors) и мастеров (Wizards). На рис. 3 представлены панели инструментов State-CAD
Панель процессов (Process Bar)
Панель установки цветов (Color bar)
Панель рисования (Draw Mode Tool Bar)
\ |в|э{~||ц|&>|е|е
Имена переменных в 81а1еСАБ начинаются с буквы и могут включать до шестнадцати знаков. Последний знак должен быть алфавитно-цифровым (А- 2, а-г, 0-9). Остающиеся знаки могут быть алфавитно-цифровыми, а также символами подчеркивания. Можно использовать только единичное подчеркивание — в случае двойного подчеркивания программа выдаст сообщение об ошибке. Имена нечувствительны к регистру. Имена сигналов могут включать не более 16 знаков, а имена векторов — не более 14.
Константы могут использоваться с операторами неравенства с целью сравнения векторов. Они могут быть определены в двоичной, восьмеричной, десятичной и шестнадцатеричной системах счисления. Двоичные константы могут также быть определены с использо-
ванием синтаксиса языка УИБЬ. Одноразрядные константы закрыты в котировках, многоразрядные константы закрыты в двойных котировках. Чтобы точно указать систему исчисления, символ «л» сопровождается знаком основания системы исчисления:
Binary (2) 0, 1 b or B
Octal (8) 0..7 o or O
Decimal (10) 0..9 d or D
Hex (16) 0..9, A..F, a..f h or H
Пример правильно заданных констант.
лЫ0100101 Лo245 лd165 165 лі^5
лB00001Ш л017 ЛD15 '1' «10010»
Пробелы и другие знаки не допускаются в константах.
Разновидностью констант являются предопределенные константы (Predefined Constants). Эти операторы нечувствительны к регистру. Они могут использоваться в уравнениях так же, как и переменные.
Оператор Значение
TRUE Всегда истинно
FALSE Всегда ложно
Алфавит пакета StateCAD допускает определение имен переменных, констант, булевых уравнений и комментариев. В табл. 1 представлен алфавит системы StateCAD
StateCAD поддерживает ряд логических операторов, представленных в табл. 2.
Неравенства в StateCAD определены для векторов и констант и выдают булевский (одноразрядный) результат. Неравенства могут использоваться как в битовых, так и в векторных выражениях.
Векторные выражения могут включать логические операции (и/или/отрицание) неравенства, битовую логику (типа мультиплексирования шины), сложение или вычитание векторов или констант. Операции сложения и вычитания требуют, чтобы операнды были заключены в скобки. Операции сложения и вычитания могут применяться только с векторными переменными и константами, выражения нельзя использовать как операнды. Использование операции сложения допустимо для реализации счетчиков (например, COUNT=COUNT+1. Также использование операции сложения позволяет создавать АЛУ и другие сложные функциональные блоки.
Группы и диапазоны в StateCAD используются для различных операций. Биты и векторы могут группироваться вместе, чтобы формировать большие векторы для сравнения (A:B:C > 3), группироваться для сдвига (SHIFT = SHIFT6.. SHIFT0:DIN), вращения (ROT = ROT6.. ROT0:ROT7), или присваивания (BH = A3...A0 AND EN OR A7...A4 AND NOT EN). Константы 1/0 могут быть также связаны вместе с битовыми сигналами и векторами, чтобы дополнить или замаскировать векторы (RES = 0:0:R1:R0).
Биты группируются вместе с помощью оператора конкатенации (двоеточие) и битового оператора диапазона (многоточие). Группируемые биты трактуются как векторы, и все операции, допустимые над векторами, допустимы и для них.
Таблица 1. Алфавит системы StateCAD
Символ Значение Использование
Буквы, цифры, подчеркивание A..Z, a..z, 0..9, _ Имена
Скобки ( ) Вложенные операторы
Степень л Определение системы счисления
Ат @ Маркер зарезервированных слов
Амперсанд & И
Фунт # Или
Черта I Или
Восклицательный знак ! Отрицание
Прямой слэш / Не равно
Квадратные скобки [ ] Определение вектора
Плюс, минус +, - Сложение-вычитание векторов
Неравенство >, <, =, Неравенство векторов
Двоеточие Конкатенация
Многоточие Диапазон
Кавычки «, ' Многобитные или однобитные двоичные константы
Все остальные символы Все остальные символы Комментарий
Таблица 2.
Symbol Operator
# I OR Или
& AND И
! NOT Отрицание
+ Векторное сложение
Векторное вычитание
Операторы VHDL/VERILOG в StateCAD могут быть использованы для определения ряда логических условий. Подмножество стандартных операторов VHDL 1076 (и OVI Verilog) может использоваться в условиях и выходных данных, позволяя вводить диаграмму состояний таким образом, что используется логика языков VHDL, Verilog или ABEL — HDL. При этом форматы ABEL — HDL, Altera-HDL, Verilog, и VHDL могут быть скомбинирован-ны. Поддерживаются VHDL операторы назначения сигналов BIT <= '1'; or BIT <='0'; or BUS <= «10...1»; or BUS <= constant; операторы Verilog &, I,!, и оператор = для назначения. Поддерживаемые операции для условий — операторы равенства (=, / =, <, <. =, >, > =), логические операторы (И, ИЛИ, НЕ) и двоичные константы (только 1 и 0). Поддерживается битовое и векторное сравнение.
Пример эквивалентных операторов приведен на рис. 4.
ния, включая масштабирование, скроллинг и отмену. Эти действия выполняются подобно тому, как это делается в большинстве других приложений Windows. Графические операции, включая перемещение, изменение габаритов, добавление, сокращение, копирование, склеивание и удаление могут быть отменены. Также могут быть отменены некоторые глобальные действия типа autosize, редактирование переменных и перемещение строки. Неграфическая операция обычно не может быть отменена. В перечень операций, которые не могут быть отменены, также входят и действия с файлами (открытие, сохранение, создание нового файла и т. д.), печать и установка на печать, все действия меню просмотра (View) (масштабирование, разбиение страниц, демонстрация опорных точек и обновление экрана). Невозможно отменить команды компиляции и диалогового окна настроек компиляции (compile Options dialog), а также результаты работы мастеров (Wizards). Если операция не может быть отменена, команда Undo недоступна в меню редактирования.
Большие диаграммы не всегда возможно показать целиком на экране. Чтобы сделать возможным просмотр и редактирование больших диаграмм, используются операции масштабирования и скроллинга.
Синтаксис VHDL
{A='l' AND В= 0 ) OR (XBUS=ri 1 001"} VEC <= (XBUS AND Q} OR (YBUS AND NOT Qj;
Синтаксис Verilog
50 . (A a !B) I (XBUS=9)
X > VEO[XBUS & Q} I [YBUS & !Q);
Рис. 4
Общие приемы работы при вводе диаграммы состояний интуитивно понятны и не требуют особых пояснений. 81а1еСАБ поддерживает стандартный набор инструментов редактирова-
Для облегчения работы при вводе и анализе диаграмм состояний используется механизм мастеров (Wizards). Рассмотрим мастера пакета StateCAD.
Мастер автоматов (FSM Wizard)
Мастер цифровых автоматов позволяет в диалоговом режиме автоматически определить параметры цифрового автомата. Он также дает возможность быстро создавать базовые автоматы (state machines), которые затем можно включить в более крупный проект или использовать самостоятельно. Используя диалоговые панели, мастера определяют тип автомата, режим сброса и типы переходов. После определения автомата закрывают окно мастера и помещают курсор в желаемое место расположения диаграммы переходов.
На рис. 5 представлено начальное окно мастера автоматов
пвёвез1^^йшвЯЙ1НКШ1
1ч4к1>;|±* ь-р-іьіг-ь ;! ±я а:гч -.кЬк - якюН І4л-;- я pJicrt 's і hfdupin
Кі -rt.-и
I І І I
Рис. S. Мастер автоматов
Оптимизацию автомата и сгенерированного кода удобно выполнять с помощью мастера оптимизации (Optimization Wizard).
Для получения наилучших результатов синтеза проекта (быстродействие, занимаемые ресурсы, порты и т. п.) требуется определить целевые функции и устройство, в котором будет реализован проект (target device). Мастер оптимизации позволяет определить необходимые для оптимизации цели, параметры и ограничения в удобной диалоговой форме. На рис. 6 представлено одно из окон мастера оптимизации.
l1-;-.?! гг н mn - :i:: i; nr- и trn+K1
.Лл li-ikuh HiiiiiKi-|i-iuiiilBiUi^i^.kti qlim
Sits че+і ■‘СІЛ Огнічй Ст-іл fcita і .'ячіСийіиш TadCbniS'i
• Ы Г.Лл --ЬЗТГ дій lu'V* fWUU К-1 Jfal Ч4А№.||Ы ijiUi'f.. І-* ГЭВЬ.-Si.V. |U‘>№ "^i'M4ii'i-fiia -,h4lk- ■■(.Ы ■ плр 'Liuni'^
"f itriJ ґ ' <a4J^і'т,1 г■ ■ rfjі—i"i Г ’ л-j г.-.-fc Iі ■ —.п
I
Рис. б. Мастер оптимизации
Мастер проекта (Design Wizard) автоматизирует разработку законченной скелетной конструкции, включая компиляцию и анализ автомата.
Мастер логики (Logic Wizard) упрощает разработку логики обработки потоков данных. Он позволяет выбрать потоковые логические шаблоны и имена сигналов. В результате выбора формируются соответствующие уравнения, создаются определения портов, определяются управляющие сигналы. Логический мастер поддерживает счетчики, мультиплексоры, сдвигающие устройства, защелки и ряд других. Окно мастера логики представлено на рис. 7.
На рис. 8 показаны логические объекты, поддерживаемые мастером логики.
В рамках одного занятия невозможно рассмотреть все особенности работы с таким мощным и удобным средством, как 81а1еСАБ. В следующем занятии мы продолжим рассмотрение особенностей работы со средствами визуальной разработки цифровых устройств. Н
Литература
1. Угрюмов Е. П. Цифровая схемотехника. — СПб.: БХВ — Санкт-Петербург, 2000.
2. Хоуп Г. Проектирование цифровых вычислительных устройств на интегральных схемах. — М.: Мир, 1984.
3. Пухальский Г. И., Новосельцева Т. Я. Цифровые устройства / Учебное пособие для втузов. - СПб.: Политехника, 1996.
4. Савельев А. Я. Арифметические и логические основы цифровых автоматов. -М.: Высшая школа, 1980
5. Потемкин И. С. Функциональные узлы цифровой автоматики. М.: Энергоатомиздат, 1986. — 320 с.: ил.
6. Стешенко. В. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов — М.: Додэка, 2000.
7. Стешенко В. Б. Школа схемотехнического проектирования устройств обработки сигналов. // Компоненты и технологии, №3-6, 2000.
8. Стешенко В. Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС // Chip News, 1999, № 8-10, 2000, № 1, 3 -5.
MulMplexers
Рис. 8