Skip to main content

🖥️ Акт IV: Процессор

🖥️ Акт IV: Процессор

Главная идея: CPU = Память + Арифметика + Управление


🎯 Цель акта

К концу этих 8 уроков ты:

  • Поймёшь архитектуру процессора
  • Соберёшь ALU (арифметико-логическое устройство)
  • Спроектируешь конечный автомат
  • Создашь работающий CPU на ПЛИС!

📚 Уроки

УрокМикросхемаКлючевая идея
27Счётчик74HCT4060Адресация и время
28Таймер TLC555TLC555Генератор тактов
29Конечный автоматСостояния и переходы
30ALU74HC283 + 74HC86Выбор операции
31Регистровый файл74ACT377 + 74AC251Хранение данных
32Архитектура CPUВсё вместе
33Введение в ПЛИСTang Nano 25KHDL вместо проводов
34🏆 CPU на ПЛИСTang Nano 25KФинальный проект

🔧 Что понадобится

Новые микросхемы

  • 74HCT4060 × 2 — 14-стадийный счётчик с генератором
  • TLC555 × 3 — КМОП-таймер

Оборудование

  • Tang Nano 25K — ПЛИС для финального проекта
  • Программатор — для прошивки ПЛИС
  • Осциллограф Rigol — для отладки таймингов

🧠 Архитектура простого CPU

┌─────────────────────────────────────────────────────────────┐
│                         ПРОСТОЙ CPU                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────┐     ┌─────────┐     ┌─────────┐              │
│   │ Счётчик │────►│  ROM    │────►│ Декодер │              │
│   │ команд  │     │ (прогр.)│     │ команд  │              │
│   └────┬────┘     └─────────┘     └────┬────┘              │
│        │                               │                    │
│        │ CLK                           │ Управление         │
│        │                               ▼                    │
│   ┌────┴────┐     ┌─────────┐     ┌─────────┐              │
│   │ Генер.  │     │   ALU   │◄───►│ Регистры│              │
│   │ тактов  │     │ (+,-,&) │     │  A, B   │              │
│   └─────────┘     └────┬────┘     └─────────┘              │
│                        │                                    │
│                        ▼                                    │
│                   ┌─────────┐                               │
│                   │ Выход   │                               │
│                   │ (LED)   │                               │
│                   └─────────┘                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Набор команд (пример)

КодКомандаДействие
0000NOPНичего
0001LDA xA := x
0010LDB xB := x
0011ADDA := A + B
0100SUBA := A - B
0101ANDA := A & B
0110ORA := A | B
0111OUTВывод A
1111HLTСтоп

🏆 Результат акта

Работающий 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

🚀 Начать

Урок 27: Архитектура АЛУ →