- •Раздел 1. Общеобразовательные дисциплины
- •Раздел 2. Специальные дисциплины
- •Раздел 1. Общеобразовательные дисциплины
- •1.Основные понятия теории вероятностей. Случайные события, случайные величины. Функция распределения вероятностей, плотность распределения вероятностей.
- •2.Среднее значение (момента) случайных величин. Математическое ожидание, дисперсия.
- •3. Характеристическая функция случайных величин.
- •4. Нормальное (Гауссовское) распределение случайных величин. Плотность распределения и характеристическая функция момента.
- •5. Независимость случайных величин. Совместное распределение двух случайных величин. Условное распределение.
- •6. Семиуровневая модель osi/iso (гост р исо/мэк 7498-1-99).
- •Взаимодействие уровней модели osi
- •Уровень представления данных (Presentation layer)
- •Сеансовый уровень (Session layer)
- •Транспортный уровень (Transport Layer)
- •Сетевой уровень (Network Layer)
- •Канальный уровень (Data Link)
- •Физический уровень (Physical Layer)
- •7. Технико-экономические аспекты создания программного обеспечения вс. Оценка стоимости программной разработки.
- •8. Распределение затрат по фазам и видам работ программной разработки.
- •9. Компилятор в языках высокого уровня. Функции. Виды компиляторов.
- •Функции
- •Компиляторы
- •10. Ассемблер. Основные языковые конструкции. Необходимость двухпроходной трансляции. Основные работы, выполняемые транслятором. Таблицы транслятора.
- •11. Формальный язык. Грамматика. Сентенциальная форма. Нисходящий и восходящий анализ.
- •Грамматика
- •12. Понятие алгоритма и его свойства. Нормальные алгоритмы Маркова.
- •13. Иерархия запоминающих устройств. Кэш-память. Работа с кэш-памятью.
- •14. Прерывания. Классификация прерываний. Организация обработки прерываний.
- •15. Виды параллелизма. Векторная и конвейерная обработка. Классификация вычислительных комплексов по сочетанию потоков данных и потоков команд.
- •16. Информационная интегрированная среда предприятия. Общая база данных об изделиях (обди). Разделы обди.
- •17. Электронный документ. Технический электронный документ: форма представления, виды, жизненный цикл.
- •18. Электронная цифровая подпись. Суть и процесс использования электронной цифровой подписи.
- •19. Автоматизированные информационные системы. Цели и методы автоматизации.
- •20. Автоматизированные информационные системы. Математическое и программное обеспечение. Математическая модель. Программное изделие.
- •21. Свободное программное обеспечение: суть, области и проблемы использования.
- •22. Жизненный цикл программного обеспечения. Длительность. Состав. Стадии сопровождения.
- •Раздел 2. Специальные дисциплины
- •1. Модуль в языке System Verilog. Определение модуля, его применение. Задание портов и параметров.
- •2. Типы данных. Wire, reg, logic. Массивы. Строковый тип. Задание числе (в двоичном, десятичном, шестнадцатиричном виде).
- •3. Примитивы, типы примитивов. Объявление и применение примитивов.
- •4. Процедурные блоки (initial и always). Операторы управления временем.
- •Управление временем
- •5. Процедурные операторы. Операторы условного перехода. Операторы цикла. Операторы назначения. Оператор непрерывного назначения.
- •6. Маршрут проектирования программ плис. Средства разработки и проверки. Структура плис. Временные задержки сигналов
- •7. Математическое, программное и информационное обеспечение сапр. Математическая модель. Программное изделие.
- •8. Виды обеспечений, типы подсистем сапр. Общие требования к типовым сапр рэа.
- •9. Принципы измерения вектора движения ка
- •10. Геоцентрическая инерциальная система координат. Прямоугольные, сферические и геодезические координаты
- •11. Классификация орбит ка по параметрам движения. Параметры орбиты по Кеплеру.
- •12. Четыре основных свойства по.
- •13. Каскадная и спиральная модель жизненного цикла программного обеспечения
- •V модель (разработка через тестирование)
- •14. Биологический нейрон. Математическая модель нейрона. Связь искусственных нейронных сетей (инс) с другими дисциплинами. Проблемы, решаемые в контексте инс.
- •15. Архитектура нейронных сетей. Однослойный персептрон. Функции активации. Многослойный персептрон.
- •16. Понятие обучения. Методы обучения. Обучение персептрона. Процедура обратного распространения.
- •Метод к- ближайших соседей
- •Процедура обратного распространения
- •17. Гипотеза Хебба. Гипотеза ковариации. Конкурентное обучение.
- •18. Понятие vc-измерения (Вапника-Червоненкиса). Оценки обобщающей способности в задаче классификации. Теорема об универсальной аппроксимации.
- •19. Сети с локальным базисом. Сравнение сетей rbf с многослойным персептроном.
- •20. Сети Кохонена. Формализация задачи классификации для сети Кохонена. Алгоритм классификации для сети Кохонена.
- •21. Обучение Больцмана. Стохастические модели. Правило обучения Больцмана. Машина Больцмана.
- •22. Нейрокомпьютеры. Основные понятия. Классификация нейрокомпьютеров.
- •1. Что такое нейрокомпьютер?
- •2. Нейронные сети - основные понятия и определения
- •3. Модели нейронных сетей
- •3.1. Модель Маккалоха
- •3.2. Модель Розенблата
- •3.3. Модель Хопфилда
- •3.4. Модель сети с обратным распространением
- •4. Задачи, решаемые на основе нейронных сетей
- •5. Способы реализации нейронных сетей
- •6. Выводы
4. Процедурные блоки (initial и always). Операторы управления временем.
Verilog содержит два вида блоков, которые могут производить вычисления: «initial» -блок и «always» -блок.
«initial» -блок определяет какие действия должны быть сделаны при старте программы. Этот блок не является синтезируемым и обычно используется для тестирования.
Например:
module testbench;
reg clock;
reg[31:0] in1, in2;
reg[63:0] out;
// Тестируемый модуль
multiplier mult(clock, in1, in2, out);
initial begin
// Тестовые данные.
in1 = 4;
in2 = 20;
// Подождать пока результат будет готов.
#10;
// Вывести результат вычислений.
$display("result=%d", out);
$finish();
end
endmodule
Программа может содержать несколько «initial»-блоков, все из них исполняются параллельно.
Блок инициализации состоит из группы операторов, заключенных в операторные скобки begin... end, которые будут выполняться с момента старта моделирования. Ниже приведен пример инициализации моделирования:
initial clock = 1"ЬО;
initial begin alpha = 0;
#10 alpha = 1; // генерация сигнала
#20 alpha = 0;
#5 alpha = 1;
#7 alpha = 0;
#10 alpha = 1;
#20 alpha = 0; end;
Блок always означает, что действие выполняется непрерывно, пока процесс моделирования не будет остановлен директивой $finish or $stop.
Note: the $finish command actually terminates the simulation whereas $stop. Merely.Pauses Ниже приведен пример формирования тактового импульса с использованием конструкции always .Заметим, что вообще говоря для этих целей удобнее использовать циклы
module pulse;
reg clock
initial clock = 1'b0; // запуск такта
always #10 clock = ~clock; // такт
initial #5000 $finish // конец моделирования
endmodule
Блок always означает, что действие выполняется непрерывно, пока процесс моделирования не будет остановлен директивой Sfinish или Sstop.
Ниже приведен пример формирования тактового импульса с использованием конструкции always. Заметим, что, вообще говоря, для этих целей удобнее использовать циклы.
module pulse; reg clock;
initial clock = 1"ЬО; // запуск такта
always #10 clock = -clock; // такт
initial #5000 $finish // конец моделирования
endmodule
Управление временем
Процесс языка Verilog (то есть блок initial или always) может перепланировать свое собственное выполнение использованием одной из трех форм управления временем:
#выражение
@событие-выражение
wait (выражение)
Форма #выражение, используемая для синхронного управления, останавливает выполнение процесса на фиксированное время, указанное параметром "время», а форма @событие-выражение, используемая для асинхронного контроля, останавливает выполнение до тех пор, пока не случится указанное событие. В обоих случаях планировщик удаляет исполняемые в настоящий момент события из списка событий текущего модельного времени и заносит их в некоторый список будущих событий.
Форма wait (выражение) - это управление событиями, чувствительное к уровню. Если wait выражение ложно, выполнение будет остановлено до тех пор, пока оно не станет истинным (из-за выполнения некоторого оператора в другом процессе).
Пример на рис.2.14 показывает использование структуры управления временем.
Выполнение модуля time_control дает следующие результаты:
r = 2 в момент 5
r = 1 в момент 10
r = 2 в момент 25
r = 1 в момент 30
r = 2 в момент 55
r = 1 в момент 60
Заметим, что первый оператор initial
initial #70 $stop; - это обычный способ для остановки моделирования в определенный момент времени.
В этом примере, хотя все блоки initial начинаются в один и тот же момент времени, некоторые из них были остановлены (и перепланированы) в разные моменты модельного времени. Обратите внимание на использование именованных блоков (b1 и b2). Именованный блок может внутри себя иметь описание локальных переменных, хотя в этом примере это свойство не используется, а имена используют только для удобства записи.
Форма управления @событие-выражение ждет, чтобы случилось событие, прежде, чем продолжать выполнение блока. Событие может быть одной из нескольких форм:
а) переменная <или переменная> ....
b) posedge одноразрядная переменная
c) negedge одноразрядная переменная
d) событие-переменная
В форме, а) выполнение задерживается до тех пор, пока одна из переменных не изменится. В форме b) и с) выполнение задерживается, пока переменная не изменится от 0, х или z к
Рис.2.14 Пример управления временем
1 (в случае posedge) или от 1, х или z к 0 (в случае negedge). В форме d) выполнение блока останавливается до тех пор, пока не выполнится событие.
Рис.2.15 Пример управления событиями
Событие может быть запущено выполнением выражения-> cобытие-переменная. Следующий пример на рис.2.15 использует событие-переменные для управления порядком выполнения трех блоков initial, которые выполняются в один и тот же момент модельного времени.
Выполнение модуля event_control даст следующие результаты:
I am the first.
I am in the middle.
I am supposed to execute last.
Эта форма управления обеспечивает порядок выполнения. Без оператора управления событиями планировщик языка Verilog может спланировать выполнение блоков initial в произвольном порядке.
Особой формой конструкции управления временем и событиями является ее использование внутри оператора присваивания.
Присваивание current_state = #clock_period next_state;
эквивалентно следующим двум операторам
temp = next_state;
#clock_period current_state = next_state;
и, аналогично, присваивание
current_state = @ (posedge clock) next_state;
эквивалентно двум операторам
temp = next_state;
@ (posedge clock) current_state = temp;