Урок 1. Транзистор, который помнит
В картинкахОбычный транзистор делает то, что ему говорит затвор: подали 1 — открылся, подали 0 — закрылся. В этом наборе появляется новый транзистор — с памятью. Внутри у него спрятан один бит. Пока бит = 0, это обычный транзистор. Если бит = 1, он закрыт навсегда, что бы ни пришло на затвор. Из тысяч таких транзисторов сделаны ПЗУ, флешка в телефоне и микросхема GAL22V10, которую мы соберём в этом наборе: биты решают, какие провода внутри соединены, а какие нет.
1.1. Как транзистор запоминает
У обычного МОП-транзистора затвор отделён от канала тонким слоем стекла. Напряжение на затворе притягивает заряды в канал, и канал начинает проводить.
У транзистора с памятью между затвором и каналом есть второй затвор — кусочек проводника, со всех сторон окружённый стеклом. Он ни к чему не подключён, поэтому его называют плавающим. Если загнать на него электроны (для этого на транзистор подают повышенное напряжение), выйти обратно им некуда — они сидят там годами. Эти электроны заслоняют канал от обычного затвора, и транзистор больше не открывается.
- электронов нет — бит 0, транзистор работает как обычный;
- электроны есть — бит 1, транзистор закрыт навсегда.
Стереть бит — значит выгнать электроны обратно.
1.2. Немного истории
- 1967 — идею плавающего затвора придумали в Bell Labs Дауон Канг и Саймон Зи.
- 1971 — Дов Фроман в Intel делает 1702, первое ПЗУ, которое можно стереть и записать заново (EPROM): 2048 бит на таких транзисторах. Транзисторы в нём P-канальные. Стирали ультрафиолетом: в корпусе было кварцевое окошко, микросхему клали под лампу на 20 минут.
- 1978 — первые программируемые матрицы PAL. Перемычки в них пережигали током, и прошить такую микросхему можно было только один раз.
- 1985 — Lattice выпускает GAL: та же матрица, но вместо пережигаемых перемычек — транзисторы с плавающим затвором, которые стираются электрически. Ошибся в прошивке — стёр и прошил снова, прямо в программаторе.
1.3. Транзистор с памятью в симуляторе
В палитре он на той же кнопке, что и обычный транзистор. Alt-клик (или ⌘-клик) по транзистору перебирает варианты:
- N — обычный N-канальный,
- P — обычный P-канальный,
- MN — N-канальный с памятью,
- MP — P-канальный с памятью (как в Intel 1702).
Бит виден прямо на корпусе. Двойной клик по MN или MP — прошить бит (0 → 1) или стереть (1 → 0).
1.4. Опыт
Соберём то же, что для обычного транзистора: резистор подтягивает точку к VCC, транзистор садит её на землю, на точке — лампа. У транзистора три ноги: левая — затвор, верхняя и нижняя.
| Деталь | Провода |
|---|---|
| Power | → метка VCC |
| Ground | → метка GND |
| Resistor | верхняя нога → метка VCC нижняя нога → верхняя нога MN |
| MN | нижняя нога → метка GND |
| Input | → левая нога MN (затвор) |
| LED | → нижняя нога резистора |
Поставь обычный транзистор и Alt-кликом сделай из него MN. На корпусе — бит 0.
1.5. Проверка
- Бит 0. Тумблер выключен — лампа горит: транзистор закрыт, резистор держит точку в 1. Включи тумблер — лампа гаснет: транзистор открылся и посадил точку на землю. Обычный транзистор.
- Двойной клик по MN — на корпусе бит 1. Щёлкай тумблером — лампа горит всегда. Транзистор «забыл», что он транзистор: затвор больше ничего не решает.
- Двойной клик ещё раз — бит 0, всё как в шаге 1. Бит стёрт.
| Бит | Тумблер | Лампа |
|---|---|---|
| 0 | 0 | горит |
| 0 | 1 | не горит |
| 1 | 0 | горит |
| 1 | 1 | горит |
1.6. Номер перемычки
Когда таких транзисторов в схеме сотни, у каждого должен быть свой номер — по нему файл прошивки знает, какой бит куда записать. Номер выставляется сам, когда схему сворачиваешь в чип (Ctrl+G): по положению, строка за строкой. Свой номер можно задать вручную: выдели транзистор, Cmd+E, введи число.
У чипа, внутри которого есть транзисторы с памятью, на корпусе появляется ⚙. Там видна вся карта бит, и её можно загрузить из файла прошивки .jed или сохранить в файл. Этим займёмся со следующего урока.
Не получается? Что-то не работает →