🖥️ Акт IV: Процессор
🖥️ Акт IV: Процессор
Главная идея: CPU = Память + Арифметика + Управление
🎯 Цель акта
К концу этих 8 уроков ты:
- Поймёшь архитектуру процессора
- Соберёшь ALU (арифметико-логическое устройство)
- Спроектируешь конечный автомат
- Создашь работающий CPU на ПЛИС!
📚 Уроки
| № | Урок | Микросхема | Ключевая идея |
|---|---|---|---|
| 27 | Счётчик | 74HCT4060 | Адресация и время |
| 28 | Таймер TLC555 | TLC555 | Генератор тактов |
| 29 | Конечный автомат | — | Состояния и переходы |
| 30 | ALU | 74HC283 + 74HC86 | Выбор операции |
| 31 | Регистровый файл | 74ACT377 + 74AC251 | Хранение данных |
| 32 | Архитектура CPU | — | Всё вместе |
| 33 | Введение в ПЛИС | Tang Nano 25K | HDL вместо проводов |
| 34 | 🏆 CPU на ПЛИС | Tang Nano 25K | Финальный проект |
🔧 Что понадобится
Новые микросхемы
- 74HCT4060 × 2 — 14-стадийный счётчик с генератором
- TLC555 × 3 — КМОП-таймер
Оборудование
- Tang Nano 25K — ПЛИС для финального проекта
- Программатор — для прошивки ПЛИС
- Осциллограф Rigol — для отладки таймингов
🧠 Архитектура простого CPU
┌─────────────────────────────────────────────────────────────┐
│ ПРОСТОЙ CPU │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Счётчик │────►│ ROM │────►│ Декодер │ │
│ │ команд │ │ (прогр.)│ │ команд │ │
│ └────┬────┘ └─────────┘ └────┬────┘ │
│ │ │ │
│ │ CLK │ Управление │
│ │ ▼ │
│ ┌────┴────┐ ┌─────────┐ ┌─────────┐ │
│ │ Генер. │ │ ALU │◄───►│ Регистры│ │
│ │ тактов │ │ (+,-,&) │ │ A, B │ │
│ └─────────┘ └────┬────┘ └─────────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ Выход │ │
│ │ (LED) │ │
│ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Набор команд (пример)
| Код | Команда | Действие |
|---|---|---|
| 0000 | NOP | Ничего |
| 0001 | LDA x | A := x |
| 0010 | LDB x | B := x |
| 0011 | ADD | A := A + B |
| 0100 | SUB | A := A - B |
| 0101 | AND | A := A & B |
| 0110 | OR | A := A | B |
| 0111 | OUT | Вывод A |
| 1111 | HLT | Стоп |
🏆 Результат акта
Работающий 4-битный CPU:
┌─────────────────────────────────────────────────────────────┐
│ │
│ Программа: Выполнение: │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ LDA 5 │ │ A = 0101 │ │
│ │ LDB 3 │ → │ B = 0011 │ │
│ │ ADD │ │ A = 1000 (8) │ │
│ │ OUT │ │ LED: ████░░░░ │ │
│ │ HLT │ │ СТОП │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ 🎉 5 + 3 = 8 — Компьютер работает! │
│ │
└─────────────────────────────────────────────────────────────┘
🎮 От макетки к ПЛИС
| Этап | Платформа | Плюсы | Минусы |
|---|---|---|---|
| 1 | Макетка + 74xx | Видишь каждый провод | Медленно, много проводов |
| 2 | ПЛИС + Verilog | Быстро, компактно | Нужно учить HDL |
// Тот же сумматор, но на Verilog (5 строк!)
module adder(
input [3:0] a, b,
output [4:0] sum
);
assign sum = a + b;
endmodule
