Языки описания аппаратуры реферат

Обновлено: 02.07.2024

Язык описания аппаратуры (англ. hardware description language ) — тип компьютерных языков для формального описания электрических цепей, особенно цифровой логики. Он описывает структуру и функционирование цепи.

Основные представители

Наиболее часто используются языки

  • Advanced Boolean Expression Language (ABEL) (Altera HDL, проприетарный язык от Altera)
  • Bluespec (высокоуровневый язык на основе Haskell с синтаксисом SystemVerilog) (функциональный HDL; не поддерживается)
  • CUPL (проприетарный язык от Logical Devices, Inc.)
  • Handel-C (Си-подобный) (преобразует Си в Verilog)
  • ELLA (больше не используется) (основан на Objective Caml) (на основе Join Java) (на основе SML) (на основе Haskell)
  • Impulse C (Си-подобный)
  • JHDL (на основе Java) (на основе Haskell)
  • Lola (простой язык для обучения)
  • MyHDL (на основе Python)
  • PALASM (для устройств Programmable Array Logic)
  • Ruby (язык описания аппаратуры) (на основе Ruby)
  • SystemVerilog, надмножество Verilog , на основе Си++
  • SystemTCL, на основе Tcl

Ссылки

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "Язык описания аппаратуры" в других словарях:

язык Verilog — Язык описания аппаратуры, разработанный Филом Морби (Phil Morby) в конце 1980 х годов. Позволяет описывать электронное устройство как на уровне компонент, плат, так и на уровне системы. После того, как компания Cadence сделала его общедоступным,… … Справочник технического переводчика

ЯЗЫК ЭКСПЛУАТАЦИОННЫХ ДОКУМЕНТОВ — (ЯзЭД) символьный формализованный язык, предназначенный для описания деятельности операторов и построения эксплуатационных функциональных схем. Разработан Ю. Г. Фокиным в 70 е гг. первоначально как язык описания эксплуатационных действий, а позже … Энциклопедический словарь по психологии и педагогике

Язык — 1) орган, имеющийся у многих животных и расположенный во рту; у человека служит средством невербальной коммуникации путем показывания его; 2) пленный, посредством допроса которого предполагается получить сведения; 3) система сигналов,… … Мир Лема - словарь и путеводитель

Компьютерный язык — Понятие компьютерный язык (калька с англ. computer language), как правило, относится к языкам, ассоциируемым с компьютерной техникой. Чаще всего, этот термин соответствует понятию языка программирования, однако это соответствие не является… … Википедия

ЯЗЫКИ ОПИСАНИЯ ДЕЯТЕЛЬНОСТИ ОПЕРАТОРА — специальные символьные языки, предназначенные для записи алгоритмов, различного рода предписаний и инструкций, регламентирующих деятельность операторов. Символьные Я. о. д. о. обеспечивают сокращение объема документов и создают условия для… … Энциклопедический словарь по психологии и педагогике

VHDL — Появился в: 1983 Типизация данных: строгая Испытал влияние: Ada, Pascal VHDL (англ. VHSIC (Very high speed integrated circuits) Hardware Description Language) язык описания аппар … Википедия

