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

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

CC BY
190
55
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Стешенко Владимир

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

Школа схемотехнического

проектирования устройств обработки сигналов

Можно имитировать все, кроме истины,

Занятие 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-код, реализующий заданный автомат.

Владимир Стешенко

[email protected]

Рис. 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.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Мастер автоматов (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

i Надоели баннеры? Вы всегда можете отключить рекламу.