[Перевод] UDB. Что же это такое? Часть 7. Модуль управления тактированием и сбросом

qtdaijebn1ck_oryqwmm-nqmymg.jpeg

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

UDB. Что же это такое? Часть 1. Введение. PLD.
UDB. Что же это такое? Часть 2. Datapath.
UDB. Что же это такое? Часть 3. Datapath FIFO.
UDB. Что же это такое? Часть 4. Datapath ALU.
UDB. Что же это такое? Часть 5. Datapath. Полезные мелочи.
UDB. Что же это такое? Часть 6. Модуль управления и статуса.

21.3.4 Модуль управления тактированием и сбросом (Reset and Clock Control Module)


Основная функция этого модуля заключается в выборе тактовых сигналов из доступных глобальных тактовых сигналов или тактового сигнала шины для каждой PLD, Datapath и модуля управления и статуса. Модуль также поддерживает динамические и программные сбросы блоков UDB. Как показано на рисунке 21–38, имеется четыре блока управления тактированием и один блок управления сбросом. Четыре входа (RC_IN[3:0]) доступны для проброса из глобальной трассировочной матрицы. Каждый блок управления тактированием может выбрать источник для входа разрешения тактирования из этих трассировочных входов, а также имеется мультиплексор, позволяющий выбрать один из трассировочных входов для использования в качестве внешнего источника тактового сигнала. Как видно на рисунке, выбор внешнего источника тактирования может быть синхронизирован. Для каждого компонента UDB существует 10 тактовых сигналов на выбор: 8 глобальных цифровых тактовых сигналов, тактовый сигнал шины и выбранный внешний тактовый сигнал (ext clk). Любой из трассированных входных сигналов (rc_in) может быть использован либо в качестве активатора, чувствительного к уровню, либо в качестве активатора, чувствительного к перепаду. Функция сброса этого блока обеспечивает трассированный сброс блоков PLD и счетчика SC, а также возможность программного сброса каждого блока для поддержки реконфигурации.

Тактовый сигнал шины, подаваемый на вход модуля управления тактированием и сбросом отличается от тактового сигнала системной шины. Этот сигнал называется «bus_clk_app» и запирается так же, как прочие цифровые тактовые сигналы. Тактовый же сигнал системной шины используется только для операций ввода-вывода и автоматически отпирается для каждого доступа. Генератор тактовых сигналов Datapath вырабатывает три тактовых сигнала: один для Datapath и по одному сигналу для каждого FIFO.

_ibud068o3apgk5lanjseee7dcy.png
Рисунок 21–38. Модуль управления тактированием и сбросом.

21.3.4.1 Управление тактированием


Рисунок 21–39 показывает пример схемы выбора и разрешения тактирования. В каждом UDB есть четыре таких схемы: по одной на каждый блок PLD, одна схема для Datapath и одна для блока управления и статуса. Основными компонентами этой схемы являются мультиплексор выбора глобального тактирования, инвертор тактирования, мультиплексор выбора разрешающего сигнала тактирования, инвертор разрешающего сигнала тактирования и логика обнаружения перепада.

ltcqos93aaayqa3pqsbedlsxx9i.png
Рисунок 21–39. Управление выбором/активацией тактирования.

Выбор тактирования (Clock Selection)

Существует восемь глобальных цифровых тактовых сигналов, проброшенных на все UDB. Любой из них может быть выбран. Глобальные цифровые тактовые сигналы являются выходами делителей частот, выбранных пользователем. См. «Система тактирования» на стр. 109 оригинала. Другим вариантом выбора является тактовый сигнал шины, который имеет наивысшую частоту в системе. Этот сигнал называется «bus_clk_app» и трассируется отдельно от тактового сигнала системной шины. Кроме того, для поддержки функций с прямым тактовым сигналом (например, SPI) внешняя трассировочная линия может быть выбрана в качестве входного тактового сигнала. Поскольку функции приложения привязаны к произвольным границам внутри UDB, выбор индивидуального тактового сигнала для каждого подкомпонента UDB способствует точной гранулярности при программировании.

Инверсия тактирования (Clock Inversion)

Выбранный тактовый сигнал может быть инвертирован. Это ограничит максимальную частоту работы из-за существования участков с тактом в половину периода. Одновременные запись шины и внутренние записи (например, программная запись нового значения счетчика во время его работы) не поддерживаются, когда внутреннее тактирование инвертировано и имеет такую же частоту, как и тактирование шины. Это ограничение затрагивает A0, A1, D0, D1, а также регистр управления в режиме счетчика.

Выбор разрешения тактирования (Clock Enable Selection)

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

Инверсия разрешения тактирования (Clock Enable Inversion)

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

Режимы разрешения тактирования (Clock Enable Mode)

По умолчанию режим работы разрешения тактирования имеет значение OFF. После настройки работы целевого блока программное обеспечение может установить один из описанных ниже режимов работы при помощи регистра CFGxEN MODE[1:0], показанного на рисунке 21–39.

Таблица 21–23. Режимы разрешения тактирования.

Использование разрешения тактирования

Существует два распространенных сценария использования разрешения тактирования.

Программное разрешение (Firmware Enable): предполагается, что большинство функций требуют программного разрешения тактирования для запуска и остановки функции. Так как граница функции, привязанной к массиву UDB, условна, функция может охватывать несколько UDB и/или частей UDB. Следовательно, необходим способ включения каждой функции атомарно. Обычно это реализовано при помощи бита в регистре управления, проброшенного на один или несколько входов разрешения тактирования. Этот сценарий также поддерживает случай, когда приложениям необходимо одновременно запустить несколько несвязанных блоков.

Эмуляция локальной выработки тактового сигнала (Emulated Local Clock Generation): эта функция позволяет UDB генерировать локальные тактовые сигналы и распределять их на другие UDB в массиве при помощи шаблона реализации активации синхронного тактирования, вместо того, чтобы напрямую тактировать каждый UDB отдельно. Использование функции Positive Edge для входа разрешения снимает ограничения на скважность сигнала разрешения.

Особое тактирование FIFO

Блоки FIFO Datapath имеют особенности тактирования. По умолчанию, тактирование FIFO имеет такую же конфигурацию, как и тактирование Datapath. Однако блоки FIFO имеют особые биты управления, которые меняют конфигурацию тактирования:

  • каждый тактовый сигнал FIFO может быть инвертирован относительно полярности выбранного тактирования Datapath;
  • когда выбран режим FIFO FAST, тактирование шины заменяет выбор тактирования Datapath, которое обычно использует FIFO.


21.3.4.2 Управление сбросом


Существует два режима управления сбросом: унаследованный и стандартный. Режим задается при помощи бита ALT RES в каждом регистре конфигурации UDB CFG31. По умолчанию бит имеет значение 0 (унаследованный режим); рекомендуется присвоить ему значение 1 (стандартный режим). Стандартный режим имеет большую степень детализации — отдельные блоки внутри UDB могут использовать трассируемые сбросы. Для информации об унаследованном режиме свяжитесь с Cypress.

Управление сбросом PLD (PLD Reset Control)

Рисунок 21–40 показывает систему сброса PLD.

xdd0mv5saiiqmm17xgzb5yv4ri8.png
Рисунок 21–40. Структура сброса PLD.

Управление сбросом Datapath (Datapath Reset Control)

Рисунок 21–41 показывает систему сброса Datapath. Трассированный сброс применяется ко всем регистрам и состояниям Datapath кроме регистров данных D0 и D1. Регистры данных являются сохраняющимися регистрами. Содержимое FIFO не определено после сброса, так как располагается в ОЗУ.

-u0nnjeaz5rkid5i8hhve_0hr7w.png
Рисунок 21–41. Структура сброса Datapath.

Управление сбросом управления и статуса (Status and Control Reset Control)
Рисунок 21–42 показывает систему сброса управления и статуса. Регистры управления/счетчика и статуса имеют общий трассированный сброс, однако включаются они отдельно. Регистры наложения маски/периода и вспомогательного управления являются регистрами сохранения.

gqtvx7q341r-_dg6pgy_yoniexq.png
Рисунок 21–42. Управление сбросом управления и статуса.

21.3.4.3 Инициализация UDB при включении (POR)


Инициализация регистров и состояний (Register and State Initialization)

Таблица 21–24. Инициализация состояний UDB при включении


Инициализация трассировки

При включении состояние входов и выходов трассировки имеет следующие особенности:

  • все выходы UDB, которые направляют данные на трассировочную матрицу удерживаются в состоянии »0»;
  • все драйверы выходящие из трассировки и попадающие на входы UDB изначально занулены.


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

Окончание следует. Мы готовим последний перевод оставшегося раздела фирменной документации Cypress об UDB, а именно — UDB Addressing/Адресация UDB.

© Habrahabr.ru