Verilog — Класс языка: Язык описания аппаратуры Появился в: 1983 1984 Автор(ы): Phil Moorby, Prabhu Goel Расширение файлов: .v Verilog, Verilog HDL (англ. Verilog Hardwar … Википедия

AHDL — AHDL проприетарный язык описания аппаратуры от Altera Corporation предназначенный для программированя выпускаемых ей ПЛИС. Язык имеет Ада подобный синтаксис и схож с VHDL или Verilog. Он поддерживается компиляторами Quartus и Max+ от Altera … Википедия

50754 — ГОСТ Р 50754 < 95>Язык описания аппаратуры цифровых систем VHDL. Описание языка. ОКС: 35.060 КГС: П85 Виды представления информации и математическое обеспечение машин Действие: С 01.01.96 Текст документа: ГОСТ Р 50754 «Язык описания аппаратуры… … Справочник ГОСТов


Развитие вычислительной техники привило к разработке языков описания цифровой аппаратуры. На сегодняшний день одними из основных языков описания цифровой аппаратуры являются Verilog (Verilog-HDL) и VHDL.

Исторически сложилось так, что в первой половине восьмидесятых годов XX века по инициативе Министерства обороны США был разработан язык спецификации проектов ( VHDL ). Стандарт ANSI / IEEE STD 1076–1987 на версию языка бал утвержден в 1987 году. В последующем стандарты языка менялись, к примеру: IEEE STD 1076–1993, IEEE STD 1076–1999, IEEE STD 1076–2002, IEEE STD 1076–2008.

В 1985 г. фирмой Gateway Design Automaton был разработан язык моделирования аппаратуры Verilog - HDL . Первый стандарт языка был утвержден в 1995 году ( IEEE 1364–1995) [1].

На сегодняшний день сложно представить описания цифровых схем без них.Вданной статье рассмотрена общая информация о языках описания цифровой аппаратуры Verilog ( Verilog - HDL ) и VHDL , их достоинства и недостатки.

Структура проекта в VHDL .

Основной структурной единицей VHDL является ENTITY . Декларация ENTITY определяет имя проекта и, необязательно, его интерфейс, т. е. порты и параметры настройки. Пакет — это набор объявлений вводимых пользователем типов, переменных, констант, подпрограмм и т. п. Архитектурные тела представляют содержательное описание проекта [2, c.395]. В VHDL представление сигналов реализовано в библиотеке std_logic_1164. Архитектурное тело представляет описание функций и процедур.

Типы данных.

Как и практически во всех языках программирования в VHDL используются типы данных. VHDL является строго типизированным языком. Любой единице информации в VHDL присваивается имя и определяется тип.

1. integer — целый;

2. real — действительный;

3. bit — представляет один логический бит (значение ‘0’ либо ‘1’);

4. boolean объекты этого типа принимают значения true либо false;

5. character объединяет все символы;

6. time — используется для задания задержек;

7. severity_level служит для управления работой компилятора;

8. file_open_statusи file_open_kind — обеспечивают возможность контроля процедур между программой и файловой системой компьютера;

9. stringи bit_vector — массив символов и битов соответственно.

Объекты выполняют роль хранения различных значений. Идентификаторы обязательно должны начинаться с буквы. Объекты должны быть объявлены перед использованием, за исключением переменной цикла в операторе for, которая объявляется по умолчанию.

- Constant — константы.

- Variable — переменные.

- Signal — сигналы, представляют значения, передаваемые по проводам.

Синтаксис объявления объектов:

Constant : Type [(index_range [, index_range])]:= initial_value;

Variable : Type [(index_range [, index_range])] [:= initial_value];

Signal : Type [(index_range)];

Операторы в VHDL делятся на два типа:

Последовательные операторы включены в операторы процессов. В одной строке можно размещать несколько операторов. Все операторы в VHDL оканчиваются точкой с запятой.

Последовательные операторы включают в себя:

- Оператор присваивания — выполняет присваивание переменной или сигналу результата выражения.

\результат\:=\выражение\ — присваивания переменной.

- Оператор ожидания события wait .

\ wait \::= wait [on\ name signal \ ]

- Оператор if — оператор цепочки последовательных событий;

\ if \::= if \ условие \ then

- Оператор case — оператор разрешения выполнения последовательных операторов.

\ case \::= case \ повторное выражение \ is

- Пустой оператор null — не выполняет никаких действий.

- Оператор повторения — выполняет повторение последовательных операторов.

[ метка оператора повторения >:] [ итерационная схема >:] loop

end loop [ метка оператора повторения >] [ 2 ];

Параллельные операторы выполняются при любом изменении сигнала. К параллельным операторам относятся [2]:

- Оператор параллельного присваивания ;

- Параллельный вызов процедуры ;

- Оператор вхождения компонента ;

- Параллельный оператор проверки ;

Язык Verilog-HDL(Verilog).

Структура проекта.

Основной единицей языка является модуль. Элементами модуля являются декларации и операторы. Структура проекта выглядит следующим образом:

Типы данных.

По сравнению с VHDL,в Verilog используется меньшее количество типов данных. Данные в Verilog могут принимать одно из четырех состояний:

- z — представляет состояние высокого импеданса

- x — представляет неизвестное логическое состояние

Verilog включает две группы типов данных:

Регистры предназначены для сохранения состояний. Цепи осуществляют передачу состояний между моделируемыми объектами.

- Wire, tri — соединение элементов

- Wand/triand, wor/trior — моделирование цепей с разрешающей логикой

- Trireg — сохраняет свое состояние(емкость).

- Tri1, tri0, supply1,supply0. Цепи Tri1, tri0 — моделирование цепи с резистивной подтяжкой, а supply1,supply0 — моделируют источники питания подключенные к этой цепи.

Операторы Verilog.

Операторы в Verilog, как и в VHDL, делятся на два вида: последовательные и параллельные.

Оператор initialзапускается единожды при начале моделирования и задает начальное состояние устройства. Синтаксис данного оператора выглядит следующим образом:

::= initial

Оператор always оператор повторения. Запускается в начале программы так же как и initial,но повторяется каждый раз после завершения вложенного оператора. Синтаксис оператора имеет вид:

::= always

Операторы принятия решений — выбор одного из путей выполнения алгоритма. К операторам принятия решений относятся:

В отличии от языка VHDL, Verilog более прост с точки зрения освоения. Он схож с языком Си, а это огромный плюс.ВVerilog используется меньшее количество типов данных, меньшее количество служебных слов. VHDL обладает большой универсальностью, но из-за этого он проигрывает в эффективности языку Verilog. Следовательно, человеку, который только начинает свое знакомство с языками описания цифровой аппаратуры будет легче освоить язык Verilog.

Оба языка поддерживаются в качестве стандартов большим количеством программных продуктов. Языки Verilog и VHDL используются при проектировании цифровых устройств, с применением САПР ведущих фирм в области ПЛИС. На сегодняшний день сложно представить описания цифровых схем без них.

2. Грушвицкий Р. И., Мурсаев А. Х., Угрюмов Е. П. Проектирование систем на микросхемах с программируемой структурой. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2006. — 736 с.: ил.

Основные термины (генерируются автоматически): VHDL, IEEE, STD, оператор, тип данных, оператор повторения, ENTITY, HDL, цифровая аппаратура, последовательный оператор.

Похожие статьи

Анализ эффективности применения аппаратных устройств.

. устройств, быстродействию, архитектуре, типу выполняемых арифметических операций (с фиксированной/плавающей точкой), разрядности данных и адресов, организации

HDL: Verilog и VHDL.

Поляков А,К,. Языки VHDL и VERILOG в проектировании цифровой аппаратуры.

Отчет о создании стекового микропроцессора на основе ПЛИС.

Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ.

Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM).

