Школа схемотехнического проектирования устройств обработки сигналов. Занятие 8. Средства визуальной разработки цифровых автоматов

№ 2’2001
PDF версия
При проектировании цифровых устройств очень удобно использовать их формализованную модель в виде конечного автомата. В англоязычной литературе прижился термин state machine.

Можно имитировать все, кроме истины,
ибо имитированная истина — не истина.
Мендел из Коцка

Занятие 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 и 0). Поддерживается битовое и векторное сравнение.

Пример эквивалентных операторов
Пример эквивалентных операторов

Общие приемы работы при вводе диаграммы состояний интуитивно понятны и не требуют особых пояснений. StateCAD поддерживает стандартный набор инструментов редактирования, включая масштабирование, скроллинг и отмену. Эти действия выполняются подобно тому, как это делается в большинстве других приложений Windows. Графические операции, включая перемещение, изменение габаритов, добавление, сокращение, копирование, склеивание и удаление могут быть отменены. Также могут быть отменены некоторые глобальные действия типа autosize, редактирование переменных и перемещение строки. Неграфическая операция обычно не может быть отменена. В перечень операций, которые не могут быть отменены, также входят и действия с файлами (открытие, сохранение, создание нового файла и т. д.), печать и установка на печать, все действия меню просмотра (View) (масштабирование, разбиение страниц, демонстрация опорных точек и обновление экрана). Невозможно отменить команды компиляции и диалогового окна настроек компиляции (compile Options dialog), а также результаты работы мастеров (Wizards). Если операция не может быть отменена, команда Undo недоступна в меню редактирования.

Большие диаграммы не всегда возможно показать целиком на экране. Чтобы сделать возможным просмотр и редактирование больших диаграмм, используются операции масштабирования и скроллинга.

Для облегчения работы при вводе и анализе диаграмм состояний используется механизм мастеров (Wizards). Рассмотрим мастера пакета StateCAD.

Мастер цифровых автоматов позволяет в диалоговом режиме автоматически определить параметры цифрового автомата. Он также дает возможность быстро создавать базовые автоматы (state machines), которые затем можно включить в более крупный проект или использовать самостоятельно. Используя диалоговые панели, мастера определяют тип автомата, режим сброса и типы переходов. После определения автомата закрывают окно мастера и помещают курсор в желаемое место расположения диаграммы переходов.

Начальное окно мастера автоматов(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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *