Проектирование и анализ последовательных логических устройств: регистры и счетчики

Курс посвящен изучению узлов цифровой электроники с памятью, их классификации и методам управления потоками данных. Студенты освоят принципы записи, хранения и преобразования информации на базе триггерных структур с использованием строгих математических моделей.

1. Фундаментальные характеристики регистров и организация регистровых файлов в цифровых системах

Фундаментальные характеристики регистров и организация регистровых файлов в цифровых системах

Вычислительная система, состоящая исключительно из комбинационных логических вентилей, способна мгновенно преобразовывать входные сигналы в выходные, но абсолютно не способна «помнить» промежуточные результаты. Для реализации любого алгоритма, отличного от тривиального сквозного вычисления, требуется введение переменной времени и концепции внутреннего состояния. Этот переход знаменует границу между комбинационной и последовательностной схемотехникой, где фундаментальным строительным блоком выступает регистр.

Математическая модель последовательностного устройства

В комбинационных схемах выходной вектор в любой момент времени однозначно определяется текущим входным вектором . Математически это описывается системой булевых функций:

Последовательностные логические устройства (цифровые автоматы) содержат элементы памяти, образующие петлю обратной связи. Их поведение зависит не только от текущих входов, но и от предыстории системы, которая аккумулируется в векторе внутреннего состояния . Функционирование такого устройства описывается системой из двух уравнений (модель автомата Мили):

Здесь — дискретное время, задаваемое тактовым генератором (clock), — функция выходов, а — функция переходов. Вектор физически хранится в регистрах.

!Структурная схема цифрового автомата Мили

Регистр как базовый узел хранения

Регистр представляет собой упорядоченную совокупность триггеров (flip-flops), объединенных общей системой управления (синхронизации, сброса, разрешения записи) и предназначенных для приема, хранения и передачи машинного слова.

