- •Основные процессы жизненного цикла Приобретение
- •Поставка
- •Разработка
- •Эксплуатация
- •Сопровождение
- •Адаптация стандарта
- •Ibm Rational ProjectConsole
- •Ibm Rational SoDa
- •1. Основы программных требований
- •Методология разработки сложных программных систем
- •Технология освоения и внедрения case-средств
- •Методика разработки функциональных моделей в среде idef0
- •14.1 Общие положения
- •14.2 Классификация функций, моделируемых блоками idef0
- •14.3 Организационно-технические структуры и механизмы idef0-моделей
- •14.4 Управление - особый вид процесса, операции, действия
- •14.5 Типизация функциональных моделей и idef0-диаграмм
- •Информационное моделирование в методике idef1x Концепция idef1x
- •Инструменты разработки программных средств.
- •Инструментальные среды разработки и сопровождения программных средств.
- •Инструментальные среды программирования.
- •Понятие компьютерной технологии разработки программных средств и ее рабочие места.
- •Инструментальные системы технологии программирования.
- •Структура программы на ассемблере
- •Синтаксис ассемблера
- •Директивы сегментации
- •Алфавит языка
- •Комментарии
- •Простые типы
- •Примечание
- •Сложные типы
- •Описание простых типов
- •Допустимое использование
- •Тип bit
- •Допустимое использование
- •Тип std_logic
- •Допустимое использование
- •Перечислимый тип
- •Пример:
- •Допустимое использование
- •Пример:
- •Тип severity_level
- •Тип character
- •Массивы
- •Примеры:
- •Строки, битовые строки и агрегаты
- •Подтипы
- •Пример:
- •Другие примеры:
- •Пример:
- •Общие сведения
- •Переопределенные типы (redefined types)
- •Методика верификациии синтезируемого описания (Verification methodology)
- •Верификация комбинационных устройств (Combinational verification)
- •Верификация последовательностных устройств (Sequential verification)
- •Моделирование элементов аппаратуры (Modeling hardware elements)
- •Синхронные последовательностные схемы (Edge-sensitive sequential logic) Типы тактового сигнала (Clock signal type)
- •Определение фронта тактового сигнала
- •Передний фронт
- •Задний фронт
- •Описание синхронных последовательностных устройств
- •Использование оператора if
- •Использование конструкции wait
- •Асинхронные сброс и установка (asynchronous set-reset)
- •Последовательностные узлы с потенциальным управлением (level-sensitive sequential logic)
- •Логика с третьим состоянием и моделирование шин (Three-state and bus modeling)
- •Описание комбинационных логических схем (Modeling combinational logic)
- •Директивы компилятора (псевдокомментарии, Pragmas)
- •Атрибуты (Attributes)
- •Атрибут компилятора enum_encoding
- •Метакомментарии (Metacomments)
Пример:
Предположим, что разработчик желает создать сигнал A типа severity и что A может принимать значения только OKAY, NOTE и WARNING.
TYPE severity IS (OKAY, NOTE, WARNING, ERROR, FAILURE); SUBTYPE go_status IS severity RANGE OKAY TO WARNING; SIGNAL A: go_status;
Базовый тип и ограничение диапазона могут быть включены непосредственно в объявление объекта. Объявление сигнала A, эквивалентное приведенному выше, будет выглядеть следующим образом:
SIGNAL A: severity RANGE OKAY TO WARNING;
Другие примеры:
SUBTYPE pin_count IS INTEGER RANGE 0 TO 400; SUBTYPE digits IS character range '0' TO '9';
Подтипы, объявленные таким образом, могут также участвовать в описании ограниченных массивных типов (см. «Массивы»). Во-вторых, подтип может определить границы диапазона индексов для неограниченного (unconstrained) массивного типа. В этом случае объявление подтипа выглядит следующим образом: SUBTYPE имя_подтипа IS имя_базового_типа (диапазон_индексов [, диапазон_индексов] ); диапазон_индексов определяется следующим образом:
m TO n n DOWNTO m где m, n — целочисленные константы, m <= n.
Такое использование подтипа может быть удобно при наличии большого числа объектов некоторого типа с одинаковыми ограничениями на индексы.
Пример:
TYPE bit6_data IS ARRAY (POSITIVE RANGE <>) OF bit6; SUBTYPE data_store IS bit6_data (63 DOWNTO 0); SIGNAL A_reg, B_reg,C_reg: data_store; VARIABLE temp: data_store;
В языке имеются два предопределенных числовых подтипа natural и positive, которые определены как:
SUBTYPE NATURAL IS INTEGER RANGE 0 TO highest_integer; SUBTYPE POSITIVE IS INTEGER RANGE 1 TO highest_integer;
Языки синтезируемого описания аппаратного обеспечения.
Общие сведения
Как известно, изначально язык описания аппаратуры VHDL создавался как средство моделирования цифровых систем. Однако его популярность и определенные удобства, появившиеся у разработчика, привели к тому, что модели на языке VHDL стали средством описания алгоритмов, синтезируемых специальными программными средствами в файлы прошивки (межсоединений) ПЛИС. В то же время для каждого программного продукта набор поддерживаемых конструкций языка различается, и порой довольно существенно. В настоящее время сделана попытка определить синтезируемое подмножество языка VHDL в стандарте IEEE P1076.6. Определяются те элементы языка, которые могли бы быть синтезированы средствами синтеза (компиляторами) на уровне регистровых передач (register transfer level). В этом случае средства синтеза (synthesis tools), удовлетворяющие стандарту IEEE P1076.6, могли бы обеспечить подлинную переносимость проекта и возможность единообразного описания. Рассмотрим элементы синтезируемого подмножества языка VHDL.
Переопределенные типы (redefined types)
Средства синтеза, которые соответствуют стандарту IEEE P1076.6, должны поддерживать следующие переопределенные типы:
BIT, BOOLEAN и BIT_VECTOR в соответствии со стандартом IEEE Std 1076-1993;
INTEGER в соответствии со стандартом IEEE Std 1076-1993;
STD_ULOGIC, STD_ULOGIC_VECTOR, STD_LOGIC и STD_LOGIC_ в соответствии с пакетом (Package) STD_LOGIC_1164 (стандарт IEEE Std 1164-1993);
SIGNED и UNSIGNED в соответствии с пакетом NUMERIC_BIT, являющимся частью стандарта IEEE Std 1076.3-1997;
SIGNED и UNSIGNED в соответствии с пакетом (package) NUMERIC_STD, являющимся частью стандарта IEEE Std 1076.3-1997.
Кроме того, должна быть обеспечена поддержка средствами синтеза типов, определенных пользователем (user-defined types).