Поляков А,К,. Языки VHDL и VERILOG в проектировании цифровой аппаратуры.

Алгоритмы помехоустойчивого кодирования и их аппаратная.

Код для проверки целостности данных — CRC (Cyclicredundancycheck) код, базирующийся на

Для исследования аппаратной реализации данных алгоритмов использовалась ПЛИС типа

— 111 с. 4. Поляков А. К. Языки VHDL и Verilog в проектировании цифровой аппаратуры на.

Использование математических пакетов Matlab & Simulink при.

Также окно Response Selection имеет вкладку тип данных (Data Types) с возможностью выбора счета [1, с.24].

Основные термины (генерируются автоматически): MATLAB, графическая оболочка программы, HDL, ISE, VHDL, граничная частота, допустимое затухание, цифровая.

Перспективы создания универсальных вычислительных.

- DCM- элементы цифрового управления синхросигналом

- последовательный порт RS-232, JTAG разъём; - четыре переключателя Slide Switches, восемь

При проектировании устройства будут использоваться языки аппаратного проектирования SystemC версии 2.0, VHDL 1993.

Методика проведения лабораторной работы по дисциплине.

В ходе выполнения лабораторной работы на тему «Типы данных, определяемые программистом.

Вычислить значение переменной x после выполнения следующей последовательности операторов: x:=0

Применение хранимых процедур в Entity Framework

Entity Framework имеет возможность автоматически строить собственные команды для базы данных на основе LINQ to Entities или запросов Entity SQL, а также

Отсутствующая информация в базах данных и концепция.

Один из наиболее часто используемых операторов — MAYBE (возможно). Таблица истинности приведена на рис.4.

10. Бруснецов Н. П. Использование троичного кода и трехзначной логики в цифровых. Проблема отсутствующей информации в базах данных.

Распознавание английского текста сверточной нейронной сетью

Объем цифровых данных, используемый нами в повседневной жизни, увеличивается с

, где под оператором понимается математическая операция двумерной свертки.

Пары последовательных фрагментов объединялись в буквы тогда и только тогда, когда результаты.

Языки синтезируемого описания аппаратного обеспечения

Описание: Как известно, изначально язык описания аппаратуры VHDL создавался как средство моделирования цифровых систем. Однако его популярность и определенные удобства, появившиеся у разработчика, привели к тому

Дата добавления: 2014-06-18

Размер файла: 16.09 KB

Работу скачали: 1 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск

Языки синтезируемого описания аппаратного обеспечения.

Как известно, изначально язык описания аппаратуры 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).

Методика верификациии синтезируемого описания (Verification methodology)

Схемы, полученные в результате процедуры синтеза, могут быть последовательностными (sequential) и комбинационными (combinational). Как известно, последовательностные схемы содержат некоторые элементы памяти (internal storage), такие как защелки, регистры и т. п. (latch, register, memory), которые учитываются при определении выходного значения сигнала, в то время как выход комбинационной схемы зависит только от входных переменных.

Как правило, входной тестовый сигнал должен удовлетворять следующим критериям:

 входные данные не должны содержать неизвестных величин;

 при верификации последовательностных устройств следует принимать во внимание, что триггеры имеют время установления и тестовые сигналы должны иметь необходимую для завершения переходных процессов длительность;

 тактовые сигалы и входные данные должны изменяться спустя достаточное время после асинхронного сброса или установки;

 первичные входные сигналы для синхронных последовательностных устройств должны измениться значительно раньше, чем активный фронт синхроимпульса. При этом входные данные должны оставаться неизменными достаточно долго, чтобы быть удержанными относительно активного фронта синхроимпульса. Аналогичны требования ко времени удержания сигнала и на входах последовательностной схемы, управляемой потенциалами.

Таким образом, входные данные должны оставаться неизменными достаточно долго, чтобы обеспечить требуемое время удержания (hold times) сигнала на входе.

Средства синтеза могут определять неопределенные значения, появляющиеся на магистральных выходах в одной модели как эквивалент к логическим значениям в другой модели. По этой причине следует запоминать входной задающий сигнал до того, как проведено сравнение логических значений на выходах обеих моделей.

Верификация комбинационных устройств (Combinational verification)

При верификации комбинационной логической схемы после подачи входного задающего тестового сигнала должно пройти некоторое время, прежде чем начнется анализ сигнала на выходах схемы. Как правило, это происходит в цикле таким образом, что выходы анализируются непосредственно перед подачей следующего набора входных воздействий, то есть по завершении переходных процессов. Каждая итерация цикла должна включать достаточную задержку, превышающую задержки распространения (transient delays) и паузы (timeout clause delays). Если не придерживаться этих правил, то тестируемое устройство может никогда не достигнуть установившегося состояния (то есть демонстрировать колебательное поведение), например:

Верификация последовательностных устройств (Sequential verification)

При верификации последовательностных устройств обычно ко входам схемы прикладываются внешние воздействия, после этого оценивается состояние выходов. Затем процесс повторяется. Но поскольку последовательностное устройство управляется либо фронтом, либо уровнем тактового сигнала, то процесс верификации имеет некоторые особенности.

При верификации устройств, тактируемых фронтом (edge-sensitive models), подача входных данных и проверка выхода тактируются синхросигналом. Проверка выхода должна выполняться до подачи следующего активного фронта тактового сигнала. Таким образом, время переходных процессов в триггерах и период синхросигнала должны соответствовать друг другу.

При верификации устройств, тактируемых уровнем (level-sensitive models), следует учитывать, что предсказать их поведение гораздо сложнее, чем поведение устройств, тактируемых фронтом из-за асинхронной природы взаимодействий сигналов. Проверка результатов синтеза зависит от приложения. Общие правила: вводные данные должны установиться, пока активен сигнал разрешения; проверка выходов осуществляется при неактивном сигнале разрешения.

Моделирование элементов аппаратуры (Modeling hardware elements)

