
- •3. Режимы функционирования технических объектов.
- •4. Основные виды анализа технических систем (тс) при математическом
- •5. Классификация математических моделей.
- •6. Операторные модели систем (частотные, преобразование Лапласа, z-преобразование).
- •7. Свойства преобразования Лапласа.
- •9. Свойства пф. Классификация типовых пф.
- •10. Анализ систем в частотной области.
- •11. Анализ устойчивости тс: определения, критерии устойчивости, примеры анализа.
- •12. Качественный анализ технических систем. Необходимость выполнения качественного анализа технических систем, его цели.
- •13. Моделирование нелинейных систем: определение нелинейной системы, виды нелинейных характеристик элементов технических систем.
- •14. Особенности поведения и анализа нелинейных систем, методы решения систем нелинейных ду.
- •15. Модели нелинейных систем на фазовой плоскости. Анализ технических систем по фазовому портрету. Примеры построения фазовых портретов.
- •16. Факторные модели и модели регрессионного анализа. Примеры реализации.
- •17. Состав пакета OrCad. Порядок работы с пакетом OrCad.
- •18. Спектральный анализ в OrCad.
- •19. Частотный анализ в OrCad.
- •20. Статистический анализ в OrCad.
- •21. Язык моделирования pSpice. Основные семантические конструкции языка pSpice.
- •22. Язык моделирования pSpice. Описание топологии схемы.
- •23. Язык моделирования pSpice. Первые символы имён компонентов.
- •24. Язык моделирования pSpice. Классификация моделей компонентов. Имена типов моделей.
- •25. Математические операции в pSpice: классификация, порядок и примеры применения.
- •Name — имя функции;
- •27. Язык pSpice. Анализ режима по постоянному току.
- •28. Язык pSpice. Частотный анализ.
- •29. Язык pSpice. Спектральный анализ.
- •30. Язык pSpice. Анализ шума.
- •31. Примеры описания директив на языке pSpice.
- •35. Реализация поведенческой модели в пакете OrCad. Применение элементов библиотеки abm.Slb.
- •36. Моделирование аналого-цифрового преобразователя (ацп) в пакете OrCad.
- •37. Моделирование цифро-аналогового преобразователя (цап) в пакете OrCad.
- •38. Основные блоки и конструкции языка vhdl.
- •39. Модели описания цифровой системы. Примеры.
- •40. Структура описания архитектурного тела vhdl. Примеры.
- •41. Структура описания интерфейса проекта на языке vhdl. Примеры.
- •42. Синтезируемое подмножество языка vhdl.
- •43. Интерфейс и архитектура объекта в языке vhdl.
- •44. Карта портов и карта настройки в языке vhdl.
- •45. Параллельный оператор generate в языке vhdl: назначение, общая формаописания, примеры применения.
- •46. Алфавит языка vhdl.
- •47. Скалярные типы в vhdl.
- •48. Регулярные типы в vhdl.
- •49. Физические типы в vhdl. Тип time.
- •50. Стандартные типы в vhdl.
- •51. Понятия сигнала и переменной в vhdl.
- •52. Атрибуты сигналов в языке vhdl.
- •53. Атрибуты скалярного типа в языке vhdl.
- •54. Атрибуты регулярного типа в языке vhdl.
- •55. Циклы в vhdl.
- •56. Оператор ветвления и селектор в vhdl.
- •57. Объявление компонента в vhdl. Включение компонента в схему.
- •58. Модели задержки в языке vhdl. Примеры применения.
- •59. Примеры описания регистровых схем на языке vhdl. Триггер d-типа
- •Vhdl-файл имеет следующее описание:
- •D-триггер с асинхронным сбросом
- •60. Основные операции в vhdl. Приоритеты операций.
- •61. Типы std_ulogic и std_logic.
- •62. Спецификация процедуры в vhdl.
- •63. Спецификация функции в vhdl.
- •Объявление функции
- •64. Пакет std_logic_arith. Функции преобразования типов.
55. Циклы в vhdl.
В VHDL существует три вида циклов: бесконечный, while и for. Синтаксис бесконечного цикла выглядит следующим образом:
[ loop_label: ] loop
{ sequential_statement }
end loop [ loop_label ] ;
Такие циклы часто используются для генерирования синхросигнала, как это сделано в следующем примере:
signal Clock: BIT := ’0′; — инициализация в 0
Clk_1: process (Clock)
begin
L1: loop
Clock <= not Clock after 5 ns; — период Clock равен 10 ns
end loop L1;
end process Clk_1;
Для завершения цикла может быть применен оператор exit, а для прерывания теку-
щейитерации – оператор next:
[ label: ] exit [ loop_label ][when boolean _expression];
[ label:] next [ loop_label ] [when boolean _expression];
Если метка не указана, то действие оператора относится к содержащему его циклу. Необязательное выражение boolean_expression позволяет задавать условие прерыва- ния выполнения цикла или его итерации. В следующем коде выполнение цикла завер- шится, когда А станет больше 10:
L2: loop
A := A+1;
exit L2 when A > 10;
end loop L2;
Цикл for
Общая форма цикла for имеет следующий вид:
[loop_label:] for loop_index in range loop
sequential statements
end loop [loop-label];
Индекс цикла loop_index автоматически описывается при использовании оператора цикла и не требует его предварительного декларирования. Индекс инициализируется первым значением из указанного диапазона range, после чего выполняются последо- вательные операторы (sequential statements). Индекс цикла может быть использован в последовательных операторах, но не может быть изменен в них. После выполнения одной итерации цикла индекс получает следующее значение из диапазона и последо- вательность операторов выполняется снова. Процесс продолжается до тех пор, пока индекс цикла не переберет все значения диапазона. После этого выполнение операто- ра цикла заканчивается и индекс становится недоступным. Для следующего цикла- индекс count_value в начале выполнения цикла будет инициализирован значением 0 и последовательность операторов в цикле будет выполнена 128 раз:
for count_value in 0 to 127 loop
count_out <= count_value after 5 ns;
end loop;
Цикл while
Выполнение операторов, размещенных в условном цикле while, будет продолжаться до тех пор, пока условие condition имеет значение истины:
[ loop_label: ] while condition loop
{ sequential_statement }
end loop [ loop_label ] ;
56. Оператор ветвления и селектор в vhdl.
ОПЕРАТОР IF. <<-------------Ветвление
Этот условный оператор в зависимости от заданных условий выполняет цепочки последовательных операторов, причем от условия зависит, которая из цепочек операторов выполняется. Упрощенный синтаксис оператора: \оператор if\::=if \условие 1\ then {\последовательный оператор 1\} [ { elsif \условие 2\ then {\последовательный оператор 2\}] [else {\последовательный оператор 3\}] end if; Каждое из условий должно быть выражением, вычисляющим результат булевского типа. При выполнении этого оператора условия проверяются последовательно друг за другом пока результат условия не будет true. Тогда выполняется соответствующая этому условию цепочка операторов и выполнение данного оператора if прекращается.
ОПЕРАТОР CASE. <<---------Селектор
Этот оператор разрешает выполнение одной из цепочек последовательных операторов в зависимости от значения выражения селектора. Его упрощенный синтаксис: \оператор case\::=case \простое выражение\ is when \альтернативы\ => {\последовательный оператор\} {when \альтернативы\ => {\последовательный оператор\}} end case ; \альтернативы\:= \альтернативa\{ | \альтернатива\} В выражении селектора \простое выражение\ должен вычисляться целый результат или значение перечисляемого или регулярного типа. Это должно быть простое выражение, а не, например, конкатенация. Каждая из альтернатив \альтернатива\ должна быть такого же типа, что и \выражение\ и представлена статическим выражением или диапазоном, например, 0 to4. Никакие два значения, получаемые из выражений альтернатив, не должны быть равны друг другу, т.е. множества альтернатив не перекрываются. Последней альтернативой может быть ключевое слово others, которое указывает на не перечисленные альтернативы. Если слово others не применяется, то в альтернативах должны быть перечислены все возможные значения, принимаемые в селекторе \выражение\.
Примероператора case:
variable sel, a: integer 0 to 9;
.............
case sel is
when 0 => a <= 0;
when1|2|3 => a <= 1;
when 4 to 7 => a <= 2;
when others => a <= 3;
endcase.