Владимир Стешенко
Школа схемотехнического
проектирования устройств обработки сигналов
Можно имитировать все, кроме истины,
ибо имитированная истина — не истина.
Мендел из Коцка
Занятие 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-код, реализующий заданный автомат.
Поддерживаются следующие языки описания аппаратуры (HDL): VHDL-1076, Verilog, ABEL — HDL, AHDL или ANSI-C; язык описания проектируемого автомата можно выбрать, нажав на соответствующую кнопку.
Нетрудно заметить, что такой подход, реализованный в StateCAD, значительно повышает производительность разработчика. StateCAD имеет развитые средства контроля и верификации проекта. Интерактивные диалоговые окна позволяют обнаружить неиспользованные условия, задержки в состояниях, неопределенные условия, синтаксические ошибки и неполные блоки диаграмм состояния на ранней стадии разработки проекта. StateCAD позволяет найти ошибки до моделирования. Выполненный в StateCAD проект можно проверить с использованием StateBench. После выполнения функциональной верификации тестовые воздействия (test bench) с учетом временных ограничений генерируются автоматически, их можно использовать в дальнейшем для временной верификации проекта после его синтеза на ПЛИС.
|
Рис. 1 |
Для установки пакета достаточно довольно скромных аппаратных и программных средств. Необходимо наличие процессора не ниже 386, 16 Мбайт оперативной памяти и жесткого диска с 32 Мбайт доступного пространства. Statecad поддерживает мышь с двумя кнопками. Если у вас мышь с тремя кнопками, то средняя не используется.
С большим объемом ОЗУ и места на жестком диске доступны для выполнения большие по объему проекты. StateCAD допускает для моделирования и синтеза диаграммы состояний проекты, имеющие практически неограниченное число состояний, переходов и переменных. Однако проект может быть сжат до размеров, соответствующих объему памяти системы.
|
Рис. 2 |
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.
На рис. 2 введены следующие обозначения:
Diagram Window |
Окно диаграмм состояний |
Browser Window |
Обозреватель файлов на языках описания аппаратуры. Позволяет посмотреть и распечатать код на языке описания аппаратуры, соответствующий текуще диаграмме состояний |
Menu Bar |
Панель меню |
Scroll Controls |
Панель прокрутки |
Tool Bars |
Панель инструментов |
Status Bar |
Панель состояния |
Панели инструментов (toolbar) включают в себя как стандартные команды Windows, так и панели инструментов рисования (Draw Mode), просмотра (View), работы с файлами (File), редактирования (Edit), установки цветов (Colors) и мастеров (Wizards). На рис. 3 представлены панели инструментов State-CAD
Панель процессов (process Bar)
Панель установки цветов (Color Bar)
Панель рисования (Draw Mode Tool Bar)
Панель редактирования (Edit Mode Tool Bar)
Панель работы с файлами (File Tool Bar)
Панель инструментов просмотра (View Tool Bar)
Панель мастеров (Wizard Tool Bar)
Рис. 3. Панели инструментов в State CAD
Строка состояния (status bar) в нижней части окна диаграмм состояния показывает информацию о назначении текущей команды. Строку состояния можно скрыть, используя меню команд Windows, Status Bar.
Команды StateCAD могут быть выполнены из панели инструментов, выпадающих меню и горячих клавиш с клавиатуры. Например, команду Вырезать (Cut) можно выполнить несколькими различными способами.
Команда меню |
Горячие клавиши |
Edit, Cut |
[ALT]+[E], [T] or [CTRL]+[X] |
Имена переменных в StateCAD начинаются с буквы и могут включать до шестнадцати знаков. Последний знак должен быть алфавитно-цифровым (A– Z, a–z, 0–9). Остающиеся знаки могут быть алфавитно-цифровыми, а также символами подчеркивания. Можно использовать только единичное подчеркивание — в случае двойного подчеркивания программа выдаст сообщение об ошибке. Имена нечувствительны к регистру. Имена сигналов могут включать не более 16 знаков, а имена векторов — не более 14.
Константы могут использоваться с операторами неравенства с целью сравнения векторов. Они могут быть определены в двоичной, восьмеричной, десятичной и шестнадцатеричной системах счисления. Двоичные константы могут также быть определены с использованием синтаксиса языка VHDL. Одноразрядные константы закрыты в котировках, многоразрядные константы закрыты в двойных котировках. Чтобы точно указать систему исчисления, символ «^» сопровождается знаком основания системы исчисления:
Binary (2) |
0,1 |
b or B |
Octal (8) |
0..7 |
o or O |
Decimal (10) |
0..9 |
d or D |
Hax (16) |
0..9, A..F, a..f |
h or H |
Пример правильно заданных констант.
^b10100101 |
^o245 |
^o165 |
165 |
^hA5 |
^B00001111 |
^O17 |
^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 А7...A4 AND NOT EN). Константы 1/0 могут быть также связаны вместе с битовыми сигналами и векторами, чтобы дополнить или замаскировать векторы (RES = 0:0:R1:R0).
Биты группируются вместе с помощью оператора конкатенации (двоеточие) и битового оператора диапазона (многоточие). Группируемые биты трактуются как векторы, и все операции, допустимые над векторами, допустимы и для них.
Таблица 1. Алфавит системы StateCAD
Символ |
Значение |
Использование |
Буквы, цифры, подчеркивание |
A..Z, a..z, 0..9, _ |
Имена |
Скобки |
( ) |
Вложенные операторы |
Степень |
^ |
Определение системы счисления |
Ат |
@ |
Маркер зарезервированных слов |
Амперсанд |
& |
И |
Фунт |
# |
Или |
Черта |
| |
Или |
Восклицательный знак |
! |
Отрицание |
Прямой слэш |
/ |
Не равно |
Квадратные скобки |
[] |
Определение вектора |
Плюс, минус |
+, - |
Сложенеи-вычитание векторов |
Неравенство |
<, >, = |
Неравенство векторов |
Двоеточие |
: |
Конкатенация |
Многоточие |
.. |
Диапазон |
Кавычки |
", ' |
Монобитные или однобитные двоичные константы |
Все остальные символы |
Все остальные символы |
Комментарий |
Таблица 2
Symbol |
Operator |
# | 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 &, |,!, и оператор = для назначения. Поддерживаемые операции для условий — операторы равенства (=, / =, <, <. =, >, > =), логические операторы (И, ИЛИ, НЕ) и двоичные константы (только 1 и 0). Поддерживается битовое и векторное сравнение.
Пример эквивалентных операторов приведен на рис. 4.
Общие приемы работы при вводе диаграммы состояний интуитивно понятны и не требуют особых пояснений. StateCAD поддерживает стандартный набор инструментов редактирования, включая масштабирование, скроллинг и отмену. Эти действия выполняются подобно тому, как это делается в большинстве других приложений Windows. Графические операции, включая перемещение, изменение габаритов, добавление, сокращение, копирование, склеивание и удаление могут быть отменены. Также могут быть отменены некоторые глобальные действия типа autosize, редактирование переменных и перемещение строки. Неграфическая операция обычно не может быть отменена. В перечень операций, которые не могут быть отменены, также входят и действия с файлами (открытие, сохранение, создание нового файла и т. д.), печать и установка на печать, все действия меню просмотра (View) (масштабирование, разбиение страниц, демонстрация опорных точек и обновление экрана). Невозможно отменить команды компиляции и диалогового окна настроек компиляции (compile Options dialog), а также результаты работы мастеров (Wizards). Если операция не может быть отменена, команда Undo недоступна в меню редактирования.
Большие диаграммы не всегда возможно показать целиком на экране. Чтобы сделать возможным просмотр и редактирование больших диаграмм, используются операции масштабирования и скроллинга.
Для облегчения работы при вводе и анализе диаграмм состояний используется механизм мастеров (Wizards). Рассмотрим мастера пакета StateCAD.
Мастер цифровых автоматов позволяет в диалоговом режиме автоматически определить параметры цифрового автомата. Он также дает возможность быстро создавать базовые автоматы (state machines), которые затем можно включить в более крупный проект или использовать самостоятельно. Используя диалоговые панели, мастера определяют тип автомата, режим сброса и типы переходов. После определения автомата закрывают окно мастера и помещают курсор в желаемое место расположения диаграммы переходов.
|
На рис. 5 представлено начальное окно мастера автоматов (FSM Wizard) |
Оптимизацию автомата и сгенерированного кода удобно выполнять с помощью мастера оптимизации (Optimization Wizard).
Для получения наилучших результатов синтеза проекта (быстродействие, занимаемые ресурсы, порты и т. п.) требуется определить целевые функции и устройство, в котором будет реализован проект (target device). Мастер оптимизации позволяет определить необходимые для оптимизации цели, параметры и ограничения в удобной диалоговой форме. На рис. 6 представлено одно из окон мастера оптимизации.
|
Рис. 6. Мастер оптимизации |
Мастер проекта (Design Wizard) автоматизирует разработку законченной скелетной конструкции, включая компиляцию и анализ автомата.
Мастер логики (Logic Wizard) упрощает разработку логики обработки потоков данных. Он позволяет выбрать потоковые логические шаблоны и имена сигналов. В результате выбора формируются соответствующие уравнения, создаются определения портов, определяются управляющие сигналы. Логический мастер поддерживает счетчики, мультиплексоры, сдвигающие устройства, защелки и ряд других. Окно мастера логики представлено на рис. 7.
|
Рис. 7 |
На рис. 8 показаны логические объекты, поддерживаемые мастером логики.
В рамках одного занятия невозможно рассмотреть все особенности работы с таким мощным и удобным средством, как StateCAD. В следующем занятии мы продолжим рассмотрение особенностей работы со средствами визуальной разработки цифровых устройств.
Рис. 8
Литература
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.
steshenk@sm.bmstu.ru
|