Рассмотрим особенности описания таких устройств, как тактируемые фронтом последовательностные схемы (edge-sensitive storage elements), последовательностные схемы, тактируемые уровнем (level-sensitive storage elements), и схемы с тремя состояниями (three-state drivers).

Синхронные последовательностные схемы (Edge-sensitive sequential logic) Типы тактового сигнала (Clock signal type)

Определение фронта тактового сигнала

Функция RISING_EDGE представляет передний фронт, а функция FALLING_EDGE используется для описания заднего фронта тактового импульса. Эти функции объявляются в пакете STD_LOGIC_1164 (стандарт IEEE Std 1164-1993) или NUMERIC_BIT, определенном в стандарте IEEE Std 1076.3-1997. Синтаксис определения тактового сигнала имеет вид :

clock_edge::= RISING_EDGE(clk_signal_name) | FALLING_EDGE(clk_signal_name) clock_level and event_expr event_expr and clock_level clock_level::= clk_signal_name = '0' | clk_signal_name = '1' event_expr::= clk_signal_name'EVENT | not clk_signal_name'STABLE

Ниже показаны способы задания переднего фронта тактового сигнала для использования в качестве условия в условном операторе (if statement):

(positive ): RISING_EDGE(clk_signal_name) clk_signal_name'EVENT and clk_signal_name = '1' clk_signal_name = '1' and clk_signal_name'EVENT not clk_signal_name'STABLE and clk_signal_name = '1' clk_signal_name = '1' and not clk_signal_name'STABLE

Следующие конструкции для задания переднего фронта используются в качестве условия в операторе wait until:

RISING_EDGE(clk_signal_name) clk_signal_name = '1' clk_signal_name'EVENT and clk_signal_name = '1' clk_signal_name = '1' and clk_signal_name'EVENT not clk_signal_name'STABLE and clk_signal_name = '1' clk_signal_name = '1' and not clk_signal_name'STABLE

Ниже показано задание заднего фронта тактового сигнала для использования в качестве условия в условном операторе (if statement):

FALLING_EDGE(clk_signal_name) clk_signal_name'EVENT and clk_signal_name = '0' clk_signal_name = '0' and clk_signal_name'EVENT not clk_signal_name'STABLE and clk_signal_name = '0' clk_signal_name = '0' and not clk_signal_name'STABLE

Для использования в качестве условия в операторе wait until используются следующие конструкции для задания заднего фронта:

FALLING_EDGE(clk_signal_name) clk_signal_name = '0' clk_signal_name'EVENT and clk_signal_name = '0' clk_signal_name = '0' and clk_signal_name'EVENT not clk_signal_name'STABLE and clk_signal_name = '0' clk_signal_name = '0' and not clk_signal_name'STABLE

Описание синхронных последовательностных устройств

При синхронном назначении (synchronous assignment) переменных или сигналов их изменение происходит по фронту тактового импульса (clock edge).

Сигнал, модифицированный в синхронном назначении, описывает один или несколько синхронных триггеров (edge-sensitive storage elements).

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

Использование оператора if

Для описания синхронных последовательностных устройств удобно использовать условный оператор if, задавая фронт сигнала в качестве условия (см. выше). Приведем типовой шаблон (template) для описания синхронного последовательностного устройства:

process () begin if then end if; end process;

Тактовый сигнал в секции должен задаваться в списке сигналов возбуждения процесса (process sensitivity list).

Последовательностные операторы, предшествующие условному оператору или следующие за ним, не поддерживаются средствами синтеза. Например :

DFF: process(CLOCK) begin if CLOCK'EVENT and CLOCK = '1' then Q тактироваие передним фронтом end if; end process;

Использование конструкции wait

Синхронные последовательностные устройства (edge-sensitive storage element) могут быть описаны с использованием тактового сигнала (clock edge) как условия в операторе wait until.

Оператор ожидания (wait until statement) всегда является первым оператором процесса. В каждом процессе может быть использован только один оператор wait until. Ниже приводится типовой шаблон для создания описания синхронных последовательностных устройств с помощью оператора wait:

process begin wait until ; -- должен быть первым оператором в процессе end process;

Поскольку оператор wait until является первым оператором процесса, асинхронные сброс или установка не могут быть описаны с его помощью.