Фундаментальные характеристики регистра

  • Разрядность (длина машинного слова) . Определяет количество параллельно работающих триггеров. Информационная емкость регистра составляет бит, а количество возможных уникальных состояний вычисляется как . Например, 32-разрядный регистр способен находиться в одном из состояний.
  • Аппаратные затраты. Оцениваются в количестве логических вентилей или транзисторов. Стандартный D-триггер с динамическим управлением (edge-triggered) строится на базе 6 логических вентилей И-НЕ (около 24 транзисторов в КМОП-логике). Таким образом, базовый 64-разрядный регистр требует свыше 1500 транзисторов только для хранения данных, без учета цепей буферизации тактового сигнала.
  • Временные параметры (быстродействие). Надежная работа регистра описывается тремя критическими интервалами времени:
  • (время установки) — минимальное время, в течение которого входные данные должны оставаться стабильными до* наступления активного фронта тактового сигнала. (время удержания) — минимальное время, в течение которого данные должны оставаться стабильными после* фронта тактового сигнала. * (задержка распространения, propagation delay) — время от активного фронта тактового сигнала до появления достоверных данных на выходе .

    Нарушение условий или приводит к метастабильности — состоянию, при котором напряжение на выходе триггера зависает между логическим нулем и единицей, что вызывает непредсказуемое поведение всей цифровой системы.

    !Временная диаграмма записи в регистр и метастабильность

    Минимальный период тактового сигнала для синхронной схемы, состоящей из двух регистров и комбинационного облака между ними, строго ограничен неравенством:

    Где — максимальная задержка комбинационной логики, а — перекос тактового сигнала (разница во времени прихода фронта на разные регистры).

    Организация регистровых файлов

    В сложных цифровых автоматах, таких как микропроцессоры, использование разрозненных регистров неэффективно. Процессору требуется регулярная структура, к которой можно обращаться по числовому индексу (адресу). Такая структура называется регистровым файлом (Register File, RF).

    Регистровый файл — это двумерный массив триггеров размерностью , где — количество машинных слов (глубина), а — разрядность каждого слова (ширина). Отличительной особенностью регистрового файла от обычной статической памяти (SRAM) является наличие нескольких независимых портов чтения и записи, позволяющих выполнять несколько микроопераций за один такт.

    Архитектура портов доступа

    Классический регистровый файл RISC-архитектуры имеет два порта чтения и один порт записи (конфигурация 2R1W). Это обусловлено тем, что большинство арифметико-логических инструкций требуют двух операндов и генерируют один результат (например, ADD R1, R2, R3 означает ).

    Интерфейс такого регистрового файла включает:

  • Входы адресов чтения: , (разрядность ).
  • Выходы данных чтения: , (разрядность ).
  • Вход адреса записи: (разрядность ).
  • Вход данных записи: (разрядность ).
  • Сигнал разрешения записи: (Write Enable).
  • Сигнал синхронизации: .
  • !Внутренняя структура многопортового регистрового файла

    Логический синтез порта записи

    Запись в регистровый файл осуществляется путем маршрутизации сигнала разрешения записи на синхровход (или вход разрешения) строго одного регистра, выбранного адресом . Для этого применяется дешифратор (Decoder).

    Рассмотрим математическую модель порта записи для файла из 4 регистров (). Адрес записи состоит из двух бит: и . Дешифратор преобразует этот двоичный код в унитарный код (one-hot), активируя одну из четырех линий выборки :

    Итоговый сигнал разрешения записи для конкретного регистра формируется конъюнкцией:

    Входные данные подаются параллельно на информационные входы всех регистров, но по фронту состояние изменит только тот регистр, для которого .

    Логический синтез портов чтения

    Чтение из регистрового файла является строго комбинационной операцией (асинхронной по отношению к тактовому сигналу). Данные на выходах появляются спустя задержку распространения после установки адреса чтения .

    Выбор данных осуществляется мультиплексорами (Multiplexers). Для порта чтения шириной бит требуется мультиплексоров размерности .

    Логическая функция одного бита на выходе первого порта чтения описывается дизъюнкцией конъюнкций:

    Где — -й бит -го регистра, а выражение реализуется внутренним дешифратором мультиплексора.

    Аппаратные ограничения и масштабирование

    Проектирование регистровых файлов сталкивается с жесткими физическими ограничениями при увеличении числа портов (). Площадь кристалла, занимаемая регистровым файлом, растет пропорционально , так как каждый дополнительный порт требует прокладки новых горизонтальных шин данных и вертикальных шин управления внутри каждой ячейки памяти (триггера). Задержка чтения также нелинейно возрастает из-за увеличения паразитной емкости длинных линий связи внутри массива мультиплексоров.

    По этой причине в современных суперскалярных процессорах редко применяются монолитные регистровые файлы с количеством портов больше 10-12. Вместо этого используются методы кластеризации, дублирования регистровых файлов или банкирования (разделения на независимые банки четных и нечетных адресов), что позволяет снизить сложность коммутационной матрицы при сохранении высокой пропускной способности.

    Математический аппарат булевой алгебры и понимание временных ограничений (, ) позволяют инженеру точно рассчитывать предельные частоты работы регистровых структур. Переход от одиночных триггеров к многопортовым массивам памяти формирует базис для построения трактов данных (datapath) любой вычислительной архитектуры, обеспечивая одновременную подачу операндов на исполнительные устройства и сохранение результатов вычислений без возникновения структурных конфликтов.

    2. Классификация регистровых структур и реализация базовых установочных микроопераций

    Классификация регистровых структур и реализация базовых установочных микроопераций

    Массив из 64 независимых триггеров, даже подключенных к общему источнику питания и тактовому генератору, не является 64-разрядным регистром. Набор изолированных ячеек памяти превращается в регистр только при наличии комбинационной схемы управления, которая синхронно маршрутизирует данные и заставляет все элементы выполнять единую логическую команду. Архитектура этой управляющей логики определяет класс регистра и набор доступных ему действий.

    Критерии классификации регистровых структур

    В цифровой схемотехнике регистры классифицируются по трем фундаментальным признакам: формату ввода-вывода данных, типу используемых триггеров и способу синхронизации.

    По формату интерфейса ввода-вывода (направлению передачи данных) регистры делятся на четыре базовых класса:

  • PIPO (Parallel In — Parallel Out). Параллельный ввод и параллельный вывод. Данные записываются во все разряды одновременно за один такт. Вывод также доступен параллельно со всех разрядов. Это классические регистры хранения, образующие основу кэш-памяти и регистровых файлов.
  • SISO (Serial In — Serial Out). Последовательный ввод и последовательный вывод. Данные поступают по одному биту за такт в младший (или старший) разряд и сдвигаются. Вывод осуществляется также побитно. Применяются для создания линий задержки.
  • SIPO (Serial In — Parallel Out). Последовательный ввод и параллельный вывод. Используются для преобразования последовательного интерфейса (например, UART или SPI) в параллельную шину данных внутри вычислительного ядра.
  • PISO (Parallel In — Serial Out). Параллельный ввод и последовательный вывод. Выполняют обратную задачу: захватывают машинное слово целиком и выдают его в линию связи по одному биту за такт.
  • !Потоки данных в топологиях PIPO, SISO, SIPO и PISO

    По способу синхронизации структур выделяют:

  • Синхронные (однотактные): все триггеры регистра тактируются одним общим фронтом сигнала .
  • Полифазные (многотактные): запись и сдвиг данных разнесены во времени с использованием двух или более неперекрывающихся тактовых сигналов (например, фазы и ). Это исключает состояние «гонок» в сдвиговых структурах, построенных на триггерах, чувствительных к уровню (защелках).
  • !Микросхема SN7474 — классический сдвоенный D-триггер

    Формализация микроопераций

    Регистр функционирует как цифровой автомат, состояние которого меняется дискретно. Элементарное действие над словом данных, выполняемое аппаратными средствами регистра за один период тактового сигнала, называется микрооперацией.

    Математически любая микрооперация описывается функцией перехода для -го разряда регистра:

    Где — состояние -го триггера в следующем такте, — текущее состояние триггера, — значение на информационной линии ввода, — вектор управляющих сигналов, определяющий тип микрооперации.

    Базовый набор установочных микроопераций включает:

  • Хранение (Hold): . Регистр игнорирует входные данные и сохраняет текущее состояние.
  • Загрузка (Load/Write): . В триггер записывается бит с внешней шины данных.
  • Сброс (Clear/Reset): . Принудительная установка разряда в логический ноль.
  • Установка (Preset/Set): . Принудительная установка разряда в логическую единицу.
  • Инверсия (Complement): . Смена текущего состояния на противоположное.
  • Аппаратная реализация базовых микроопераций

    Для реализации микроопераций на базе стандартных D-триггеров необходимо синтезировать комбинационную схему, которая будет формировать сигнал (вход возбуждения триггера) в зависимости от требуемой команды. Уравнение возбуждения D-триггера тривиально: . Следовательно, вся логика микроопераций сводится к вычислению функции .

    Микрооперации сброса и установки: асинхронные vs синхронные

    Сброс () и установка () могут быть реализованы двумя принципиально разными путями.

    Асинхронная реализация использует специализированные входы самого триггера (обычно обозначаются как и ), которые воздействуют на внутренние логические вентили в обход цепи тактирования. Асинхронный сброс происходит мгновенно (с учетом задержки распространения вентилей), независимо от фронта сигнала . Главная проблема асинхронных входов — риск возникновения метастабильности при снятии сигнала сброса. Если сигнал асинхронного сброса снимается слишком близко к активному фронту тактового сигнала (нарушение параметра recovery time — времени восстановления), триггер может перейти в метастабильное состояние.

    Синхронная реализация обрабатывает сигналы сброса и установки как обычные данные, пропускаемые через синхронный вход . Состояние изменится только по фронту тактового сигнала.

    Для синхронного сброса (при активном высоком уровне сигнала ) уравнение входа имеет вид:

    Где — сигнал на D-входе триггера, — информационный бит, — управляющий сигнал сброса. Если , то , и независимо от .

    Для синхронной установки (при активном сигнале ):

    Если , по законам алгебры логики .

    Микрооперации хранения и загрузки

    Стандартный D-триггер не имеет встроенной функции «хранения» при наличии активного тактового сигнала. По каждому фронту он захватывает то, что находится на входе . Чтобы реализовать микрооперацию Hold, необходимо организовать петлю обратной связи: подать текущий выход обратно на вход .

    Выбор между загрузкой новых данных () и хранением старых () осуществляется с помощью мультиплексора (или эквивалентной логической схемы), управляемого сигналом разрешения записи (Enable).

    Булево уравнение для операции Load/Hold:

    Где — сигнал разрешения. При схема пропускает внешние данные (Load). При схема коммутирует текущее состояние обратно на вход, обеспечивая регенерацию данных (Hold).

    !Интерактивная модель базовой ячейки регистра

    Синтез универсальной регистровой ячейки с приоритетами

    На практике регистр должен поддерживать несколько микроопераций одновременно. Возникает проблема аппаратных конфликтов: что должен сделать регистр, если одновременно поданы сигналы сброса () и загрузки ()?

    Для разрешения конфликтов вводится жесткая система приоритетов. Классическая иерархия для установочных операций: Сброс > Установка > Загрузка > Хранение.

    Синтезируем комбинационную логику для универсальной ячейки -го разряда, учитывающую эту иерархию. Введем управляющие сигналы: (Reset, наивысший приоритет), (Set, средний приоритет), (Load, низший приоритет). Если ни один сигнал не активен, выполняется Hold.

    Запишем логические функции для каждого терма с учетом блокировки сигналами высшего приоритета:

  • Условие записи нуля (Сброс): , активно при .
  • Условие записи единицы (Установка): , активно при и строгом условии (сброс не активен).
  • Условие загрузки линии : активно при , и .
  • Условие хранения : активно при , и .
  • Итоговое уравнение возбуждения D-триггера собирается как сумма произведений для всех случаев, когда на вход должна попасть логическая единица:

    Проанализируем полученное выражение:

  • Если , все слагаемые обнуляются из-за множителя . На вход поступает . Выполняется синхронный сброс. Состояния и игнорируются.
  • Если , но , первое слагаемое равно . Остальные обнуляются из-за . На вход подается . Выполняется синхронная установка.
  • Если и , но , уравнение редуцируется до . Выполняется загрузка данных.
  • Если все управляющие сигналы равны (), уравнение редуцируется до . Выполняется хранение.
  • Аппаратная реализация такого уравнения требует применения логических вентилей И, ИЛИ, НЕ, формирующих комбинационный блок перед D-входом каждого триггера в регистре. Чем больше микроопераций поддерживает регистр, тем глубже комбинационная логика на его входе. Это неизбежно увеличивает задержку распространения сигнала () в управляющей цепи, что, в свою очередь, накладывает ограничения на максимальную тактовую частоту системы, так как сигнал должен успеть стабилизироваться до наступления времени установки () триггера.

    Рассмотренные принципы комбинационного рутинга данных формируют основу для построения любых последовательных структур. Переход от базовых установочных операций к пространственным манипуляциям с данными (сдвигам) требует лишь изменения топологии связей между соседними ячейками при сохранении той же математической модели управления.

    3. Методы записи информации: однофазный, парафазный и коммутация данных от нескольких источников

    Методы записи информации: однофазный, парафазный и коммутация данных от нескольких источников

    В высокочастотных цифровых автоматах логическая единица, передаваемая по проводнику длиной в несколько миллиметров, неизбежно искажается из-за паразитной емкости и индуктивности линий связи. То, насколько надежно регистр захватит этот деградировавший сигнал, зависит не только от внутренних параметров триггера, но и от физического метода представления бита на его входах. Процесс фиксации вектора внутреннего состояния требует строгого согласования уровней напряжения, фаз сигналов и механизмов разделения доступа, если источников данных несколько.

    Однофазный метод записи

    Однофазная запись подразумевает передачу значения бита от источника к -му разряду регистра по одной физической линии связи. Вектор входных данных подается в прямом коде, а необходимое для работы двухплечевых схем памяти (например, RS-ячеек внутри D-триггера) инверсное значение формируется локально, непосредственно внутри принимающего кристалла или макроячейки.

    Математическая модель однофазной записи для D-триггера тривиальна:

    где — информационный вход триггера, — значение бита источника.

    Главное преимущество этого метода — экономия аппаратных ресурсов и минимизация площади трассировки. Для передачи машинного слова разрядностью требуется ровно информационных линий.

    Однако локальная генерация инверсного сигнала порождает асимметрию временных задержек. Внутренний инвертор D-триггера вносит собственную задержку распространения . В момент прихода активного фронта тактового сигнала прямое значение уже стабильно на одном плече внутренней защелки, а инверсное может еще находиться в переходном процессе. Это накладывает жесткие ограничения на частоту синхронизации, заставляя проектировщиков увеличивать аппаратный запас времени.

    Парафазный (двухфазный) метод записи

    Для критичных к скорости и помехозащищенности узлов применяется парафазная запись. При этом методе каждый бит информации передается от источника к приемнику по двум независимым физическим линиям: по одной передается прямое значение , по второй — инверсное .

    !Схемотехническое сравнение однофазного и парафазного входов

    В этом случае отпадает необходимость во внутреннем инверторе на стороне приемника. Запись осуществляется в синхронные RS- или JK-триггеры. Логические уравнения для установочных входов при парафазной записи имеют вид:

    где и — входы установки и сброса, — прямой сигнал источника, — инверсный сигнал источника, — сигнал синхронизации (разрешения записи).

    Если , то на входы подается комбинация , и триггер устанавливается в единицу. Если , комбинация меняется на , очищая триггер. Комбинация аппаратно исключена на стороне источника, так как линии всегда передают взаимно инверсные значения.

    Парафазная передача решает две фундаментальные проблемы:

  • Устранение локальной задержки инверсии. Сигналы и формируются на стороне источника и проходят одинаковый путь. К моменту фронта синхроимпульса оба плеча триггера получают стабильные уровни одновременно.
  • Помехоустойчивость. Метод реализует принцип дифференциальной передачи. Если внешняя электромагнитная помеха наводит паразитный потенциал на шину, она воздействует на обе близко расположенные линии одинаково (синфазная помеха). Приемник, реагирующий на разность потенциалов или логическое состояние обеих линий, игнорирует этот всплеск.
  • Критическим параметром парафазной записи является перекос фаз (skew) — разница во времени прибытия фронтов сигналов и . Если из-за разной длины проводников перекос превысит допустимое окно, на входах RS-триггера может кратковременно возникнуть запрещенная комбинация или состояние хранения в момент записи, что приведет к искажению вектора состояния.

    Сравнительный анализ методов

    | Характеристика | Однофазная запись | Парафазная запись | | :--- | :--- | :--- | | Количество линий на бит | | | | Базовый элемент памяти | D-триггер | RS, JK-триггеры | | Задержка подготовки данных | Выше (из-за внутреннего инвертора) | Минимальная | | Устойчивость к синфазным помехам | Низкая | Высокая | | Область применения | Внутрикристальные шины, плотная компоновка | Межмодульные связи, высокоскоростные интерфейсы |

    Коммутация данных от нескольких источников

    В сложных цифровых системах один и тот же регистр часто является приемником данных от арифметико-логического устройства, оперативной памяти или других регистров. Физическое объединение выходов нескольких источников на один вход регистра недопустимо. Если источник выдает логическую «1» (подключен к шине питания), а источник — логический «0» (подключен к земле), их прямое соединение создаст короткое замыкание (crowbar current), что приведет к выгоранию транзисторов.

    Для маршрутизации данных применяются три базовых метода коммутации.

    1. Мультиплексирование (пространственная коммутация)

    Метод основан на использовании комбинационных мультиплексоров перед информационными входами регистра. Выбор источника осуществляется подачей адресного кода на управляющие входы мультиплексора.

    Для коммутации трех источников на вход регистра требуется мультиплексор 4-в-1 с двухбитным адресом . Булево уравнение для -го разряда:

    где — вход регистра, — данные от источников, — сигналы управления. Четвертая комбинация () в данном случае может использоваться для подачи константы нуля или блокировки записи.

    Метод надежен, исключает конфликты на шине аппаратно, но требует значительных затрат транзисторов на реализацию логики И-ИЛИ при большом числе источников, а также увеличивает общую комбинационную задержку на пути данных.

    2. Коммутация на тристабильных буферах (Z-состояние)

    Вместо построения громоздких мультиплексоров источники подключаются к единой разделяемой шине через логические элементы с тремя состояниями (Tri-state buffers).

    !Коммутация данных на общую шину через тристабильные буферы

    Тристабильный буфер имеет информационный вход , выход и вход разрешения (Enable). Его функционирование описывается не классической булевой алгеброй, а многозначной логикой:

    где — высокоимпедансное состояние.

    В состоянии оба транзистора выходного каскада буфера (и подтягивающий к питанию, и стягивающий к земле) закрыты. Буфер физически отключается от шины, представляя собой бесконечно большое сопротивление.

    Правило проектирования систем с Z-состоянием: в любой такт времени сигнал должен быть равен единице строго у одного источника.

    Если все , шина «повисает» в неопределенном состоянии (floating), что может вызвать самопроизвольное переключение входов регистра из-за наводок. Для предотвращения этого шину часто снабжают слабым резистором подтяжки (pull-up), фиксирующим логическую единицу при отсутствии активных передатчиков.

    3. Монтажная логика (Wired-OR / Wired-AND)

    Метод открытого коллектора (или открытого стока в КМОП-технологии) позволяет объединять выходы элементов напрямую без риска короткого замыкания. Выходной каскад такого элемента содержит только один транзистор, замыкающий линию на землю при выдаче логического нуля. Выдача единицы эквивалентна отключению элемента (переходу в высокоимпедансное состояние).

    Для формирования уровня логической единицы на общую линию устанавливается внешний подтягивающий резистор , соединенный с шиной питания.

    Если хотя бы один из подключенных источников выдает ноль (открывает свой транзистор), потенциал всей линии падает до нуля. Линия перейдет в состояние единицы только в том случае, если все источники выдают единицу (все транзисторы закрыты). С точки зрения положительной логики (где высокий потенциал — это 1), такая структура реализует функцию «Монтажное И» (Wired-AND):

    где — состояние шины, — сигналы на базах/затворах выходных транзисторов источников.

    Если рассматривать систему в отрицательной логике (где активный уровень — низкий), та же физическая схема реализует «Монтажное ИЛИ» (Wired-OR). Этот метод требует минимум проводов и логических вентилей, но проигрывает в скорости: спад сигнала (переход 1 0) происходит быстро через открытый транзистор, а нарастание (0 1) — медленно, так как паразитная емкость шины заряжается через пассивный резистор .

    Выбор между мультиплексированием, Z-состояниями и монтажной логикой определяет топологию цифрового автомата. Мультиплексоры концентрируют логику управления в одной точке перед регистром, что удобно для ASIC (специализированных интегральных схем). Тристабильные буферы и открытые коллекторы распределяют управление по всей системе, позволяя строить длинные магистральные шины, типичные для микропроцессорных архитектур.

    4. Архитектура регистров параллельного действия и функционал сдвиговых регистров различных направлений

    В современных микропроцессорах умножение целочисленного операнда на выполняется за один такт и не требует ни одного логического вентиля в арифметико-логическом устройстве. Эта операция реализуется исключительно за счет пространственной манипуляции данными внутри сдвигового регистра. Изменение топологии связей между триггерами превращает элемент памяти в вычислительный блок, способный выполнять арифметические операции, преобразование форматов данных и генерацию кодовых последовательностей.

    Архитектура регистров параллельного действия

    Регистры параллельного действия предназначены для одновременной записи и считывания многоразрядных машинных слов. Хотя базовая классификация ввода-вывода уже была рассмотрена ранее, аппаратная реализация параллельного регистра требует строгого учета логики управления портами.

    В основе параллельного регистра разрядности лежит массив из триггеров (обычно D-типа), объединенных общей цепью синхронизации. Для обеспечения микрооперации хранения (Hold) без отключения тактового сигнала используется комбинационная петля обратной связи.

    Уравнение функции возбуждения -го разряда параллельного регистра с сигналом разрешения записи (Load) имеет вид:

    Где — информационный вход -го разряда, — текущее состояние триггера.

    Для интеграции параллельного регистра в общую магистраль данных цифровой системы его выходы оснащаются тристабильными буферами. Сигнал разрешения выхода (Output Enable) управляет состоянием буферов. Логическая функция на выходе описывается кусочно-заданным образом:

    при при

    Аппаратные затраты на реализацию такого -разрядного узла составляют D-триггеров, двухвходовых мультиплексоров (для петли обратной связи) и тристабильных буферов. Масштабирование разрядности линейно увеличивает площадь кристалла, не усложняя топологию связей, так как разряды информационно независимы друг от друга.

    Топология однонаправленных сдвиговых регистров

    Сдвиговый регистр отличается от параллельного наличием жестких информационных связей между соседними разрядами. Выход -го триггера физически соединен с входом следующего. Это нарушает принцип независимости разрядов и вводит пространственную зависимость данных от времени.

    Логический и арифметический сдвиг вправо

    При сдвиге вправо данные перемещаются от старших разрядов к младшим. Для регистра разрядности (где — старший разряд, — младший) функция возбуждения внутренних разрядов описывается уравнением:

    Критическим аспектом является граничное условие для старшего разряда . В зависимости от подаваемого на него сигнала различают два типа сдвига:

  • Логический сдвиг вправо (Logical Shift Right, LSR). В старший разряд всегда загружается логический ноль: . Применяется для беззнаковых чисел.
  • Арифметический сдвиг вправо (Arithmetic Shift Right, ASR). Старший разряд сохраняет свое значение, обеспечивая расширение знака (sign extension) для чисел в дополнительном коде: . Это эквивалентно целочисленному делению на 2 с сохранением знака.
  • Сдвиг влево

    При сдвиге влево (Shift Left, SL) данные перемещаются от младших разрядов к старшим. Функция возбуждения для внутренних разрядов:

    Граничное условие для младшего разряда при арифметическом и логическом сдвиге влево идентично: . Младший бит, выходящий за пределы регистра (), теряется или передается во флаг переноса (Carry Flag) процессора.

    !Пошаговая визуализация сдвига данных

    Синтез двунаправленного сдвигового регистра

    Для реализации сдвига в обоих направлениях в одной аппаратной структуре необходимо динамически изменять топологию связей. Это достигается установкой мультиплексора перед входом каждого триггера.

    Введем управляющий сигнал (Direction), где задает сдвиг вправо, а — сдвиг влево. Логическое уравнение для -го разряда () принимает вид:

    Граничные условия требуют введения внешних входов для последовательной загрузки данных: (Shift Right Input) для ввода при сдвиге вправо и (Shift Left Input) для ввода при сдвиге влево.

    Уравнение для старшего разряда ():

    Уравнение для младшего разряда ():

    Перекос фаз управляющего сигнала недопустим во время активного фронта тактового сигнала, так как это приведет к метастабильности из-за нарушения времени установки на входах D-триггеров.

    Универсальный сдвиговый регистр

    Максимальная гибкость достигается в архитектуре универсального регистра, который объединяет функции параллельной загрузки, хранения, сдвига вправо и сдвига влево. Интеграция четырех микроопераций требует использования мультиплексора 4-в-1 перед каждым триггером и двух управляющих сигналов и .

    Таблица кодирования микроопераций:

    | | | Микрооперация | Математическое описание | |---|---|---|---| | 0 | 0 | Хранение (Hold) | | | 0 | 1 | Сдвиг вправо (SR) | | | 1 | 0 | Сдвиг влево (SL) | | | 1 | 1 | Параллельная загрузка (Load) | |

    Полное булево уравнение для внутреннего -го разряда универсального регистра представляет собой совершенную дизъюнктивную нормальную форму (СДНФ) выходов дешифратора управляющих сигналов, умноженных на соответствующие информационные источники:

    !Структура универсального сдвигового регистра

    Аппаратная сложность универсального регистра значительно выше базового параллельного. Каждый разряд требует 4-входового мультиплексора, что эквивалентно добавлению как минимум трех двухвходовых логических вентилей и одного инвертора на каждый бит хранимой информации.

    Кольцевые регистровые структуры

    Замыкание выхода сдвигового регистра на его вход создает автономный цифровой автомат, циклически перебирающий состояния без внешнего информационного воздействия.

    Прямой кольцевой регистр

    В прямом кольцевом регистре (Ring Counter) выход младшего разряда соединяется со входом старшего (при сдвиге вправо):

    Если в -разрядный регистр предварительно загрузить код, содержащий одну единицу (унитарный код, one-hot), единица будет циклически сдвигаться. Количество уникальных состояний такого автомата равно .

    Главная проблема прямого кольцевого регистра — отсутствие аппаратной самокоррекции. Если из-за электромагнитной помехи в регистре возникнет искаженное состояние (например, две единицы вместо одной), автомат продолжит циклически сдвигать этот ошибочный паттерн бесконечно. Для обеспечения самокоррекции уравнение обратной связи модифицируют, принудительно формируя единицу только если все остальные разряды равны нулю:

    Такая схема на базе элемента ИЛИ-НЕ гарантирует возврат в легальный цикл состояний максимум за тактов после любого сбоя.

    Регистр Джонсона (счетчик Мебиуса)

    Регистр Джонсона (Twisted-Ring Counter) использует инверсную обратную связь. Выход младшего разряда инвертируется перед подачей на вход старшего:

    Эта топология кардинально меняет граф переходов. При инициализации нулевым вектором автомат сначала последовательно заполняется единицами, а затем — нулями.

    Анализ состояний 3-разрядного регистра Джонсона: 1. 2. 3. 4. 5. 6.

  • Возврат в
  • Длина цикла регистра Джонсона составляет . Это позволяет построить делитель частоты на с использованием триггеров, что в два раза эффективнее прямого кольцевого регистра по аппаратным затратам. Кроме того, переходы между любыми соседними состояниями в цикле Джонсона сопровождаются переключением только одного триггера. Это свойство (аналогичное коду Грея) полностью исключает появление ложных импульсов (глитчей) на выходах комбинационных дешифраторов, подключенных к такому регистру.

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

    5. Временной анализ и диаграммы функционирования регистров параллельного и последовательного типа

    Временной анализ и диаграммы функционирования регистров параллельного и последовательного типа

    При тактовой частоте 1 ГГц электрический сигнал успевает пройти по кремниевому кристаллу расстояние не более 15 миллиметров за один период. В реальных цифровых устройствах логическая корректность схемы, выраженная булевыми уравнениями, теряет смысл, если не соблюдаются физические временные ограничения. Временной анализ переводит абстрактные переходы состояний автомата в строгую систему неравенств, определяющих, успеет ли сигнал преодолеть паразитные емкости проводников до прихода следующего синхроимпульса.

    Математический аппарат временных ограничений

    Любой синхронный регистр функционирует в условиях жестких временных рамок, определяемых физикой полупроводников. Для корректной фиксации данных логический уровень на D-входе триггера должен оставаться стабильным внутри окна, заданного временем установки () и временем удержания ().

    Временной анализ схемы базируется на расчете двух фундаментальных путей: пути данных (data path) и пути тактового сигнала (clock path). Разница во времени доставки тактового импульса к двум соседним триггерам называется перекосом тактового сигнала (). Перекос считается положительным, если тактовый импульс приходит на принимающий триггер позже, чем на передающий.

    Для обеспечения надежной работы любого регистра, передающего данные от ячейки к ячейке , должны строго выполняться два базовых неравенства.

    Первое — ограничение по времени установки (Setup Constraint), определяющее максимально допустимую тактовую частоту:

    Где — период тактового сигнала, — максимальная задержка распространения сигнала от тактового входа до выхода Q передающего триггера, — максимальная задержка в комбинационной логике между триггерами.

    Второе — ограничение по времени удержания (Hold Constraint), гарантирующее отсутствие эффекта «проскальзывания» данных:

    Здесь используются минимальные значения задержек. Важнейшая особенность этого уравнения заключается в том, что оно не зависит от периода тактового сигнала . Если условие удержания нарушено, схему невозможно заставить работать путем снижения тактовой частоты — это фатальная аппаратная ошибка.

    Временные диаграммы параллельных регистров

    В параллельных регистрах (PIPO) данные загружаются во все разряды одновременно. На идеальной временной диаграмме фронт тактового сигнала мгновенно фиксирует вектор входных данных , и через интервал на выходах появляется новый вектор состояния .

    В реальности необходимо учитывать задержки переключения выходных буферов, особенно если регистр работает на общую шину данных. Время перехода выхода из высокоимпедансного состояния в активное ( или ) и время отключения от шины ( или ) напрямую влияют на диаграмму.

    Если два параллельных регистра поочередно выдают данные на одну шину с использованием мультиплексирования через Z-состояние, критическим становится интервал смены управляющих сигналов. Если первый регистр отключается от шины за , а второй включается за , возникает окно в , в течение которого оба регистра активно управляют линией. На временной диаграмме этот конфликт (bus contention) отображается как зона неопределенного логического уровня (Х-состояние) с протеканием сквозных токов, способных физически разрушить выходные каскады КМОП-структур. Для предотвращения конфликта в диаграмму вводится мертвое время (dead time), когда сигналы разрешения выхода (Output Enable) обоих регистров неактивны.

    Сдвиговые регистры и проблема гонки сигналов

    В сдвиговых регистрах (SISO, SIPO) выход предыдущего триггера напрямую соединен со входом последующего. Комбинационная логика между ними отсутствует, следовательно, . Подставив это в уравнение удержания, получаем:

    Эта математическая редукция делает сдвиговые регистры экстремально уязвимыми к положительному перекосу тактового сигнала.

    Рассмотрим классический сдвиговый регистр. Пусть на входе первого триггера () установлена логическая «1», а сам регистр обнулен. Приходит фронт тактового сигнала. захватывает «1» и через время меняет свой выход Q с «0» на «1». Этот сигнал немедленно поступает на вход D второго триггера (). Если из-за задержек в проводниках тактовый импульс дойдет до с опозданием (), и это опоздание окажется больше, чем первого триггера, то зафиксирует не старое значение «0», а уже новое, только что появившееся значение «1».

    !Динамика гонки сигналов при перекосе тактового импульса

    Этот эффект называется гонкой сигналов (race condition) или двойным сдвигом (double shift). За один такт бит информации смещается не на одну, а сразу на две или более позиций. Временная диаграмма в этом случае покажет, как фронт данных обгоняет фронт тактирования.

    Например, если , , то максимально допустимый перекос для сдвигового регистра составляет всего . Если физическая длина тактовой линии создает задержку между триггерами, схема гарантированно выйдет из строя.

    Топологическое управление временными параметрами

    Для решения проблемы гонки сигналов в сдвиговых регистрах применяются методы управления параметром на уровне физической топологии (routing).

    Стандартный подход — использование обратной разводки тактового сигнала (reverse clock routing). Если данные в сдвиговом регистре распространяются слева направо (от младших разрядов к старшим), то линия тактового сигнала прокладывается справа налево.

    !Топология прямой и обратной разводки тактового дерева

    При обратной разводке тактовый импульс сначала достигает принимающего триггера , и только спустя время задержки в проводе доходит до передающего . В этом случае становится отрицательной величиной. Перепишем уравнение удержания для отрицательного перекоса:

    Отрицательный перекос математически прибавляется к левой части неравенства, создавая огромный запас по времени удержания. Гонка сигналов становится физически невозможной: гарантированно закроет свое окно фиксации данных до того, как вообще получит команду на обновление состояния.

    Однако этот метод имеет цену. Отрицательный перекос ухудшает ситуацию с максимальной частотой. В уравнении установки теперь вычитается из доступного времени периода:

    Таким образом, топологическая защита от гонки сигналов в сдвиговых регистрах достигается ценой снижения предельной тактовой частоты работы устройства.

    Асинхронные входы и диаграммы метастабильности

    До сих пор анализ предполагал, что входные данные поступают синхронно с тактовым сигналом. Если регистр принимает данные от внешнего источника (например, нажатие кнопки или сигнал от датчика), момент изменения данных на D-входе непредсказуем.

    Рано или поздно фронт асинхронного сигнала попадет точно в окно установки/удержания. На временной диаграмме это отображается как нарушение или . В этот момент внутренние узлы триггера не успевают полностью переключиться к шинам питания или земли. Триггер входит в состояние метастабильности — его выходное напряжение зависает на промежуточном уровне (около ), не являясь ни логическим нулем, ни единицей.

    На временной диаграмме метастабильность выглядит как плато, которое длится случайное время, после чего сигнал самопроизвольно сваливается в «0» или «1» из-за теплового шума транзисторов. Проблема в том, что если это промежуточное напряжение поступит на входы следующих логических вентилей, они могут интерпретировать его по-разному (один вентиль воспримет как «1», другой как «0»), что приведет к рассинхронизации всего цифрового автомата.

    Для анализа надежности асинхронного ввода используется уравнение среднего времени наработки на отказ (Mean Time Between Failures, MTBF):

    Где — время, предоставленное триггеру на выход из метастабильного состояния (обычно равно ), — технологическая константа скорости разрешения триггера, — ширина временного окна уязвимости, — тактовая частота, — средняя частота смены асинхронных данных.

    Экспоненциальная зависимость в числителе показывает, что единственный эффективный способ борьбы с метастабильностью — увеличение времени . Для этого на входе системы ставят двухступенчатый синхронизатор (two-stage synchronizer) — два последовательно соединенных D-триггера без логики между ними. Первый триггер принимает асинхронный удар на себя и может войти в метастабильность. Ему дается почти целый такт (), чтобы выйти из этого состояния. Ко второму такту сигнал стабилизируется, и второй триггер надежно фиксирует уже корректный логический уровень, передавая его в основную схему.

    Временной анализ доказывает, что идеальных цифровых фронтов не существует. Работоспособность регистра — это всегда баланс между задержками распространения, перекосами линий связи и окнами уязвимости элементов памяти. Понимание этих математических ограничений позволяет проектировать системы, которые сохраняют стабильность даже при экстремальных частотах и асинхронных возмущениях.