vak: (Default)
[personal profile] vak
Антон Моисеев начинает новый курс лабораторных работ в Нижегородском техническом университете:
http://1i7.livejournal.com/940.html
http://1i7.livejournal.com/1267.html
http://1i7.livejournal.com/1471.html



Полный цикл, предложенный Юрой Панчулом, выглядит следующим образом:
  1. Сборка простых электронных схем на основе микросхем малой степени интеграции
    • Знакомство с концепциями логического элемента (gate), D-триггера (D-flip-flop) и синхросигнала
    • Макетная плата (breadboard), батарейка, лампочки (LED), проводочки, микросхема генерации синхросигнала (555 Timer), CMOS микросхемы серии 4000, 7-сегментный дисплейчик
    • Лаба - сборка на макетной плате всяких счетчиков и бегающих огоньков
  2. Дизайн цифровой логики на языке SystemVerilog с реализацией на платах ПЛИС (FPGA) от Xilinx или Altera
    • Знакомство с языком SystemVerilog и его конструкциями - модуль, порты, сигналы, always-blocks, continuous assignments, blocking и non-blocking assignments
    • Знакомство с концепциями моделирования (HDL simulation), логического синтеза, place-and-route, static timing analysis
    • Знакомство с бесплатным/дешевым софтвером Xilinx ISE WebPACK, Altera Quartus II, Aldec HDL, ModelSim-Altera Starter Edition
    • Знакомство с FPGA платами - Xilinx Basys 2, Xilinx Nexys 2, Altera DE0, Altera DE1
    • Лаба - переписать на верилог, засинтезировать и загрузить на плату дизайнов счетчиков и бегающих огоньков из первой лабы
  3. Конечные автоматы и дизайн с адресуемой памятью
    • Знакомство с концепцией конечного автомата (state machine)
    • Знакомство с устройствами ввода на плате - клавишами и кнопками, и как их debounce
    • Знакомство с концепцией адресуемой памяти и интерфейса шины
    • Лаба - конечный автомат, принимающий от переключателей команды чтения и записи в память всяких последовательностей
  4. Что такое процессор?
    • Знакомство с концепциями комбинационной и секвенциальная логики (combinational and sequential logic)
    • Лаба - простейший процессор, выполняющий команды в один длинный цикл. Дискуссия о максимальной тактовой частоте.
    • Концепция конвейера
    • Лаба - конвейерный процессор с 3-5 стадий и без interlocks - hazards компенсируются nop-ами
    • Концепция stalls и forwarding
    • Лаба - конвейерный процессор с stalls и forwarding
  5. Программирование на голом железе и зачатие операционной системы
    • Лаба - знакомство с платой chipKit32 / PIC32 / MIPS и программирование её на С с помощью Arduino-подобного GUI. Кнопочки, лампочки, дисплейчик, IO Shield.
    • Введение в ассемблер на примере MIPS
    • Лаба - загрузка в память программок на ассемблере
    • Концепция простейшей многозадачной операционной системы
    • Лаба - своя игрушечная многозадачная ОС, которая бутится, ставит обработку прерывания по таймеру, в котором переключает задачи по схеме round-robin.
А я потихоньку продвигаюсь в подготовке пятой части этого цикла.  Рабочие материалы накапливаются здесь: http://vak.ru/doku.php/proj/mips/lab5

А Ужас Совка Против!

Date: 2012-03-27 16:51 (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] panchul referenced to your post from А Ужас Совка Против! (http://panchul.livejournal.com/198268.html) saying: [...] курса - программирования микроконтроллеров: http://ramlamyammambam.livejournal.com/178982.html [...]

Date: 2012-03-28 02:58 (UTC)
From: [identity profile] sasha474.livejournal.com
Неплохо, я бы на такой курс сходил. На нашем побережье вовсю занимаются и соревнуются с lego NXT. Мелкий попросил придумать необычный сенсор. Задачка как раз для тебя :)

Date: 2012-03-29 03:50 (UTC)
From: [identity profile] sasha474.livejournal.com
Спасибо, попробую :) Хотя я имел ввиду сенсор для lego NXT :)
From: [identity profile] livejournal.livejournal.com
Пользователь [livejournal.com profile] 1i7 сослался на вашу запись в записи «Как пересечь пропасть от физики к программированию (http://1i7.livejournal.com/17550.html)» в контексте: [...] 1й лабораторной работы с мигающими лампочками: Вакуленко: Цифровая электроника для программистов [...]