Программирование микро

int24 oge1

  

С 1 октября открываются курсы Программирования микропроцессоров для 9 – 10 классов. 

 

Программа годового курса по электронике 9-10 класс

 

От физики к дискретным элементам

Что такое ток, напряжение и сопротивление.  Как устроена макетная плата. Упражнение: первая схема с батарейкой, светодиодом и резистором. Зачем включать резистор в цепь со светодиодом. Чтение маркировки резисторов. Переменные резисторы, фоторезисторы.

Что такое конденсатор и как он маркируется. Упражнение с зарядкой и разрядкой конденсаторов разной емкости. Что такое транзистор. Обзор переключающих элементов от реле, радиоламп, дискретных транзисторов до транзисторов на микросхемах.

Упражнения с p-n-p и n-p-n транзисторами.

  

От дискретных элементов к комбинационной логике

Булева алгебра и алгебра логики. Операции, выражения, аксиомы и тождества, включая законы де Моргана. Таблицы истинности.  Комбинационные логические элементы И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ, ИСКЛЮЧАЮЩЕЕ-ИЛИ (AND, OR, NOT, NAND, NOR, XOR).  Как комбинационные элементы строятся из транзисторов. Упражнение: построить AND, NAND или NOR из дискретных элементов.

Логические элементы в микросхемах малой степени интеграции. Индивидуальное упражнение: каждому ученику выдается персональная микросхема логики серии CMOS 4000, с техническим описанием от производителя, с задачей нарисовать таблицу истинности, продемонстрировать ее работу и словесно описать функцию. Микросхемы содержат логические элементы AND, OR, XOR, NOR, NAND с различным числом входов. Что такое такое подтягивающие резисторы и зачем они нужны. Добавляем к предыдущему упражнению кнопки и подтягивающие резисторы.

Комбинационные блоки - шифраторы (CMOS 4532), дешифраторы, мультиплексоры (4051/2/3). Драйвер семисегментного индикатора (4511).

Упражнение: собрать схемы, демонстрирующие работу этих элементов.

  

Двоичная арифметика и ее реализация

Двоичные числа. Преобразование из двоичных в десятичные числа и наоборот. Операции сложения и умножения. Отрицательные числа и дополнительный код.

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

Использование 4-битного полного сумматора CMOS 4008. Построение из него 8-битного сумматора и схемы вычитания.
Добавить драйвер и семисегментный индикатор для вывода результата.

  

Последовательностная логика

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

Схемы с внутренним состоянием. Построение RS-защелки из логических элементов NAND. Изучение поведения D-триггера с помощью микросхемы CMOS 4013 и тактового сигнала от 555 с частотой 1 Гц.

Последовательностью блоки - счетчик (CMOS 4029) и сдвиговый регистр (4015). Семисегментный индикатор и его драйвер 4511. Упражнения с этими микросхемами. 

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

  

От микросхем малой степени интеграции к ПЛИС - комбинационная логика

Понятие о ПЛИС (программируемой логической интегральной схеме) - матрице реконфигурируемых логических элементов.  Понятие о языке описания аппаратуры Verilog, процедурах синтеза, размещения, трассировки и конфигурации.
Упражнение: синтез простейшего комбинационного модуля с конфигурацией ПЛИС на учебной плате.

Продолжение изучения языка Verilog. Типы данных, выражения, присваивания. Always-блоки и основные операторы.
Упражнение: вывод первых букв своего имени и фамилии на семисегментный индикатор, переключаясь между ними с помощью кнопки.

  

Продолжение изучения языка Verilog. Иерархия модулей.

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

Моделирование кода на Verilog без ПЛИС. Подмножества языка для реализации схемы и для ее тестирования / верификации. Моделирование временных задержек.
Упражнение: создание среды для проверки работы схемы, описанной на языке Verilog. Использование симулятора Icarus Verilog для моделирования и программы GTKWave для просмотра временных диаграмм.

Индивидуальный проект: реализация арифметического блока, например быстрого сумматора с ускоренным групповым переносом, моделирование в нем временных задержек и сравнение его с сумматором с последовательным переносом  (количество логических элементов и задержки).

  

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

Конструкции языка Verilog, которые порождают D-триггеры по время синтеза. Объяснение правил методологии проектирования  на уровне регистровых передач: блокирующие и неблокирующие присваивания в различных always-блоках. Моделирование последовательностных схем на симуляторе Icarus Verilog.

Упражнения: реализация D-триггера, счетчика и сдвигового регистра на ПЛИС. Анализ результатов программы статического анализа о максимальной частоте. Демонстрация: использование последовательностной логики для генерации сигналов звуковой частоты и вывода их на динамик.

Концепция конечного автомата. Диаграммы изменения состояний. Упражнения: конечные автоматы светофора и кодового замка.

Конечные автоматы для протоколов шин. Выбор самостоятельного проекта (со сдачей в конце курса) по интеграции датчиков и других периферийных устройств с платой с ПЛИС. Самостоятельная работа: индивидуальный проект, модифицирующий поведение одного из примеров с последовательностной логикой: счетчика, сдвигового регистра или конечного автомата.

Концепция конвейерной обработки. Сравнение конвейерной реализации арифметических блоков, вычисляющих степень и квадратный корень.

  

Строим микропроцессор для системы на кристалле.

Архитектура процессора: вид со стороны программиста, с лабораторными с помощью симулятора RISC-процессора на уровне инструкций, например MARS MIPS

Концепция фон-Нейманновской машины. Введение в ассемблер: команды, операнды, регистры, константы.  Арифметические и логические операции. Кодирование инструкций. Упражнение с симулятором процессора на уровне инструкций - MARS MIPS. Простые программы на ассемблере для вычисления выражений.

Условные и безусловные переходы, метки, циклы. Пример: вычисление чисел Фибоначчи. Индивидуальное упражнение на основе модификации примера.

Концепция адресуемой памяти. Инструкции загрузки и сохранения в память. Конструкции ассемблера для выделения памяти.
Упражнение: программа, заполняющая память вычисленными данными. Индивидуальное упражнение на основе модификации примера.

Микроархитектура: строим процессор. Реализация на Verilogподмножества архитектуры MIPSс памятью инструкций, с регистрами общего назначения, но без памяти данных. Минимальный набор инструкции, достаточный, чтобы вычислять числа Фибоначчи и целочисленный квадратный корень итеративным способом.

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

Что такое BEAM-роботы?

 

regist2

wat