Сигналы, назначенные с помощью условного оператора или оператора выбора, не могут быть использованы для описания синхронных последовательностных устройств

Приведем пример D-триггера: DFF: process begin wait until CLOCK = '0'; Q

Еще один пример ( счетчик ):

process variable VAR: UNSIGNED(3 downto 0); begin wait until CLOCK = '1'; VAR:= VAR + 1; COUNT

Переменная VAR может описывать четыре триггера, синхронизируемых по переднему фронту.

Асинхронные сброс и установка (asynchronous set-reset)

В схемах, тактируемых фронтом, возможны асинхронные сброс и установка (asynchronous set/reset). Ниже приводится шаблон асинхронного сброса и установки .

process (, ) begin if then elsif then elsif then . elsif then end if; end process;

В ветвях оператора if проверяется условие сброса или установки. Фронт тактового сигнала может появиться только при выполнении условия в операторе elsif.

Последовательностные операторы (Sequential statements) не должны использовать тактовый импульс в условиях операторов if. Список сигналов возбуждения процесса (sensitivity list) должен содержать:

 тактовый сигнал, задаваемый с помощью соответствующего выражения;

 все сигналы, которые проверяются в условиях оператора if, содержащегося в выражении для фронта синхроимпульса;

 все сигналы, использующиеся в последовательностных операторах, управляемых оператором if.

Последовательностные операторы, предшествующие условному оператору или следующие за ним, не поддерживаются средствами синтеза.

Следует помнить, что условия асинхронного сброса и установки не должны содержать выражений для фронта синхросигнала. Асинхронные сброс или установка имеют более высокий приоритет, чем синхросигнал. Очевидно, что необязательно описывать как сброс, так и установку. В 70 % случаев достаточно описания асинхронного сброса.

Приведем пример описания D-триггера с асинхронной установкой.

AS_DFF: process (CLOCK, RESET, SET, SET_OR_RESET, A) begin if RESET = '1' then Q

В этом примере сигнал Q сбрасывается по сигналу RESET и устанавливается по сигналу SET. Сигнал SET_OR_RESET может либо сбрасывать, либо устанавливать триггер в зависимости от величины A.

Последовательностные узлы с потенциальным управлением (level-sensitive sequential logic)

Последовательностные узлы (storage element), управляемыми уровнями, моделируются с помощью сигналов или переменных, при этом внутри процесса не должно присутствовать конструкций, работающих по фронтам импульсов. Кроме того, в процессе не должно быть явных назначений сигналов с использованием оператора назначения (assignment statement). Все сигналы и переменные, участвующие в процессе, должны иметь четко определенные значения. Сигналы или переменные, назначаемые в процессе, не должны использовать фронты синхроимпульса. В списке сигналов возбуждения процесса (process sensitivity list) должны быть отражены все сигналы, участвующие в процессе.

Переменные в подпрограммах никогда не используются при описании последовательностных узлов с потенциальным управлением, потому что инициализируются при каждом запросе. Назначения сигнала с использованием операторов if или case не следует использовать при описании последовательностных узлов с потенциальным управлением. Рекомендуется избегать стиля моделирования, в котором значение сигнала или переменной читается перед его назначением.

Ниже приводится пример последовательностного узла с потенциальным управлением.

LEV_SENS:process (ENABLE, D) begin if ENABLE = '1' then Q

Логика с третьим состоянием и моделирование шин (Three-state and bus modeling)

Описание комбинационных логических схем (Modeling combinational logic)

Любой процесс, не содержащий тактовых импульсов (clock edge) или оператора ожидания (wait statement), описывается с использованием либо конструкций комбинационной логики, либо последовательностных схем, управляемыми уровнями.

Если назначение переменной или сигнала происходит во всех возможных вариантах выполнения процесса и все переменные и сигналы имеют определенные значения, то переменная или сигнал описывают комбинационную логику.

Если сигнал или переменная считываются до их изменения, то они могут быть использованы для описания комбинационной логики. Оператор параллельного назначения сигналов (сoncurrent signal assignment statements) всегда описывает комбинационную схему.

Список чувствительности (сигналов возбуждения) процесса (process sensitivity list) должен содержать все сигналы, влияющие на процесс.

Директивы компилятора (псевдокомментарии, Pragmas)

