- •1 Технология разработки систем на кристалле. Преимущества языка vhdl.
- •2 Архитектура плис фирмы Xilinx.
- •3 Модели вычислителей vhdl.
- •4 Объекты и типы языка vhdl.
- •5 Интерфейс и архитектура объекта в языке vhdl.
- •6 Использование нескольких архитектурных тел для одного объекта в языке vhdl.
- •7 Выражения языка vhdl.
- •8 Последовательные операторы языка vhdl.
- •9 Операторы цикла в языке vhdl.
- •10 Операторы процесса языка vhdl.
- •11 Процедуры и функции в языке vhdl. Атрибуты.
- •12 Параллельные операторы языка vhdl.
- •14 Повторное использование подсхем в языке vhdl.
- •15 Использование оператора generate в языке vhdl.
- •16 Проектирование комбинационных схем на языке vhdl.
- •17 Проектирование схем с памятью на языке vhdl.
- •18 Требования к проектированию плис и сбис.
- •19 Принципы однотактной и двухтактной синхронизации.
- •20 Состав и назначение библиотеки ieee.
- •2.Пакеты numeric_bit и numeric_std.
- •3. Пакеты math_real, math_complex.
- •1 Исп. Компон. Элемента «и» и оператор конструкции компонента
- •2 Исп комп эл «и» и «и-не»
- •3 Используйте генератор generate
- •4 Каждый логический элемент д б описан как отдельный объект, т. Е. Описание в целом д. Б. Выполнено в структурном стиле
- •5 В поведенческом стиле
- •6 Исп комп эл «или»
- •7 Исп комп эл «или» и «или-не»
- •8 Оператор generate
- •9 Каждый логический элемент д б описан как отдельный объект, т. Е. Описание в целом д б выполнено в структурном стиле
- •10 В поведенческом стиле
8 Последовательные операторы языка vhdl.
В VHDL последовательные операторы подобны операторам языков высокого уровня.
Оператор присваивания значения переменной
Определение: variablc_assignment_statement::= [label] target := expression ; Данный оператор заменяет текущее значение (target) переменной новым значением, которое определяется выражением (expression). Переменная и выражение должны быть того же базового типа.
Оператор присваивания значения сигналу
В языке VHDL в операторах назначения сигналов используются два вида задержек: 1). инерционная задержка; 2). транспортная задержка; Ключевое слово inеrtial определяет инерционную задержку, ключевое слово transport определяет транспортную задержку.
Пример.
Х<= inertial Y after 3 ns; - инерционная задержка
Х<= transport Y after 3ns; - транспортная задержка.
Оператор if
Подобен операторам if в других языках программирования. Выражение, представляющее собой “условие” должно иметь тип BOOLEAN. В одном if операторе может быть одна (ни одной) либо более частей elsif.
Оператор case
Оператор case выбирает одну из альтернатив, избранная альтернатива (случай) определяется значением выражения. Выражение должно быть дискретного типа или типа одноразмерного массива символов.
Оператор next
next [метка цикла][when условие]
Оператор употребляется для завершения итераций цикла.
Оператор exit
exit [метка цикла][when условие]
Оператор употребляется, чтобы завершить выполнение и закрыть оператор цикла. Если условие (condition) есть TRUE, то осуществляется выход из цикла.
Оператор null (пустой)
Оператор null не представляет действий. Он употребляется, чтобы точно специфицировать, что нет действий.
Оператор вызова процедуры
Состоит из имени процедуры с аргументами (если они есть) в скобках.
Оператор return (возврат)
return [выражение]
Употребляется, чтобы завершить выполнение самой внутренней функции или процедуры. Он используется только внутри тела функции или процедуры.
Оператор assert (сообщение)
assert условие [report выражение][severity выражение]
Операторы сообщений проверяют является ли условие истинным, и сообщают об ошибке, если условие является ложным.
9 Операторы цикла в языке vhdl.
Этот оператор (loop) несколько раз выполняет последовательность операторов. Его синтаксис:
\оператор цикла\::=[\метка\:][\схема итерации\]loop
{\последовательный оператор\}
{next[\метка\][when \условие\];}
{exit[\метка\][when \условие\];}
end loop [\метка\];
\схема итерации\::=while \условие\ | for \переменная цикла \ in \диапазон\
Метка \метка\ необязательна, она отмечает начало цикла и используется для организации вложенных циклов или для указания в каком цикле начать новую итерацию по оператору next или из какого цикла выйти по оператору exit.
variable vec: bit_vector(1 to n);
variable or_vec:bit;
….
or_vec:='0';
for i in 1 to n loop
or_vec:= or_vec or vec(i);
end loop;
Оператор loop часто применяется без схемы итерации, т.е. когда цикл может выполняться неопределенно большое число раз.
signal clk: bit;
signal numb:natural;
…
numb<=0;
loop
wait until clk='1';
numb<=numb+1;
end loop;