Откуда взялись регистры?
2022-08-12 14:33Меня давно интересовало, откуда взялись хардверные регистры, главный механизм хранения битов информации. В электронике они обозначаются термином D-flip-flop, по русски часто называют D-триггер. Буковка D в названии значащая, так как существуют флип-флопы и триггеры других видов.

Есть в этом гейте некоторая магия. Если посмотреть на схемы древних компьютеров 50-х и 60-х годов, все они сделаны на более простых элементах: защёлках, или RS-триггерах. И вот, штудируя книжку "The ZX Spectrum ULA", я обнаружил схему D-флип-флопа, на которой были сделаны Спектрумы, самые популярные домашние игровые компьютеры 80-х. Кстати, книжку весьма рекомендую: описывает технологию заказной схемотехники ULA, возникшей в 1972 году, задолго до FPGA (середина 80-х). Лидировала британская фирма Ferranti.

Сравните со схемой из википедии:

Как видим, британские инженеры сэкономили один транзистор, превратив трехвходовый гейт в двухвходовый. Базовый гейт двувходового ИЛИ-НЕ в их чипе упрощённо выглядит так:

Схему флип-флопа от Ferranti я просимулировал на Верилоге.

Как можно видеть, выход Q принимает значение входа D в момент перехода синхросигнала CP из 1 в 0. То есть по заднему фронту:

В схеме тут же обнаружился глюк, то есть дребезг, или glitch по ихнему. По заднему фронту синхросигнала на выходе nQ ясно видно кратковременный переход в 0. Электронщики хорошо знают, что это опасное дело: тут возможно третье состояние и что угодно. Глюк устраняется, если ускорить гейт L. Инженеры Ferranti так и сделали: уменьшили сопротивление в коллекторной цепи На верилоге я задержал гейт M с одной до двух наносекунд:

Схема с трёхвходовым гейтом не должна страдать от глюков. Но три входа обошлись бы слишком дорого на чипе ULA. Впрочем, при стабильных параметрах резисторов на британском производстве эта проблема, вероятно, не проявлялась.

Есть в этом гейте некоторая магия. Если посмотреть на схемы древних компьютеров 50-х и 60-х годов, все они сделаны на более простых элементах: защёлках, или RS-триггерах. И вот, штудируя книжку "The ZX Spectrum ULA", я обнаружил схему D-флип-флопа, на которой были сделаны Спектрумы, самые популярные домашние игровые компьютеры 80-х. Кстати, книжку весьма рекомендую: описывает технологию заказной схемотехники ULA, возникшей в 1972 году, задолго до FPGA (середина 80-х). Лидировала британская фирма Ferranti.

Сравните со схемой из википедии:

Как видим, британские инженеры сэкономили один транзистор, превратив трехвходовый гейт в двухвходовый. Базовый гейт двувходового ИЛИ-НЕ в их чипе упрощённо выглядит так:

Схему флип-флопа от Ferranti я просимулировал на Верилоге.
Буковками K, L, M, N обозначены выходы промежуточных гейтов:wire Q, NQ, K, L, M, N;
assign #1 K = ~(L | N);
assign #1 L = ~(K | CP);
assign #1 M = ~(L | CP);
assign #1 N = ~(M | D);
assign #1 Q = ~(L | NQ);
assign #1 NQ = ~(M | Q);

Как можно видеть, выход Q принимает значение входа D в момент перехода синхросигнала CP из 1 в 0. То есть по заднему фронту:

В схеме тут же обнаружился глюк, то есть дребезг, или glitch по ихнему. По заднему фронту синхросигнала на выходе nQ ясно видно кратковременный переход в 0. Электронщики хорошо знают, что это опасное дело: тут возможно третье состояние и что угодно. Глюк устраняется, если ускорить гейт L. Инженеры Ferranti так и сделали: уменьшили сопротивление в коллекторной цепи На верилоге я задержал гейт M с одной до двух наносекунд:
Глюки исчезли:assign #2 M = ~(L | CP);

Схема с трёхвходовым гейтом не должна страдать от глюков. Но три входа обошлись бы слишком дорого на чипе ULA. Впрочем, при стабильных параметрах резисторов на британском производстве эта проблема, вероятно, не проявлялась.

no subject
Date: 2022-08-13 00:06 (UTC)no subject
Date: 2022-08-13 03:23 (UTC)no subject
Date: 2022-08-13 04:06 (UTC)no subject
Date: 2022-08-13 06:13 (UTC)no subject
Date: 2022-08-13 06:33 (UTC)no subject
Date: 2022-08-13 06:50 (UTC)RTL - классическая Resistor Transistor Logic, как я нарисовал.
CML - Current-Mode Logic, где ток ограничивался отдельным тразнистором.
Вот такая схема гейта NOR кушала в семь раз меньше, а работала в два раза быстрее. Но лишний сложный транзистор.
no subject
Date: 2022-08-13 07:01 (UTC)no subject
Date: 2022-08-13 07:14 (UTC)no subject
Date: 2022-08-13 12:01 (UTC)