Псевдокомментарии влияют на способ синтеза модели. В VHDL приняты следующие псевдокомментарии (Pragmas): атрибуты (Attributes) и метакомментарии (Metacomments).

Атрибуты компилятора не следует путать с атрибутами сигналов. Атрибуты компилятора используются для кодирования представлений перечислимых типов, а атрибуты сигналов определяют свойства сигнала — его изменение и т. п.

Атрибут компилятора ENUM_ENCODING

Атрибут ENUM_ENCODING определяет способ кодирования значений перечисляемых типов. В определении этого атрибута задается представление литералов перечисляемых типов в форме строки. Строка состоит из символов, разделенных одним или несколькими пробелами. Число символов должно соответствовать числу литералов в перечислимом типе.

Рассмотрим пример объявления атрибута .

type is (, . ); attribute ENUM_ENCODING: STRING;

Спецификация атрибута определяет кодирование для перечисления литералов.

Символ задает представление , и т. д. Следует помнить, что применение этого атрибута приводит к несоответствиям моделирования при использовании, например, операторов отношения. Пример :

Метакомментарии используются для управления компиляцией. Существуют два типа метакомментариев:

-- RTL_SYNTHESIS OFF -- RTL_SYNTHESIS ON

Средства синтеза игнорируют любое описание на VHDL после директивы RTL_SYNTHESIS OFF и возобновляют процесс синтеза по директиве RTL_SYNTHESIS ON. В следующем занятии мы начнем рассмотрение синтезируемого подмножества языка Verilog.

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

1. Язык описания аппаратуры AHDL Язык описания аппаратуры AHDL разработан фирмой Altera и предназначен для описания комбинационных и последовательностных логических устройств, групповых операций, цифровых автоматов (state machine) и таблиц истинности с учетом архитектурных особенностей ПЛИС фирмы Altera. Он полностью интегрируется с системой автоматизированного проектирования ПЛИС MAX+PLUS II. Файлы описания аппаратуры, написанные на языке AHDL, имеют расширение *.TDF (Text design file). Для создания TDF-файла можно использовать как текстовый редактор системы MAX+PLUS II, так и любой другой. Проект, выполненный в виде TDF-файла, компилируется, отлаживается и используется для формирования файла программирования или загрузки ПЛИС фирмы Altera.

Система MAX+PLUS II позволяет автоматически создать символ компонента, алгоритм функционирования которого описывается TDF-файлом, и затем вставить его в файл схемного описания (GDF-файл). Подобным же образом можно вводить собственные функции разработчика помимо порядка 300 макрофункций, разработанных фирмой Altera, в любой TDF-файл. Для всех функций, включенных в макробиблиотеку системы MAX+PLUS II, фирма Altera поставляет файлы с расширением *.inc, которые используются в операторе включения INCLUDE.

Особенности языка AHDL.

· Язык AHDL не различает прописные и строчные буквы. Однако, рекомендуется для улучшения читаемости ключевых слов использовать прописные буквы;

· Строка в TDF-файле может быть длиной до 255 символов. Однако следует стремиться к длине строки, умещающейся на экране. Строки заканчиваются нажатием клавиши Enter;

· Новую строку можно начинать в любом свободном месте, т.е. на местах пустых строк, табуляций, пробелов.

· Основные конструкции языка отделяются пустым пространством;

· Ключевые слова, имена и числа должны разделяться соответствующими символами или операторами и / или одним или более пробелами;

· Комментарии должны быть заключены в символы процента (%). Комментарии не могут быть вложенными.

Числа и константы

Числа используются для представления констант в булевых выражениях и уравнениях. Язык AHDL поддерживает все комбинации десятичных, двоичных, восьмеричных и шестнадцатеричных чисел. Десятичные, двоичные, восьмиричные и шестнадцатиричные числа можно использовать в любой комбинации. Синтаксис записи чисел в языке AHDL для каждой из указанных систем счисления следующий:

• десятичная - содержит последовательность цифр 0 - 9;

• восьмеричная - содержит последовательность цифр от 0 до 7, размещенных в кавычках, следующих за буквой O или Q;

• шестнадцатиричная - содержит последовательность цифр от 0 до 9 и букв от A до F, размещенных в кавычках, следующих за буквой H или X.

Читайте также: