31.3 Асинхронные счетчики
Асинхронные счетчики строятся из простой цепочки Т-триггеров или JK-триггеров, каждый из которых работает в счетном режиме. Для получения суммирующего счетчика берутся Т-триггеры с переключением по спаду (рисунок 31.1), для получения вычитающего счётчика – с переключением по фронту (рисунок 31.2). Выходной сигнал каждого триггера служит входным сигналом для следующего триггера. Поэтому все разряды (выходы) асинхронного счетчика переключаются последовательно (отсюда название – последовательные счетчики), один за другим, начиная с младшего и кончая старшим. Каждый следующий разряд переключается с задержкой относительно предыдущего (рисунок 31.3), то есть, вообще говоря, асинхронно, не одновременно с входным сигналом и с другими разрядами.
Рисунок 31.1 – Структурная схема суммирующего счетчика
Рисунок 31.2 – Структурная схема вычитающего счетчика
Рисунок 31.3 – Временная диаграмма работы 4-разрядного
асинхронного суммирующего счетчика
Чем больше разрядов имеет счетчик, тем большее время ему требуется на полное переключение всех разрядов. Задержка переключения каждого разряда примерно равна задержке триггера, а полная задержка установления кода на выходе счетчика равна задержке одного разряда, умноженной на число разрядов счетчика. Легко заметить, что при периоде входного сигнала, меньшем полной задержки установления кода счетчика, правильный код на выходе счетчика просто не успеет установиться, поэтому такая ситуация не имеет смысла. Это накладывает жесткие ограничения на период (частоту) входного сигнала, причем увеличение, к примеру, вдвое количества разрядов счетчика автоматически уменьшает вдвое предельно допустимую частоту входного сигнала.
Таким образом, если нам нужен выходной код асинхронного счетчика, то есть все его выходные сигналы (разряды) одновременно, то должно выполняться следующее неравенство: T>Ntз, где T – период входного сигнала, N – число разрядов счетчика, tз – время задержки одного разряда.
Основное применение асинхронных счетчиков состоит в построении всевозможных делителей частоты, то есть устройств, выдающих выходной сигнал с частотой, в несколько раз меньшей, чем частота входного сигнала. В данном случае нас интересует не выходной код счетчика, то есть не все его разряды одновременно, а только один разряд, поэтому взаимные задержки отдельных разрядов не играют роли, полная задержка переключения счетчика не имеет значения. Простейший пример делителя частоты на два – это триггер в счетном режиме или счетчик, выходным сигналом которого является выход первого, младшего разряда.
31.4 Построение счётчиков с произвольным модулем счёта
На практике часто требуется строить счетчики с произвольными модулями счета. Наиболее распространён модуль счёта, равный 10.
Счётчики с модулем счёта 10 называются двоично-десятичными.
Построение счетчиков с произвольными модулями счета базируется на исключении лишних состояний двоичного счетчика.
Для исключения лишних состояний двоичного счётчика можно воспользоваться дополнительной схемой. Для этого необходимо взять счётчик со статическим входом С и разрядностью N, чтобы выполнялось условие: < Kc < .
Счетчик должен иметь вход сброса в нулевое состояние.
Схема строится по следующим правилам:
1) находится двоичное число модуля счёта;
3) к каждому входу элемента И подключается тот выход счётчика, который соответствует разряду с лог. 1 в двоичном числе модуля счёта;
4) к выходу элемента И подключают вход SRS-триггера с прямыми входами;
5) выход триггера подключают на вход сброса счётчика. Если вход сброса активен при лог. 1, то к нему подключают прямой выход триггера, если вход сброса инверсный, то к нему подключают инверсный выход триггера;
6) вход RRS-триггера соединяют со входомСдвоичного счётчика. Если входСактивен при лог. 0, то через инвертор.
Схема счётчика с модулем счёта Кс=10 приведена на рисунке 31.4.
Рисунок 31.4 – Схема исключения лишних состояний счетчика
Если в числе, на которое надо делить частоту, больше двух единиц (например, 15, то есть 1111, или 13, то есть 1101), то для формирования сигнала сброса надо использовать элементы 2И, 3И или 4И, чтобы объединить все выходы, равные единице. В результате можно построить делитель входной частоты в любое число раз от 2 до 2N, где N – число разрядов используемого счетчика. Правда, при организации обратных связей надо учитывать ограничение на быстродействие счетчика. Все разряды, используемые для обратной связи, должны успеть переключиться за один период входного сигнала. Скважность выходного сигнала может принимать в данном случае самые разные значения, например, выходной сигнал может представлять собой очень короткие импульсы.
На асинхронных счетчиках можно строить также управляемые делители частоты, то есть такие делители, выходная частота которых определяется управляющим кодом. На рисунке 31.5 показан делитель на 2n, где n – целое.
Рисунок 31.5 – Управляемый делитель частоты
на асинхронном счетчике
Восьмиразрядный счетчик DD1 работает по входному сигналу с тактовой частотой
В
момент переключения управляющего кода
на выходе схемы могут появиться
нежелательные короткие импульсы, так
как никакой синхронизации управляющего
кода не предусмотрено. Поэтому схема
должна работать так: сначала задается
входной управляющий код, а уже потом
разрешается работа той схемы, на которую
поступает выходной сигнал, сформированный
нашей схемой. В этом случае никаких
проблем не будет. Не играют роли в данном
случае и задержки переключения разрядов
счетчика, так как всегда используется
только один его разряд. Главное, чтобы
с частотой f
Конечно, применение асинхронных счетчиков не ограничивается только делителями частоты. В случаях, когда высокого быстродействия не требуется, когда переходные процессы на выходах счетчика не имеют значения (при правильной синхронизации), асинхронные счетчики вполне могут заменить более быстрые синхронные счетчики. Доля таких задач составляет около 20 % от общего числа.
Если же включить на выходе асинхронного счетчика выходной параллельный регистр (рисунок 31.6), то можно обеспечить одновременное переключение всех выходных разрядов счетчика.
Рисунок 31.6 – Включение выходного регистра
для одновременного переключения разрядов выходного кода
Данная схема будет работать правильно, если период следования входных тактовых импульсов будет больше, чем время установления всех разрядов счетчика (в нашем случае – 8-разрядного счетчика DD1). Инвертор необходим, так как счетчик срабатывает по отрицательному фронту входного сигнала, а регистр DD2 – по положительному фронту. Данное решение устраняет главный недостаток асинхронного счетчика – неодновременность установления его выходных разрядов. Однако второй недостаток – большая задержка установления выходного кода – сохраняется. Его устранить невозможно, можно только перейти на другие, более быстрые счетчики.
Асинхронные счётчики
Поскольку желательно, чтобы схема счётчика осуществляла счёт не только в обратном, но и в прямом направлении, следует ещё раз взглянуть на последовательность чисел при двоичном счёте и выявить закономерности, используя которые можно собрать подобную схему.
(В этой статье была описана работа схемы на J-K-триггерах, которая осуществляла обратный счёт двоичных чисел от 11 до 00).
Известно, что в последовательности двоичных чисел можно выявить так называемый принцип «октавы» (частота чередования единиц и нулей каждого следующего разряда в два раза меньше частоты чередования предыдущего разряда). Подобное деление частоты способны осуществлять J-K-триггеры в режиме переключения между двумя устойчивыми состояниями, что позволяет собрать счётчик из нескольких каскадно-включённых защёлок. В такой схеме главная проблема заключается в определении способа соединения J-K-триггеров, при котором переключение их состояний будет происходить в нужный момент. Посмотрите на следующую последовательность двоичных чисел, и обратите внимание на характер последовательностей, предшествующих смене 0 на 1 и наоборот:
Обратите внимание, что каждый разряд меняет своё состояние, в тот момент когда предыдущий разряд переходит с 1 на 0. Красными стрелками обозначены точки последовательности, в которых происходит смена значения разряда, при остриё стрелки указывает на точки перехода предыдущего разряда с высокого уровня (1) на низкий (0).
В схеме, состоящей их четырёх J-K-триггеров, необходимо определить способ соединения входов синхронизирующих сигналов для обеспечения переключения состояния триггеров в тот момент, когда состояние предыдущего триггера переходит с высокого логического уровня на низкий. Выходы Q каждой защёлки будут служить соответствующим двоичным разрядом конечного четырёхразрядного числа.
Если бы мы использовали переключение по отрицательному перепаду тактового импульса (кружок на условном изображении входа синхроимпульсов), мы могли бы просто соединить вход синхроимпульсов каждого триггера с выходом Q предыдущего триггера, с тем чтобы при переходе предыдущего триггера с 1 на 0, задний фронт импульса сигнала служил бы «синхроимпульсом» для перехода следующего триггера в новое состояние:
На следующем рисунке показана форма кривой выходного сигнала этой схемы при тактировании посредством генератора периодических импульсов.
Первый триггер (с выходом, обозначенным как Q0), меняет своё состояние по положительному перепаду синхроимпульса, и смена устойчивого состояния происходит по переднему фронту каждого синхроимпульса. Обратите внимание, что коэффициент заполнения в этом примере составляет менее 50%. Такой пример выбран для демонстрации того, что синхронизирующий сигнал должен быть симметричным для обеспечения надёжных, «чистых» выходных битов нашей четырёхразрядной двоичной последовательности. В этой схеме сам синхроимпульс использовался в качестве одного из выходных битов. Это не лучший вариант схемы счётчика, поскольку для получения последовательности счёта, в которой каждый шаг задерживается на тот же промежуток времени необходимо использовать прямоугольный импульсный сигнал с коэффициентом заполнения 50%. Однако при использовании отдельного J-K-триггера для каждого разряда пропадает необходимость в симметричном тактовом сигнале, что позволяет нам использовать практически любой коэффициент заполнения.
Все остальные стрелки на диаграмме импульсов показывают, что каждый последующий выходной бит переключается в противоположное состояние при переходе предыдущего бита с высокого уровня на низкий. Таким образом обеспечивается счёт в прямом направлении.
Есть и менее очевидное решение для генерирования последовательности в прямом направлении, — с использованием триггеров, тактируемых по заднему фронту. В этом случае тактирующий импульс поступает на выход Q’ предыдущего триггера. Поскольку выход Q’ всегда будет представлять собой состояние противоположное выходу Q (в этом типе защёлок отсутствуют запрещённые состояния), переход с высокого уровня на низкий на неинвертирующем выходе будет всегда сопровождаться переходом с низкого уровня на высокий на выходе Q’. Другими словами, каждый раз при переходе выхода триггера Q с 1 на 0, на выходе Q’ того же триггера будет происходить переход с 0 на 1, обеспечивая в нужный момент нарастающий синхроимпульс, необходимый для переключения триггера, тактируемого по переднему фронту.
Если мы будем рассматривать выходы Q’ как второй набор четырёх битов данных, то мы сможем расширить возможности обоих представленных счётчиков. Если мы посмотрим на диаграмму пульсации подобной схемы, то увидим, что выходы Q’ генерируют последовательность обратного счёта, в то время как на выходах Q генерируется последовательность счёта в прямом направлении:
К сожалению, все представленные выше схемы счётчиков обладают общей проблемой, связанной с последовательной «сквозной» сменой состояний триггеров. Этот эффект свойственен некоторым двоичным сумматорам и схемам преобразования данных, и обусловлен накапливающимися задержками при прохождении сигнала от одного элемента логического вентиля к другому. Когда выход Q триггера переключается с 1 на 0, он отдаёт команду на переключение следующему триггеру. Если следующий триггер переходит с 1 на 0, то он также подаёт команду на переключение следующему триггеру и т. д. Однако, поскольку всегда существует небольшая задержка при прохождении сигнала между командой на переключение (синхроимпульс) и действительным переключением (смена состояний выходов Q и Q’), а, следовательно, каждый последующий триггер, который должен поменять состояние, сменит его спустя некоторое время, после того как предыдущий триггер уже поменял своё состояние. Следовательно, при переключении состояний нескольких триггеров, смена состояния происходит не одновременно:
Как вы видите, чем больше триггеров переключается по данному синхроимпульсу, тем большим становится накопленное время задержки от младшего до старшего разряда. По синхроимпульсу в подобной точке смены состояний (например, при переходе с 0111 на 1000), будет происходить «сквозное“ изменение состояний от младшего к старшему разряду, по мере того как происходит смена каждого бита, и подаётся команда для перемены состояния следующего, с небольшой задержкой между двумя соседними триггерами. Если мы внимательнее посмотрим на этот эффект при переходе с 0111 на 1000, то увидим, что в течение короткого периода счётчик будет выдавать неверные значения:
Вместо перехода с «0111“ на «1000», схема будет очень быстро менять состояния в следующей последовательности: 0111-0110-0100-0000 и лишь затем 1000 (в десятичной системе: 7-6—4—0 и затем 8). Из-за такой последовательной («насквозь») смены состояний триггеров, подобная схема называется счётчиком со сквозным переносом или асинхронным счётчиком.
Во многих случаях этот эффект приемлем, поскольку период неверных выходных значений происходит чрезвычайно быстро (для лучшего понимания этого эффекта степень задержки на рисунках преувеличена). Если бы нам потребовалось подать сигнал, например, на ряд светодиодов, то этот промежуток неверных выходных сигналов не внёс бы в работу схемы каких-бы то ни было искажений. Однако это неприемлемо, если бы нам потребовалось использовать счётчик для «выбора» входов мультиплексора или выполнения какой-либо иной задачи, когда ложные выходные сигналы приведут к ошибкам в работе схемы. Несмотря на это, существует возможность использования таких счётчиков в системах, чувствительных к ложным выходным сигналам, благодаря технике, известной как стробирование.
Большая часть мультиплексоров и декодеров оснащена по крайней мере одним «разрешающим» входом. Выход такой схемы будет активным только в том случае, когда активен разрешающий вход. Разрешающий вход может быть использован для стробирования схемы, принимающей ложные выходные сигналы, так чтобы она была отключена во время короткого периода выдачи неверных значений, и была включена только в тот момент, когда прошло достаточное время после последнего синхроимпульса. В большинстве случаев, в качестве сигнала стробирования может использоваться сам синхроимпульс, подаваемый на схему счётчика.
Если разрешающий вход возбуждается низким уровнем сигнала, то принимающая схема будет реагировать на импульсы двоичного кода только при низком уровне синхроимпульса. При высоком уровне синхроимпульса принимающая схема перестанет реагировать на выходные сигналы счётчика. Поскольку счётчик собран на триггерах, тактируемых по переднему фронту синхроимпульса (что определяется входом синхроимпульсов первого триггера), смена состояний остальных триггеров будет осуществляться при изменении уровня синхронизирующего сигнала от низкого к высокому, что означает, что принимающая схема будет отключаться точно перед сменой состояния триггеров. Принимающая схема будет неактивна до тех пор, пока сигнал не вернётся на низкий уровень, что произойдёт через достаточное время после того, как завершится последовательная смена состояний триггеров. Самым важным параметром такой схемы будет продолжительность включения синхроимпульса: она должна быть по меньшей мере равна максимально ожидаемой длительности сквозной смены состояний триггеров счётчика. В противном случае принимающая схема будет включена преждевременно, ещё при наличии ложных выходных сигналов счётчика.
Другим недостатком асинхронных счётчиков является их невысокое быстродействие. В то время как все логические схемы работают на ограниченной максимальной частоте сигналов, в случае асинхронного счётчика данная проблема усугубляется накоплением задержки распространения сигнала. Следовательно, даже при использовании стробирования, асинхронный счётчик не может работать на частоте выше чем частота, при которой может истечь время максимально возможной накопленной задержки до подачи следующего импульса.
Эту проблема решена в схемах синхронных счётчиков, где полностью исключён сквозной перенос. Подобный счётчик устраняет необходимость стробирования на входе какой бы то ни было цифровой схемы, если на него поступает выходной сигнал со счётчика, и кроме того, скорость его работы намного выше асинхронного эквивалента. Конструкция такого счётчика описана в этой статье.
РЕЗЮМЕ:
Счётчик, осуществляющий счёт в прямом направлении, собирается на тактируемых по переднему фронту J-K-триггерах, путём соединения входов синхронизации с выходом Q’ предыдущих триггеров. В другом варианте используются триггеры, тактируемые по заднему фронту. В этом случае входы тактирования соединяются с выходом Q предыдущих триггеров. В любом из этих вариантов, входы триггеров J и K соединены с Vcc или Vdd, благодаря чему на них постоянно подаётся сигнал логической единицы.
В счётчиках на каскадно-включённых J-K-триггерах, где каждый вход синхроимпульса получает сигнал с выхода предыдущего триггера неминуемо возникает момент, в течение которого на некоторых элементах последовательности, на выходе счётчика имеются неверные двоичные значения. Счётчики подобного типа называются асинхронными счётчиками или счётчиками со сквозным переносом.
Стробирование — техника, при которой на схему поступает сигнал с асинхронного (со сквозным переносом) счётчика, таким образом, чтобы не сказывался негативный эффект неверных выходных значений. Вход сигнала разрешения подобной схемы соединяется со входом синхроимпульсов таким образом, чтобы он был задействован только в тот момент, когда выходы счётчика не меняют своего состояния, и будет отключён, когда происходит «сквозное» изменение состояний триггеров.
Асинхронный счетчик — Большая Энциклопедия Нефти и Газа, статья, страница 2
Асинхронный счетчик
Cтраница 2
Микросхема К155ИЕ2 — четырехразрядный десятичный асинхронный счетчик пульсаций. Он служит делителем входной частоты в 2 раза. [16]
Основной отличительной особенностью асинхронного счетчика является зависимость длительности переходного процесса в счетчике от его разрядности, что, естественно, накладывает определенные ограничения на величину максимальной частоты поступления входных сигналов ХСч — С ростом разрядности счетчика необходимо понижать частоту его работы с тем, чтобы избежать искажения информации при счете. Так как каждый / / ( — триггер обладает конечной величиной времени задержки сигнала, то с ростом разрядности счетчика п будет возрастать величина задержки поступления сигнала на вход С некоторого / — го разряда относительно времени поступления входного сигнала Хсч на вход С младшего разряда счетчика. Работа такого счетчика на дешифрирующие схемы затруднительна, так как во избежание ложного срабатывания дешифратора управляющий сигнал Дешифрация должен отстоять по времени от момента поступления очередного входного считываемого сигнала Ясч на время, равное ( или большее) максимальному времени переходного процесса для всего счетчика. [17]
Основной отличительной особенностью асинхронного счетчика является зависимость длительности переходного процесса в счетчике от его разрядности, что, естественно, накладывает определенные ограничения на величину максимальной частоты поступления входных сигналов Асч. С ростом разрядности счетчика необходимо понижать частоту его работы с тем, чтобы избежать искажения информации при счете. Так как каждый / / ( — триггер обладает конечной величиной времени задержки сигнала, то с ростом разрядности счетчика п будет возрастать величина задержки поступления сигнала на вход С некоторого / — го разряда относительно времени поступления входного сигнала Хсч на вход С младшего разряда счетчика. Работа такого счетчика на дешифрирующие схемы затруднительна, так как во избежание ложного срабатывания дешифратора управляющий сигнал Дешифрация должен отстоять по времени от момента поступления очередного входного считываемого сигнала Хсч на время, равное ( или большее) максимальному времени переходного процесса для всего счетчика. [18]
Общие принципы построения асинхронных счетчиков были рассмотрены в § 4.6. В интегральном исполнении выпускаются только счетчики с импульсным воздействием счетных сигналов на триггеры, из которых он построен. [19]
При построении вычитающего асинхронного счетчика на Ж — тригтерах необходимо соединить инверсный выход предыдущего триггера со входом С последующего триггера. [20]
В связи с этим асинхронные счетчики в ПКЧ допустимо применять только при относительно низкой входной частоте f0 и при небольшом количестве разрядов числа А. [21]
Аналогично можно производить синтез асинхронных счетчиков, работающих в других двоично-десятичных кодах. [22]
На рис. 8.56 показана схема четырехразрядного асинхронного счетчика и даны его временные диаграммы. Эта схема представляет собой счетчик-делитель на 16: на выходе последнего триггера формируются прямоугольные импульсы, следующие с частотой, равной 1 / 16 частоты входного тактового сигнала. Схема называется счетчиком, поскольку информация, присутствующая на четырех входах Q, может рассматриваться как 4-разрядное двоичное число, которое изменяется от 0 до 15, увеличиваясь на единицу с каждым входным импульсом. [23]
В ПКЧ возможно применение также и асинхронных счетчиков. Однако в этом случае задержки в срабатывании триггеров, удаленных от входа счетчика, могут привести к сбоям в работе ПКЧ, проявляющимся в частичном совпадении импульсов частотных компонент, получаемых с различных триггеров. [24]
Простота схемы является самым существенным преимуществом асинхронных счетчиков. [25]
Микросхема К531ИЕ14 ( рис. 1.72) — декадный асинхронный счетчик пульсаций. [27]
По скорости эти счетчики имеют преимущество перед асинхронными счетчиками со сквозным переносом ( R. [28]
Минимальный интервал Тсч между счетными импульсами в асинхронном счетчике определяется разрешающим временем триггера младшего разряда. Однако следует при этом учитывать, что код, соответствующий числу поступивших импульсов, устанавливается на счетчике с запаздыванием, после того как завершится процесс переключения триггеров. [30]
Страницы: 1 2 3 4 5
Минимальная Рабочая Температура | -40 C |
Максимальная Рабочая Температура | 85 C |
Максимальное Напряжение Питания | 6В |
Минимальное Напряжение Питания | 2В |
Количество Выводов | 16вывод(-ов) |
Уровень Чувствительности к Влажности (MSL) | MSL 1 — Безлимитный |
Стиль Корпуса Микросхемы Логики | SOIC |
Тип Счетчика | Двоичный |
Тактовая Частота | 53МГц |
Максимальный Счет | 16383 |
Базовый Номер / Семейство Логики | 74HC4020 |
Базовый Номер Микросхемы Логики | 744020 |
Семейство Логической Микросхемы | 74HC |
Вид монтажа | SMD/SMT |
Выходной ток | +/- 5.2 mA |
Диапазон рабочих температур | 40 C to + 85 C |
Категория продукта | ИС, счетчики |
Количество цифровых разрядов | 14 bit |
Максимальная рабочая температура | + 85 C |
Минимальная рабочая температура | 40 C |
Подкатегория | Counter ICs |
Последовательность счёта | Up |
Рабочее напряжение питания | 2 V to 6 V |
Размер фабричной упаковки | 40 |
Семейство логических элементов | HC |
Серия | SN74HC4020 |
Тип продукта | Counter ICs |
Тип счётчика | Binary |
Торговая марка | Texas Instruments |
Упаковка | Tube |
Упаковка / блок | SOP-16 |
Функция | Counter |
Вес, г | 0.35 |
Суммирующий асинхронный двоичный счетчик — Студопедия
На рисунке 1 представлен асинхронный суммирующий счетчик, временные диаграммы его работы на рис. 2.
Подсчитываемые сигналы подаются на вход T.
По их заднему фронту происходит переключение T-триггеров, т.к. они относятся к MS-триггерам.
Для установки нулевых значений во всех разрядах служит вход R.
Рис. 1 Трехразрядный асинхронный суммирующий
двоичный счетчик:
а – функциональная схема на MS-триггерах;
б — обозначение
Рис. 2 Временные диаграммы работы асинхронного
трехразрядного суммирующего двоичного счетчика
Васинхронном счетчикетриггеры переключаются общим тактовым сигналом T не одновременно.
Задержка переключения триггера объясняется конечным значением его быстродействия.
Оно составляет в среднем для различных типов микросхем 30…50 нс.
Для низкочастотных входных сигналов T задержкой можно пренебречь.
Если период входного сигнала составляет сотни наносекунд, то быстродействие следует учитывать, т.к. задержка переключения каждого триггера относительно входного сигнала счетчика включает сумму задержек всех предыдущих триггеров и уменьшает максимально возможную частоту работы устройства в целом.
Смещение моментов переключения триггеров является недостатком асинхронного метода переключения.
Счетчик может считать от нуля до семи (табл. 1, рис. 2). После поступления восьмого импульса T, он возвращается в исходное состояние.
Таблица состояний трехразрядного счетчика Таблица 1
№ набора | Число импульсов T | Сброс | Выходы счетчика | ||
(десятичное число) | R | Q2 | Q1 | Q0 | |
Х |
Знаком «Х» в таблице обозначается, что любая величина переменной не оказывает влияния на результат.
Если суммирующий счетчик состоит из триггеров с переключением по переднему фронту входного импульса (рис. 3), то для управления триггерами используются инверсные выходы Q, временные диаграммы его работы на рис. 4.
Рис. 3 Трехразрядный асинхронный суммирующий двоичный счетчик:
а – функциональная схема натриггерах с динамическими входами; б — обозначение
Достоинством асинхронных счетчиков является простота схемы.
Увеличение разрядности производится подключением необходимого числа триггеров.
К недостаткам можно отнести сравнительно низкое быстродействие, а также ее зависимость от числа разрядов. Из-за несовпадения моментов переключения триггеров, которые срабатывают по очереди, возникают кратковременные комбинации выходных сигналов, не соответствующие количеству подсчитанных импульсов.
Последний недостаток можно исключить, используя, например, счет в коде Грея.
При этом переключение происходит только в одном из разрядов.
Рис. 4 Временные диаграммы работы асинхронного
трехразрядного суммирующего двоичного счетчика
Для получения минимального времени переключения счетчика используется сигнал синхронизации, который обеспечивает одновременность срабатывания триггеров.
Цифровые схемы — Счетчики — CoderLessons.com
В предыдущих двух главах мы обсуждали различные регистры сдвига и счетчики с использованием D-триггеров . Теперь давайте обсудим различные счетчики, используя T-триггеры. Мы знаем, что T триггер переключает выход либо для каждого положительного фронта тактового сигнала, либо для отрицательного фронта тактового сигнала.
Бинарный счетчик «N» состоит из «N» T триггеров. Если счетчик считает от 0 до 2 ? — 1, то он называется двоичным повышающим счетчиком . Точно так же, если счетчик ведет обратный отсчет от 2 ? — 1 до 0, то он называется двоичным обратнымсчетчиком .
Существует два типа счетчиков, основанных на триггерах, которые подключены синхронно или нет.
- Асинхронные счетчики
- Синхронные счетчики
Асинхронные Счетчики
Если триггеры не получают тот же тактовый сигнал, то этот счетчик называется асинхронным счетчиком . Выходной сигнал системных часов применяется в качестве тактового сигнала только для первого триггера. Оставшиеся триггеры получают тактовый сигнал с выхода предыдущего триггера. Следовательно, выходы всех триггеров не изменяются (влияют) одновременно.
Теперь давайте обсудим следующие два счетчика один за другим.
- Асинхронный двоичный счетчик
- Асинхронный двоичный счетчик
Асинхронный двоичный счетчик
N-битный асинхронный двоичный счетчик состоит из «N» T триггеров. Он отсчитывает от 0 до 2 ? — 1. Блок-схема 3-битного асинхронного двоичного счетчика с повышением частоты показана на следующем рисунке.
3-битный асинхронный двоичный счетчик содержит три триггера, и Т-вход всех триггеров подключен к «1». Все эти триггеры запускаются по отрицательному фронту, но выходы изменяются асинхронно. Тактовый сигнал напрямую подается на первый Т-триггер. Таким образом, выход первого T триггера переключается для каждого отрицательного фронта тактового сигнала.
Выход первого триггера T применяется в качестве тактового сигнала для второго триггера T. Таким образом, вывод второго T-триггера переключается для каждого отрицательного фронта вывода первого T-триггера. Аналогично, выход третьего T-триггера переключается для каждого отрицательного фронта выхода второго T-триггера, поскольку выход второго T-триггера действует как тактовый сигнал для третьего T-триггера.
Предположим, что начальный статус T триггеров с крайнего правого на самый левый равен Q2Q1Q0=000. Здесь Q2 & Q0 — это MSB и LSB соответственно. Мы можем понять работу 3-битного асинхронного двоичного счетчика из следующей таблицы.
Нет отрицательного края часов | Q 0 (LSB) | Q 1 | Q 2 (MSB) |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 1 | 1 | 0 |
4 | 0 | 0 | 1 |
5 | 1 | 0 | 1 |
6 | 0 | 1 | 1 |
7 | 1 | 1 | 1 |
Здесь Q0 переключается для каждого отрицательного фронта тактового сигнала. Q1 переключается для каждого Q0, который идет от 1 до 0, в противном случае остается в предыдущем состоянии. Аналогично, Q2 переключается для каждого Q1, который изменяется от 1 до 0, в противном случае остается в предыдущем состоянии.
Начальное состояние T-триггеров в отсутствие тактового сигнала: Q2Q1Q0=000. Это значение увеличивается на единицу для каждого отрицательного фронта тактового сигнала и достигает максимального значения на 7- ом отрицательном фронте тактового сигнала. Этот шаблон повторяется, когда применяются дополнительные отрицательные фронты тактового сигнала.
Асинхронный двоичный счетчик
N-битный асинхронный двоичный обратный счетчик состоит из ‘N’ T триггеров. Он отсчитывает от 2 ? до 1 до 0. Блок-схема 3-битного асинхронного двоичного счетчика с понижением частоты показана на следующем рисунке.
Блок-схема 3-битного асинхронного двоичного счетчика с понижением аналогична блок-схеме 3-битного асинхронного двоичного счетчика с повышением частоты. Но единственное отличие состоит в том, что вместо подключения обычных выходов одноступенчатого триггера в качестве тактового сигнала для триггера следующей ступени, подключите дополненные выходы одноступенчатого триггера в качестве тактового сигнала для триггера следующей ступени. Дополняемый вывод идет от 1 до 0 так же, как нормальный вывод идет от 0 до 1.
Предположим, что начальный статус T триггеров с крайнего правого на самый левый равен Q2Q1Q0=000. Здесь Q2 & Q0 — это MSB и LSB соответственно. Мы можем понять работу 3-битного асинхронного двоичного счетчика с понижением из следующей таблицы.
Нет отрицательного края часов | Q 0 (LSB) | Q 1 | Q 2 (MSB) |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 0 | 1 | 1 |
3 | 1 | 0 | 1 |
4 | 0 | 0 | 1 |
5 | 1 | 1 | 0 |
6 | 0 | 1 | 0 |
7 | 1 | 0 | 0 |
Здесь Q0 переключается для каждого отрицательного фронта тактового сигнала. Q1 переключается для каждого Q0, который идет от 0 до 1, в противном случае остается в предыдущем состоянии. Аналогично, Q2 переключается для каждого Q1, который идет от 0 до 1, в противном случае остается в предыдущем состоянии.
Начальное состояние T-триггеров в отсутствие тактового сигнала: Q2Q1Q0=000. Это уменьшается на единицу для каждого отрицательного фронта тактового сигнала и достигает того же значения на 8- ом отрицательном фронте тактового сигнала. Этот шаблон повторяется, когда применяются дополнительные отрицательные фронты тактового сигнала.
Синхронные Счетчики
Если все триггеры получают один и тот же тактовый сигнал, то этот счетчик называется синхронным счетчиком . Следовательно, выходы всех триггеров изменяются (влияют) одновременно.
Теперь давайте обсудим следующие два счетчика один за другим.
- Синхронный двоичный счетчик
- Синхронный двоичный счетчик
Синхронный двоичный счетчик
N-битный синхронный двоичный счетчик состоит из «N» T триггеров. Он отсчитывает от 0 до 2 ? — 1. Блок-схема 3-разрядного синхронного двоичного счетчика с повышением частоты показана на следующем рисунке.
3-разрядный синхронный двоичный счетчик содержит три Т-триггера и один 2-входной логический элемент И. Все эти триггеры запускаются по отрицательному фронту, и выходы триггеров изменяются (влияют) синхронно. Т-входы первого, второго и третьего триггеров равны 1, Q0 и Q1Q0 соответственно.
Выход первого T-триггера переключается для каждого отрицательного фронта тактового сигнала. Выход второго триггера T переключается для каждого отрицательного фронта тактового сигнала, если Q0 равно 1. Выход третьего триггера T переключается для каждого отрицательного фронта тактового сигнала, если оба Q0 & Q1 равны 1.
Синхронный двоичный счетчик
N-битный синхронный двоичный счетчик состоит из «N» T триггеров. Он отсчитывает от 2 ? до 1 до 0. Блок-схема 3-битного двоичного счетчика с синхронным понижением частоты показана на следующем рисунке.
3-битный двоичный счетчик с синхронным понижением содержит три T-триггера и один 2-входной вентиль AND. Все эти триггеры запускаются по отрицательному фронту, и выходы триггеров изменяются (влияют) синхронно. Т-входы первого, второго и третьего триггеров равны 1, Q0′ &’ Q1′Q0′ соответственно.
Выход первого T-триггера переключается для каждого отрицательного фронта тактового сигнала. Выход второго триггера T переключается для каждого отрицательного фронта тактового сигнала, если Q0′ равен 1. Выход третьего триггера T переключается для каждого отрицательного фронта тактового сигнала, если оба Q1′ & Q0′ равны 1.
Асинхронные счетчики — последовательные схемы
Асинхронные счетчики
Глава 11 — Последовательные схемы
В предыдущем разделе мы увидели схему, использующую один триггер JK, отсчитанный назад в двухбитовой двоичной последовательности, с 11 до 10 с 01 до 00. Поскольку было бы желательно иметь схему, которая могла бы рассчитывать вперед, а не просто назад, было бы целесообразно снова рассмотреть последовательность счетчиков вперед и искать больше шаблонов, которые могли бы указать, как построить такую схему.
Поскольку мы знаем, что последовательности двоичных счетчиков следуют схеме частотного деления на октаву (коэффициент 2) и что мультивибраторы JK с флип-флопом, настроенные для режима «переключения», способны выполнять этот тип частотного деления, мы можем представить схему состоящий из нескольких триггеров JK, каскадированных для производства четырех бит вывода. Основная проблема, стоящая перед нами, заключается в том, чтобы определить, как объединить эти триггеры вместе, чтобы они переключались в нужное время, чтобы создать правильную двоичную последовательность. Изучите следующую последовательность двоичных счетчиков, обращая внимание на шаблоны, предшествующие «переключению» бит между 0 и 1:
Обратите внимание, что каждый бит в этой четырехбитовой последовательности переключается, когда бит перед ним (бит имеет меньшее значение или вес места) переключается в определенном направлении: от 1 до 0. Малые стрелки указывают те точки в последовательности, где бит переключается, голова стрелки указывает на предыдущий бит, переход из состояния «высокий» (1) в состояние «низкий» (0):
Начиная с четырех триггеров JK, подключенных таким образом, чтобы всегда быть в режиме «переключения», нам нужно определить, как подключать тактовые входы таким образом, чтобы каждый последующий бит переключался, когда бит перед переходом от 1 до 0. Выходы Q каждого триггера будут служить в качестве соответствующих двоичных битов конечного четырехбитового счета:
Если бы мы использовали триггеры с отрицательным фронтом (символы пузырьков на вводе часов), мы могли бы просто подключить тактовый вход каждого триггера к выходному сигналу Q триггера перед ним, так что, когда бит до он изменяется от 1 до 0, «задний фронт» этого сигнала «будет синхронизировать» следующий триггер, чтобы переключить следующий бит:
Эта схема даст следующие выходные сигналы, когда «синхронизируется» повторяющимся источником импульсов от осциллятора:
Первый триггер (тот, у которого есть выход Q 0 ), имеет синхронизирующий вход с положительным фронтом, поэтому он переключается с каждым нарастающим фронтом тактового сигнала. Обратите внимание, что тактовый сигнал в этом примере имеет рабочий цикл менее 50%. Я показал сигнал таким образом, чтобы продемонстрировать, как сигнал синхронизации не должен быть симметричным для получения надежных «чистых» выходных битов в нашей четырехбитовой двоичной последовательности. В самой первой схеме триггера, показанной в этой главе, я использовал сам тактовый сигнал как один из выходных битов. Это плохая практика в дизайне счетчиков, хотя это связано с необходимостью использования прямоугольного сигнала с 50% -ным рабочим циклом («высокое» время = «низкое» время), чтобы получить последовательность отсчета, где каждый шаг паузы за такое же количество времени. Тем не менее, использование одного триггера JK для каждого выходного бита освобождает нас от необходимости иметь симметричный тактовый сигнал, позволяя использовать практически любое разнообразие формы высоких / низких частот для увеличения последовательности счетчиков.
Как указано всеми другими стрелками на диаграмме импульсов, каждый последующий выходной бит переключается действием предыдущего бита, переход от «высокого» (1) в «низкий» (0). Это шаблон, необходимый для создания последовательности счетчиков «вверх».
Менее очевидным решением для генерации последовательности «вверх» с использованием триггеров с положительным фронтом является «синхронизация» каждого триггера с использованием выхода Q ‘предыдущего триггера, а не Q-выхода. Поскольку вывод Q всегда будет точным противоположным состоянием Q-вывода на триггере JK (без недопустимых состояний с этим типом триггера), переход с высокой до низкой на Q-выход будет сопровождаться переход от низкого к высокому на выходе Q. Другими словами, каждый раз, когда выход Q триггера переходит от 1 до 0, выход Q ‘того же триггера будет переходить от 0 до 1, обеспечивая положительный импульс синхронизации, который нам нужно будет переключить срабатывание триггера с положительным фронтом в нужный момент:
Одним из способов расширения возможностей любой из этих двух схем счетчиков является рассмотрение выходов Q ‘как еще одного набора из четырех двоичных битов. Если мы рассмотрим диаграмму импульсов для такой схемы, мы увидим, что выходы Q ‘генерируют последовательность счисления вниз, тогда как выходы Q генерируют восходящую последовательность:
К сожалению, все встречные схемы, показанные таким образом, имеют общую проблему: эффект пульсации . Этот эффект наблюдается в некоторых типах схем двоичного сумматора и преобразования данных и обусловлен накопленными задержками распространения между каскадными воротами. Когда Q-выход триггера переходит от 1 до 0, он переключает следующий триггер. Если следующий триггер переключается с 1 на 0, он будет управлять триггером после него, чтобы переключиться, и так далее. Однако, поскольку всегда существует небольшая величина задержки распространения между командой для переключения (тактовый импульс) и фактическим переключением (Q и Q ‘выдает изменяющиеся состояния), любые последующие триггеры, которые будут переключаться, будут переключаться через некоторое время после первый триггер переключился. Таким образом, когда несколько битов переключаются в двоичной последовательности счетчиков, они не будут переключаться точно в одно и то же время:
Как вы можете видеть, чем больше битов, которые переключаются с заданным тактовым импульсом, тем более интенсивное время задержки от LSB до MSB. Когда импульс синхронизации возникает в такой точке перехода (например, при переходе от 0111 до 1000), выходные биты будут «пульсировать» последовательно от LSB до MSB, так как каждый последующий бит переключает и командует следующий бит для переключения, а также, с небольшой задержкой распространения между каждым переключением бит. Если мы возьмем крупный план на этот эффект при переходе от 0111 до 1000, мы увидим, что в течение короткого периода времени генерируются ложные выходные значения, которые имеют эффект «пульсации»:
Вместо того, чтобы чисто переходить с выхода «0111» на выход «1000», схема счетчика очень быстро пульсирует от 0111 до 0110 до 0100 до 0000 до 1000 или от 7 до 6 до 4 к 0, а затем до 8. Это поведение получает счетчик цепи имя счетчика пульсаций или асинхронный счетчик .
Во многих приложениях этот эффект является допустимым, поскольку пульсация происходит очень, очень быстро (ширина задержек была преувеличена здесь как помощь для понимания эффектов). Если бы все, что мы хотели сделать, это диск набора светодиодов (светодиодов) с выходами счетчика, например, эта кратковременная пульсация не имела бы никакого значения. Однако, если мы хотели использовать этот счетчик для управления «выборными» входами мультиплексора, индексировать указатель памяти в микропроцессорной (компьютерной) схеме или выполнять какую-то другую задачу, в которой ложные выходы могут вызывать ложные ошибки, это было бы неприемлемо, Существует способ использовать этот тип схемы счетчика в приложениях, чувствительных к ложным, генерируемым пульсациями выходам, и он включает в себя принцип, известный как стробирование .
Большинство схем декодера и мультиплексора оснащены по меньшей мере одним входом, называемым «enable». Выходной сигнал такой схемы будет активен только тогда, когда вход разрешения активируется. Мы можем использовать этот вход разрешения для стробирования схемы, получающей выходной сигнал счетчика пульсаций, чтобы он был отключен (и, следовательно, не реагировал на выходной сигнал счетчика) в течение короткого периода времени, в течение которого выходы счетчика могут колебаться, и включаться только при достаточном прошло время с момента последнего тактового импульса, что все колебания прекратятся. В большинстве случаев стробирующий сигнал может быть тем же самым тактовым импульсом, который управляет схемой счетчика:
При включенном входе с активным низким значением принимаемая схема будет реагировать на двоичный счет четырехбитовой схемы счетчика только тогда, когда сигнал синхронизации «низкий». Как только импульс синхронизации будет «высоким», приемная цепь перестает отвечать к выходу счетчика. Поскольку счетная цепь срабатывает с положительным фронтом (как определено первым входом синхронизации с триггером), все счетное действие происходит при низком-высоком переходе тактового сигнала, что означает, что принимающая схема будет отключена только перед тем, как произойдет переключение на четыре выходных бита счетной цепи. Схема приема не будет активирована до тех пор, пока сигнал синхронизации не вернется в низкое состояние, которое должно быть достаточно продолжительным после того, как все колебания перестанут быть «безопасными», чтобы позволить новому счету влиять на принимающую схему. Важнейшим параметром здесь является «высокое» время тактового сигнала: оно должно быть, по крайней мере, до максимального ожидаемого периода пульсации схемы счетчика. Если нет, то сигнал синхронизации преждевременно активирует приемную схему, в то время как некоторые колебания все еще происходят.
Другим недостатком схемы асинхронного или рябь-счетчика является ограниченная скорость. В то время как все схемы затворов ограничены по максимальной частоте сигнала, конструкция асинхронных счетных цепей связывает эту проблему, добавляя аддитивную задержку распространения. Таким образом, даже если стробирование используется в приемной схеме, асинхронная схема счетчика не может быть синхронизирована на любой частоте выше той, которая позволяет максимально возможную накопленную задержку распространения пройти до следующего импульса.
Решение этой проблемы является встречной схемой, которая позволяет избежать пульсаций в целом. Такая схема счетчика устраняет необходимость разработки функции «стробирования» в любых цифровых схемах, использующих выходной сигнал счетчика в качестве входного сигнала, а также будет иметь гораздо большую скорость работы, чем его асинхронный эквивалент. Эта схема встречной цепи является предметом следующего раздела.
- ОБЗОР:
- Счетчик «вверх» может быть выполнен путем подключения тактовых входов триггеров JK с положительным фронтом к выходам Q ‘предыдущих триггеров. Другой способ — использовать триггеры с отрицательным фронтом, подключая тактовые входы к выходам Q предыдущих триггеров. В любом случае входы J и K всех триггеров подключены к V cc или V dd, чтобы всегда быть «высоким».
- Контр-схемы, выполненные из каскадных триггеров JK, где каждый входной тактовый сигнал принимает свои импульсы с выхода предыдущего триггера, неизменно проявляют эффект пульсации, где ложные выходные значения генерируются между некоторыми шагами последовательности подсчета. Эти типы счетных цепей называются асинхронными счетчиками или счетчиками пульсаций .
- Стробирование — это метод, применяемый к схемам, принимающим выход асинхронного (рябь) счетчика, так что ложные отсчеты, сгенерированные во время пульсации, не будут иметь никакого вредного воздействия. По существу, вход включения такой схемы подключается к тактовому импульсу счетчика таким образом, что он активируется только тогда, когда выходы счетчика не изменяются и будут отключены в течение тех периодов изменения выходов счетчика, где возникает пульсация.
Асинхронные счетчики | Последовательные схемы
В предыдущем разделе мы видели схему, использующую один триггер JK, который ведет обратный отсчет в двухбитовой двоичной последовательности от 11 до 10 до 01 до 00.
Поскольку было бы желательно иметь схему, которая могла бы считать вперед , а не только назад, было бы целесообразно снова исследовать последовательность прямого счета и искать дополнительные шаблоны, которые могли бы указать, как построить такую схему.
Поскольку мы знаем, что двоичные счетные последовательности следуют схеме деления частоты на октаву (коэффициент 2) и что мультивибраторы JK-триггера, настроенные для режима «переключения», способны выполнять этот тип частотного деления, мы можем представить себе Схема, состоящая из нескольких триггеров JK, соединенных каскадом для получения четырех битов вывода.
Основная проблема, стоящая перед нами, состоит в том, чтобы определить , как соединить эти триггеры вместе, чтобы они переключались в нужное время для создания правильной двоичной последовательности.
Изучите следующую последовательность двоичного счета, обращая внимание на шаблоны, предшествующие «переключению» бита между 0 и 1:
Обратите внимание, что каждый бит в этой четырехбитовой последовательности переключается, когда бит перед ним (бит, имеющий меньшее значение или весовой коэффициент) переключается в определенном направлении: от 1 до 0.
Маленькие стрелки указывают те точки в последовательности, где бит переключается, причем острие стрелки указывает на переход предыдущего бита из состояния «высокий» (1) в состояние «низкий» (0):
Начиная с четырех триггеров JK, подключенных таким образом, чтобы всегда находиться в режиме «переключения», нам нужно определить, как подключить входы часов таким образом, чтобы каждый последующий бит переключался, когда бит перед его переходом из От 1 до 0.
Выходы Q каждого триггера будут служить соответствующими двоичными битами окончательного четырехбитового счетчика:
Если бы мы использовали триггеры с запуском по отрицательному фронту (пузырьковые символы на тактовых входах), мы могли бы просто подключить тактовый вход каждого триггера к выходу Q триггера перед ним, так что когда бит прежде чем он изменится с 1 на 0, «задний фронт» этого сигнала «синхронизирует» следующий триггер, чтобы переключить следующий бит:
Четырехбитный счетчик «вверх»
Эта схема будет выдавать следующие формы выходных сигналов, когда «синхронизируется» повторяющимся источником импульсов от генератора:
Первый триггер (с выходом Q 0 ) имеет синхронизирующий вход по положительному фронту, поэтому он переключается с каждым нарастающим фронтом синхросигнала.
Обратите внимание на то, что тактовый сигнал в этом примере имеет рабочий цикл менее 50%.
Я показал сигнал таким образом, чтобы продемонстрировать, что тактовый сигнал не обязательно должен быть симметричным для получения надежных, «чистых» выходных битов в нашей четырехбитовой двоичной последовательности.
В самой первой схеме триггера, показанной в этой главе, я использовал сам тактовый сигнал как один из выходных битов.
Это плохая практика в конструкции счетчика, поскольку она требует использования прямоугольного сигнала с коэффициентом заполнения 50% («высокое» время = «низкое» время), чтобы получить последовательность подсчета, в которой каждый шаг делает паузу на такое же время.
Использование одного JK-триггера для каждого выходного бита, однако, избавляет нас от необходимости иметь симметричный тактовый сигнал, позволяя использовать практически любое разнообразие сигналов высокого / низкого уровня для увеличения последовательности счета.
Как указано всеми другими стрелками на диаграмме импульсов, каждый последующий выходной бит переключается действием предыдущего бита, переходящего с «высокого» (1) на «низкий» (0).
Это шаблон, необходимый для генерации «восходящей» последовательности счета.
Менее очевидное решение для генерации «восходящей» последовательности с использованием триггеров, запускаемых по положительному фронту, состоит в том, чтобы «синхронизировать» каждый триггер, используя выход Q ’предыдущего триггера, а не выход Q.
Так как выход Q ‘всегда будет полностью противоположным состоянием выхода Q на триггере JK (недопустимые состояния с этим типом триггера), переход от высокого к низкому на выходе Q будет сопровождаться переходом от низкого к высокому на выходе Q ‘.
Другими словами, каждый раз, когда выход Q триггера переходит с 1 на 0, выход Q ‘того же триггера будет переходить с 0 на 1, обеспечивая положительный тактовый импульс, который нам нужно будет переключить. триггер, срабатывающий по положительному фронту в нужный момент:
Альтернативный четырехбитный счетчик «вверх»
Одним из способов расширения возможностей любой из этих двух схем счетчика является рассмотрение выходов Q ’как еще одного набора из четырех двоичных разрядов.
Если мы рассмотрим диаграмму импульсов для такой схемы, мы увидим, что выходы Q ’генерируют последовательность счета вниз на , в то время как выходы Q генерируют последовательность счета на :
Одновременный счетчик «вверх» и «вниз»
К сожалению, все схемы счетчиков, показанные до сих пор, имеют общую проблему: эффект пульсации .
Этот эффект наблюдается в некоторых типах схем двоичного сумматора и преобразования данных и связан с накоплением задержек распространения между каскадными вентилями.
Когда выход Q триггера переходит с 1 в 0, он дает команду на переключение следующему триггеру.
Если следующим переключателем триггера является переход от 1 к 0, он также подает команду на переключение следующего триггера и так далее.
Однако, поскольку всегда существует небольшая задержка распространения между командой переключения (тактовый импульс) и фактической реакцией переключения (выходы Q и Q ‘меняют состояния), любые последующие переключаемые триггеры будут переключаться некоторое время. после переключился первый триггер.
Таким образом, когда несколько битов переключаются в последовательности двоичного счета, они не все переключаются в одно и то же время:
Недостаток схемы асинхронного счетчика: задержка распространения
Как вы можете видеть, чем больше битов переключается с данным тактовым импульсом, тем серьезнее суммарное время задержки от LSB к MSB.
Когда тактовый импульс возникает в такой точке перехода (скажем, при переходе от 0111 к 1000), выходные биты будут последовательно «колебаться» от LSB к MSB, поскольку каждый последующий бит переключается и дает команду на переключение следующего бита как ну, с небольшой задержкой распространения между каждым переключением битов.
Если мы внимательно посмотрим на этот эффект во время перехода от 0111 к 1000, мы увидим, что будет ложных выходных отсчетов, сгенерированных за короткий период времени, когда имеет место эффект «пульсации»:
Вместо простого перехода от выхода «0111» к выходу «1000», схема счетчика будет очень быстро колебаться от 0111 до 0110, от 0100 до 0000 до 1000 или от 7 до 6 до 4 до 0 , а затем на 8.Такое поведение дает схеме счетчика имя счетчик пульсаций или асинхронный счетчик .
Цепь счетчика стробоскопических сигналов
Во многих приложениях этот эффект допустим, поскольку пульсация происходит очень и очень быстро (ширина задержек здесь преувеличена, чтобы помочь понять эффекты).
Если бы все, что мы хотели сделать, это подключить набор светодиодов (LED) к выходам счетчика, например, эта краткая пульсация не имела бы никакого значения.
Однако, если бы мы захотели использовать этот счетчик для управления входами «выбора» мультиплексора, индексирования указателя памяти в схеме микропроцессора (компьютера) или выполнения какой-либо другой задачи, где ложные выходы могут вызвать ложные ошибки, это не было бы приемлемо.
Существует способ использовать этот тип схемы счетчика в приложениях, чувствительных к ложным, генерируемым пульсациями выходным сигналам, и он включает принцип, известный как стробирование .
Большинство схем декодеров и мультиплексоров оснащены по крайней мере одним входом, который называется «разрешить».”
Выходы такой схемы будут активны только тогда, когда активен вход разрешения.
Мы можем использовать этот разрешающий вход для строба цепи, принимающей выход счетчика пульсаций, чтобы он был отключен (и, следовательно, не реагировал на выход счетчика) в течение короткого периода времени, в течение которого выходы счетчика могли бы пульсировать, и разрешены. только по прошествии достаточного времени с момента последнего тактового импульса, когда все колебания прекратятся.
В большинстве случаев стробирующий сигнал может быть тем же синхроимпульсом, который управляет схемой счетчика:
При активном низком входном разрешении приемная схема будет реагировать на двоичный счет четырехразрядной счетной схемы только тогда, когда тактовый сигнал «низкий».”
Как только тактовый импульс становится «высоким», приемная схема перестает реагировать на выходной сигнал счетной схемы.
Поскольку схема счетчика запускается по положительному фронту (как определено входом первого триггера ), все действия счета происходят при переходе синхросигнала с низкого на высокий, что означает, что приемная схема будет становятся заблокированными непосредственно перед тем, как произойдет какое-либо переключение на четырех выходных битах схемы счетчика.
Приемная цепь не станет доступной до тех пор, пока тактовый сигнал не вернется в низкое состояние, которое должно длиться достаточно долго. после , вся пульсация перестала быть «безопасной», чтобы новый счетчик мог повлиять на приемную схему.
Ключевым параметром здесь является «высокое» время тактового сигнала: оно должно быть не меньше максимального ожидаемого периода пульсации схемы счетчика.
В противном случае тактовый сигнал преждевременно включит приемную цепь, в то время как некоторая пульсация все еще имеет место.
Недостаток схемы асинхронного счетчика: ограниченная скорость
Еще одним недостатком схемы асинхронного счетчика пульсаций является ограниченная скорость.
В то время как все схемы затвора ограничены с точки зрения максимальной частоты сигнала, конструкция схем асинхронного счетчика усугубляет эту проблему, делая задержки распространения аддитивными.
Таким образом, даже если в приемной схеме используется стробирование, схема асинхронного счетчика не может синхронизироваться на любой частоте выше, чем та, которая позволяет максимально возможной накопленной задержке распространения истекать задолго до следующего импульса.
Решением этой проблемы является схема счетчика, полностью исключающая пульсации.
Такая схема счетчика избавит от необходимости разрабатывать функцию «стробирования» в любых цифровых схемах, использующих выход счетчика в качестве входа, а также будет иметь гораздо большую рабочую скорость, чем его асинхронный эквивалент.
Эта конструкция схемы счетчика является предметом следующего раздела.
ОБЗОР:
- Счетчик «вверх» может быть получен путем подключения тактовых входов JK-триггеров, запускаемых по положительному фронту, к выходам Q ’предыдущих триггеров. Другой способ — использовать триггеры, запускаемые по отрицательному фронту, соединив тактовые входы с выходами Q предыдущих триггеров. В любом случае входы J и K всех триггеров подключены к V cc или V dd , чтобы всегда быть «высоким».” Цепи счетчика
- , состоящие из каскадных триггеров JK, где каждый тактовый вход получает свои импульсы с выхода предыдущего триггера, неизменно демонстрируют эффект пульсации , когда между некоторыми шагами счетной последовательности генерируются счетчики ложных выходов. Эти типы счетных схем называются асинхронными счетчиками или счетчиками пульсаций .
- Стробирование — это метод, применяемый к схемам, принимающим выходной сигнал асинхронного (пульсирующего) счетчика, так что ложные отсчеты, генерируемые во время пульсации, не будут иметь вредного воздействия.По сути, вход enable такой схемы подключен к тактовому импульсу счетчика таким образом, что он активируется только тогда, когда выходы счетчика не изменяются, и будет отключен в те периоды изменения выходов счетчика, где возникает пульсация.
СВЯЗАННЫЕ РАБОЧИЕ ЛИСТЫ:
Различия между синхронным и асинхронным счетчиком
Счетчики бывают двух типов в зависимости от применяемого тактового импульса. Эти счетчики: асинхронный счетчик и синхронный счетчик.
В Асинхронный счетчик также известен как счетчик пульсаций, разные триггеры запускаются с разными часами, а не одновременно. В то время как в Synchronous Counter , все триггеры запускаются с одинаковыми часами одновременно, и синхронный счетчик работает быстрее, чем асинхронный счетчик.
Давайте посмотрим на разницу между этими двумя счетчиками:
S.NO | Синхронный счетчик | Асинхронный счетчик |
---|---|---|
1. | В синхронном счетчике все триггеры запускаются одними и теми же часами одновременно. | В асинхронном счетчике разные триггеры запускаются разными часами, а не одновременно. |
2. | Синхронный счетчик работает быстрее, чем асинхронный счетчик. | Асинхронный счетчик работает медленнее, чем синхронный счетчик. |
3. | Синхронный счетчик не выдает ошибок декодирования. | Асинхронный счетчик выдает ошибку декодирования. |
4. | Синхронный счетчик также называется параллельным счетчиком. | Асинхронный счетчик также называется последовательным счетчиком. |
5. | Синхронный счетчик проектирование, а также реализация сложны из-за увеличения количества состояний. | Асинхронный счетчик спроектировать и реализовать очень просто. |
6. | Синхронный счетчик будет работать в любой желаемой последовательности счета. | Асинхронный счетчик будет работать только в фиксированной последовательности счета (ВВЕРХ / ВНИЗ). |
7. | Примеры синхронного счетчика: кольцевой счетчик, счетчик Джонсона. | Примеры асинхронного счетчика: счетчик пульсаций ВВЕРХ, счетчик пульсаций ВНИЗ. |
8. | В синхронном счетчике задержка распространения меньше. | В асинхронном счетчике большая задержка распространения. |
Вниманию читателя! Не прекращайте учиться сейчас.Практикуйте экзамен GATE задолго до самого экзамена с помощью предметных и общих викторин, доступных в курсе GATE Test Series Course .
Изучите все концепции GATE CS с бесплатными живыми классами на нашем канале YouTube.
Что такое асинхронный счетчик? Определение, схема, работа и применение асинхронного счетчика
Определение : Асинхронные счетчики — это те счетчики, которые не работают с одновременной синхронизацией . В асинхронном счетчике только первый триггер внешне синхронизируется с использованием тактового импульса, в то время как тактовый вход для последующих триггеров будет выходом из предыдущего триггера.
Это означает, что только один тактовый импульс не управляет всеми триггерами в устройстве счетчика.
Асинхронные счетчики также известны как счетчики пульсаций и образуются последовательной комбинацией триггеров, запускаемых задним фронтом. Это называется так, потому что данные колеблются между выходом одного триггера и входом следующего.
Прежде чем узнать об асинхронном счетчике, нужно знать, что такое счетчики? Итак, давайте сначала разберемся с основной идеей счетчиков.
Что такое счетчики?
Счетчики — одна из самых полезных частей цифровой системы. Счетчик представляет собой последовательную схему , которая позволяет подсчитывать количество тактовых импульсов, подаваемых на его вход.
Выходной сигнал счетчика показывает определенную последовательность состояний. Это происходит потому, что в применяемом тактовом входе интервалы импульсов известны и фиксированы. Таким образом можно использовать для определения времени и, следовательно, частоты возникновения.
Расположение группы триггеров определенным образом формирует двоичный счетчик.Поданные тактовые импульсы подсчитываются счетчиком.
Мы знаем, что триггер имеет два возможных состояния, поэтому для n триггеров будет 2 n количество состояний и разрешает отсчет от 0 до 2 n — 1 .
Счетчикибывают двух типов — асинхронные и синхронные счетчики .
В этом разделе мы обсудим асинхронные счетчики.
Схема и работа асинхронного счетчика
На приведенном ниже рисунке показана принципиальная схема 3-битного асинхронного счетчика:
Здесь, как мы ясно видим, 3 триггера с отрицательным фронтом последовательно подключаются, причем выход одного триггера предоставляется в качестве входа для следующего.Входной тактовый импульс прикладывается к наименее значимому или первому наиболее значимому триггеру в устройстве.
Кроме того, на входных клеммах J и K триггеров подается высокий логический сигнал, т.е. 1. Следовательно, переключение будет происходить при отрицательном переходе применяемого тактового входа.
Давайте теперь посмотрим на временную диаграмму 3-битного асинхронного счетчика:
Первоначально, когда тактовый вход применяется к триггеру LSB , то есть A, тогда выход Q A изменится с 0 на 1 на заднем фронте тактового импульса.Как мы видим, при первом отсчете тактового импульса на заднем фронте Q A переключается с 0 на 1.
Далее Q сохраняет свое состояние 1 и переключается с 1 на 0 только при получении другого спада входного сигнала синхронизации. И снова Q A переключается с 0 на 1 на следующем заднем фронте входного тактового импульса.
Как мы уже обсуждали, только первый триггер запускается внешним синхросигналом. Итак, теперь выход триггера A будет действовать как вход синхронизации для триггера B, и внешний тактовый сигнал не будет влиять на Q B .
Следовательно, дальнейшее переключение Q B будет зависеть от спада сигнала Q A .
Итак, как мы ясно видим на временной диаграмме, Q B подвергается переключению только на заднем фронте сигнала Q A . И входной сигнал часов не влияет на выход триггера B.
Кроме того, для триггера C вход часов теперь будет выходом триггера B, то есть Q B . Таким образом, выход Q C будет соответствовать переходу Q B .
Как видно на диаграмме, Q C в первый раз переключается с 0 на 1 только на первом заднем фронте сигнала Q B . И поддерживает состояние до тех пор, пока не достигнет следующего спада Q B .
Таким образом, мы можем сказать, что мы не обеспечиваем одновременно входной сигнал синхронизации для всех триггеров в асинхронных счетчиках.
Теперь возникает вопрос по этому , как счетчик считает количество состояний?
В основном, количество состояний зависит от количества триггеров, используемых в схеме.
Счетчик с тремя триггерами может подсчитывать состояния до 2 3 — 1 , т.е. 8-1 = 7 . Давайте поймем это с помощью приведенной ниже таблицы истинности:
Как мы видим, изначально выходы всех трех триггеров равны 0. Но по мере продвижения мы видим, что на первом заднем фронте тактового сигнала Q A равно 1, а Q B и Q C равны 0, таким образом обеспечивая десятичный эквивалент 0.И снова для второго спада тактового сигнала Q B равно 1, тогда как Q A и Q C равны 0, что дает десятичный счет 1.
Точно так же для спадающего фронта 3 rd Q A и Q B равны 1, а Q C все еще равно 0. В случае спада 4 th только Q C равняется 1. в то время как Q A и Q B равны 0 и так далее.
Таким образом, мы можем составить таблицу истинности, наблюдая за временной диаграммой счетчиков.В таблице истинности указано количество примененных входных тактовых импульсов.
Таким образом, мы можем сказать, что асинхронный счетчик подсчитывает двоичное значение в соответствии с тактовым входом, применяемым в наименьшем сигнальном битовом триггере устройства.
3-битный счетчик также известен как счетчик по модулю 8 из-за наличия 8 состояний.
Применение асинхронного счетчика
Они используются в приложениях, где требуется низкое энергопотребление. А также используются в схемах делителя частоты, кольцевых счетчиках и счетчиках Джонсона.
Цифровой асинхронный счетчик (счетчик пульсаций)
Цифровой асинхронный счетчик (счетчик пульсаций) Что такое счетчик?Цифровой двоичный счетчик — это устройство, используемое для счета двоичных чисел . В цифровых счетчиках в основном используются триггеры и некоторые комбинационные схемы для специальных функций.
Что такое асинхронный счетчик или счетчик пульсаций?Счетчик, в котором внешняя синхронизация подается только на первый триггер, а последующие триггеры синхронизируются выходом предыдущего триггера, называется асинхронным счетчиком или счетчиком пульсаций.Название счетчика пульсаций связано с тем, что тактовый сигнал колеблется от первой ступени триггеров до последней ступени.
Типы асинхронных счетчиковЕсть два типа счетчиков.
Синхронные счетчики и асинхронные счетчики. Асинхронный счетчик имеет много типов. Некоторые из них приведены ниже.
- счетчик вверх
- счетчик вниз
- счетчик пульсации вверх / вниз
- счетчик пульсации BCD
счетчик пульсации вверх начинает отсчет от 0 и считает до своего максимального диапазона.Его диапазон зависит от количества используемых триггеров.
Повышающий счетчик пульсаций может быть выполнен с использованием T-триггера и D-триггера. Конструкция счетчиков с использованием триггеров отличается друг от друга в зависимости от типа используемого триггера.
Рассмотрим 3-битный счетчик с Q 0 , Q 1 , Q 2 в качестве выхода триггеров FF 0 , FF 1 , FF 2 соответственно. Таблица состояний для 3-битного счетчика приведена ниже:
Проектирование с использованием T-триггераT-триггер переключает свое состояние, когда его вход T = 1.В счетчике пульсаций, использующем T-триггер, вход для всех каскадов (триггер) равен T = 1. Единственное, что не характерно для этих каскадов, — это тактовый сигнал. Это означает, что триггер будет переключаться только тогда, когда тактовый импульс попадает на триггер. Таким образом, тактовый сигнал последующих T-триггеров должен управляться таким образом, чтобы триггеры переключались, когда они должны это делать.
Предположим, что в проекте используется T-триггер с положительным фронтом. Согласно таблице состояний повышающего счетчика,
Q 0 постоянно переключается, поэтому внешние часы будут подаваться на триггер FF 0 .Он переключит Q 0 при положительном фронте тактового сигнала.
Q 1 переключается, когда Q 0 идет от 1 до 0. Это означает, что отрицательный фронт Q 0 переключает Q 1 . Таким образом, мы можем использовать Q 0 в качестве тактового входа для FF 1 . Мы используем триггеры с положительным фронтом, поэтому мы будем использовать дополненный Q 0 в качестве тактового входа для FF 1 .
Q 2 переключается, когда Q 1 переходит от 1 к 0 (отрицательный фронт).Его также можно использовать в качестве тактового сигнала для FF 2 . Поскольку мы используем триггеры, чувствительные к положительному фронту, нам нужен дополненный Q 1 в качестве тактового входа для FF 2
Схема пульсации Up- счетчик с использованием T-триггера показан на рисунке ниже.
Проектирование с использованием D-триггераДанные или D-триггер выгружают вход D в качестве своего выходного состояния Q по фронту тактового сигнала. то есть Q = D. D-триггер также может использоваться для реализации счетчика Ripple Up-counter.
D-flop flop может быть настроен на переключение своего состояния по фронту тактового сигнала, если его дополненный выход является обратной связью с его входом. В такой настройке D-триггер может действовать как T-триггер с входом T = 1.
Поскольку D-триггер может действовать как T-триггер, мы можем использовать ту же конструкцию Счетчик T-flip flop up путем замены T-flip flop на D-flip flop. К входу каждого отдельного D-триггера будет подключен его дополненный выход D = Q̅. Каждый раз, когда край часов достигает значения, триггер будет переключать свое состояние.
Схема переключения такая же, как и в повышающем счетчике Т-триггера. Таким образом, вход синхросигнала должен быть спроектирован так же, как и в повышающем счетчике T-триггера.
Схема повышающего счетчика пульсаций с использованием D-триггера приведена на рисунке ниже:
Обратный счетчикЭтот счетчик ведет обратный отсчет от максимально возможного количества до 0 и затем сбрасывает их с самого высокого отсчета. .
Предположим, что 3-битный обратный счетчик с Q 0 Q 1 Q 2 в качестве выходов триггеров FF 0 FF 1 FF 2 соответственно.Таблица состояний обратного счетчика приведена ниже:
Конструкция с использованием T-триггераКонструкция обратного счетчика аналогична конструкции повышающего счетчика. Единственное отличие — это переключение триггера. Каждый триггер переключается, когда выходной сигнал предыдущего триггера изменяется от 0 до 1. Это противоположно счетчику.
В повышающем счетчике мы использовали триггеры, чувствительные к положительному фронту, и использовали Q̅ предыдущего триггера в качестве тактового сигнала для этих триггеров. В случае с обратным счетчиком мы будем использовать Q в качестве тактового сигнала.
Схема понижающего счетчика с использованием T-триггера приведена ниже.
Конструкция с использованием D-триггераКонструкция обратного счетчика с использованием D-триггера такая же, как и обратный счетчик T-триггера. Тактовый сигнал, который подается на следующие триггеры в повышающем счетчике D-триггера, будет изменен, как это сделано в обратном счетчике T-триггера.
Выход каждого триггера будет использоваться как входной сигнал синхронизации для последующих D-триггеров. Это позволит счетчику вести обратный отсчет.
Схематическое изображение обратного счетчика пульсаций с использованием D-триггера приведено ниже:
Счетчик повышения / понижения пульсацийЭтот счетчик может выполнять как восходящий, так и обратный счет в зависимости от переключателя выбора режима. Выбор режима — это переключатель, который выбирает между обратным и обратным счетом. Когда M = 1, счетчик будет вести обратный отсчет, а когда M = 0, счетчик будет вести обратный отсчет.
Разница между обратным и обратным счетчиками заключается в тактовом сигнале.Поэтому мы будем использовать 2_1 Mux, чтобы выбрать 2 тактовых сигнала.
Схема счетчика пульсации вверх / вниз приведена ниже:
Счетчик пульсации BCDСчетчик BCD (двоично-десятичный) — это счетчик разряда, который имеет Mod = 10. Mod означает количество состояний, которые имеет счетчик. . Счетчик BCD считает десятичные числа от 0 до 9 и сбрасывается обратно на значение по умолчанию 0. С каждым тактовым импульсом счетчик считает десятичное число.
Счетчик Ripple BCD аналогичен счетчику Ripple Up-counter, с той лишь разницей, что когда счетчик BCD достигает счетчика 10, он сбрасывает свои триггеры.
Рассмотрим Q 0 , Q 1 , Q 2 , Q 3 как 4 бита счетчика, чем будет таблица состояний для счетчика Ripple BCD.
В соответствии с таблицей состояний это простой счетчик вверх, за исключением состояния 10 в качестве условия состояния сброса.
Когда счет достигает состояния 10, счетчик должен автоматически сбрасывать свои триггеры. Для этого нам понадобится комбинационная схема. Шлепанцы обычно имеют клир active-low. Чтобы очистить все триггеры, комбинационная схема должна выдать логический «0», когда счетчик достигнет состояния 1010.Логический элемент И-НЕ также выдает логический «0», когда все его входы истинны.
Таким образом, мы будем использовать логический элемент NAND, чтобы очистить триггер, когда он достигнет счетчика 10.
Clear = (Q 3 AND Q 1 )
Счетчик Ripple BCD может быть выполнен с помощью T-триггеров. или D-шлепанцы.
Проектирование с использованием T-триггераМы будем использовать условие сброса для T-триггера с повышающим счетчиком, чтобы сделать его двоично-десятичным счетчиком. Его схема показана на рисунке, приведенном ниже:
Конструкция с использованием D-триггераМы можем изменить счетчик вверх D-триггера на счетчик пульсации BCD.По сути, это один и тот же счетчик вверх, но счетчик BCD имеет ограничение в 10 отсчетов. Поэтому, когда счетчик вверх достигает счетчика 10, он должен сбрасываться в состояние по умолчанию, что делает его счетчиком пульсации BCD.
Схема счетчика Ripple BCD с использованием D-триггера приведена ниже:
Преимущества
- Он может быть легко сконструирован с помощью D-триггера -резкий поворот.
- Может использоваться в низкоскоростных цепях.
- Используется как счетчики деления на n.
- Они также используются как усеченные счетчики. (для создания любых счетчиков номеров модов, например, Mod 4, Mod 3).
Недостатки
- Для повторной синхронизации требуется дополнительный триггер.
- Дополнительная логика обратной связи необходима для подсчета последовательности усеченных счетчиков (имейте в виду, что mod не равно 2 n ).
- Задержка распространения асинхронных счетчиков очень велика при подсчете большого количества битов.
- Из-за задержки распространения могут возникать ошибки счета для высоких тактовых частот.
- Они медленнее синхронных счетчиков.
- Они используются в качестве делителей частоты при делении счетчиков на «N».
- Они используются в приложениях с низким уровнем шума и малым энергопотреблением.
- Они используются при проектировании асинхронного счетчика декад.
- Он также используется в кольцевом счетчике и счетчике Джонсона.
- Асинхронные счетчики используются в счетчиках пульсаций Mod N. т.е. Mod 3, Mod 4, Mod 8, Mod 14, Mod 10 и т. д.
Вы также можете прочитать:
Показывает, как ограничить асинхронный счетчик. #sta #doc · GitHub
Это произведение находится под международной лицензией Creative Commons Attribution 4.0.
ресурсов
[1] Почему я получаю сообщения UITE-461 и нулевую задержку источника?, Solvent article No. 020373, последнее изменение 13.12.2016, https: // solvnet.п.
При использовании в качестве счетчиков они действительно обладают некоторыми привлекательными свойствами. Сначала диктуется только их максимальная частота. на флопе первого этапа и не зависит от длины счетчика. С точки зрения энергопотребления, счетчик имеет динамическое потребление, ограниченное вдвое больше одного флопа.
Обратной стороной является то, что задержка распространения асинхронной структуры обычно неизвестна и может нарушают синхронное время, если не проверено должным образом со стороны STA. К сожалению, это не так просто, как это может показаться.
Архитектурный выбор
То, как асинхронные счетчики используются в проекте, подразумевает, как нам нужно обращаться с этими счетчиками. во время STA:
- Предотвратить распространение асинхронных сигналов в синхронный домен, когда счетчик работает
- например использовать комбинированное стробирование на границе тактовой области и, следовательно, может упростить проверки STA
- STA необходимо проверить синхронизацию на LSB (т. Е. На самом быстром переключающемся флопе) и может вообще игнорировать синхронизацию на других флопах
- Нет предотвращения асинхронных сигналов, поступающих в синхронный домен.
- существует риск нарушения сроков и, следовательно, требуется тщательный анализ STA
Без ограничений
Этот подход должен использоваться только при наличии механизма предотвращения выходов асинхронного счетчика. вход в синхронный домен.Время флопа первого этапа проверяется по умолчанию (по мере поступления по синхронным доменным часам).
pt_shell> report_clocks
***************************************
Отчет: часы
Дизайн: async_cnt
Версия: O-2018.06-SP4
Дата: 15 июн, суббота, 14:13:05 2019
***************************************
Атрибуты:
p - Распространенные часы
G - генерируемые часы
I - неактивные часы
Период тактового сигнала Атрибуты сигналов Источники Конфигурация напряжения
-------------------------------------------------- ---------------------------------
CLK 50.000 {0 25} п {clk}
50 000 VCLK {0 25} {}
# Проверить тайминг на флопе 1-й стадии
pt_shell> report_timing -path_type full_clock_expanded -delay_type max-from CLK -to async_cnt_reg_0
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-sort_by слабина
Дизайн: async_cnt
Версия: O-2018.06-SP4
Дата: 15 июня, 15:03, сб, 2019
***************************************
Предупреждение: есть 3 недопустимые конечные точки для ограниченных путей.(UITE-416)
Начальная точка: async_cnt_reg_0
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Конечная точка: async_cnt_reg_0
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы CLK (передний фронт) 0.000 0,000
задержка источника тактовых импульсов 0,000 0,000
clk (дюймы) 0,000 0,000 r
async_cnt_reg_0 / CK (dffprx05_d) 0,000 0,000 р
async_cnt_reg_0 / QN (dffprx05_d) <- 0,718 0,718 f
async_cnt_reg_0 / D (dffprx05_d) 0,000 0,718 ф
время поступления данных 0,718
часы CLK (передний край) 50.000 50 000
задержка источника тактовых импульсов 0,000 50,000
clk (дюймы) 0,000 50,000 r
async_cnt_reg_0 / CK (dffprx05_d) 0,000 50,000 р
часы переконвергенции пессимизм 0,000 50,000
время установки библиотеки -0,259 49,741
данные требуется время 49,741
-------------------------------------------------- ----------------------------
данные требуется время 49.741
время поступления данных -0,718
-------------------------------------------------- ----------------------------
слабина (НЕТ) 49,023
Распространение синхронных часов останавливается на флопах первого каскада, и, следовательно, флопы других каскадов остаются. непринужденный. Мы можем оставить все как есть, поскольку мы предполагаем, что потенциальные нарушения сроков смягчены. архитектурно.
# Проверить, что флоп 2-й стадии действительно неограничен
pt_shell> report_timing -path_type full_clock_expanded -delay_type max-from CLK -to async_cnt_reg_1
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн 14:16:24 2019
***************************************
Предупреждение: есть 3 недопустимые конечные точки для ограниченных путей. (UITE-416)
Предупреждение: есть 2 недопустимые конечные точки для неограниченных путей. (UITE-416)
Начальная точка: async_cnt_reg_0
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Конечная точка: async_cnt_reg_1 / CKN
(внутренний штифт)
Группа путей: (нет)
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0.900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы CLK (задержка источника) 0,000 0,000
clk (дюймы) 0,000 0,000 r
async_cnt_reg_0 / CK (dffprx05_d) 0,000 0,000 р
async_cnt_reg_0 / Q (dffprx05_d) 0,539 0,539 f
async_cnt_reg_1 / CKN (dffnrx1_d) 0.000 0,539 f
время поступления данных 0,539
-------------------------------------------------- ----------------------------
(Путь неограничен)
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_1 -to CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн 14:16:49 2019
***************************************
Предупреждение: есть 4 недопустимые начальные точки. (UITE-416)
Начальная точка: async_cnt_reg_1
(триггер, срабатывающий по заднему фронту)
Конечная точка: capture_reg_reg_1
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Группа путей: (нет)
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
async_cnt_reg_1 / CKN (dffnrx1_d) 0.000 0,000 ф
async_cnt_reg_1 / Q (dffnrx1_d) <- 0,762 0,762 f
g1829__7114 / Q (ao222x05_d) 0,937 1,698 f
capture_reg_reg_1 / D (dffprqx05_d) 0,000 1,698 f
время поступления данных 1.698
-------------------------------------------------- ----------------------------
(Путь неограничен)
Реалистичные временные ограничения
Без архитектурных мер по снижению рисков необходимо провести тщательный анализ STA.Основная идея для определения распространенных часов по всем ступеням асинхронного счетчика. Мы собираемся показать прямой подход может бросить вызов ограничениям инструмента STA. Следующий раздел покажет трюк, чтобы обойти это.
Асинхронный счетчик - это, по сути, делитель часов, поэтому мы распространяем часы через каждые ступень счетчика как через разделитель на два.
pt_shell> create_generated_clock [get_pins -of async_cnt_reg_0 -filter direction = ~ out] \
-Добавить \
-divide_by 2 \
-master_clock CLK \
-source [get_pins -of async_cnt_reg_0 -filter is_clock_pin == true] \
-name async_cnt_ck_0; \
set_propagated_clock async_cnt_ck_0
pt_shell> для {set i 1} {$ i <23} {incr i} {\
create_generated_clock [get_pins -of async_cnt_reg _ $ {i} -filter lib_pin_name == Q] \
-Добавить \
-divide_by 2 \
-master_clock async_cnt_ck_ [выражение $ i - 1] \
-source [get_pins -of async_cnt_reg _ $ {i} -filter is_clock_pin == true] \
-preinvert \
-name async_cnt_ck _ $ {i}; \
set_propagated_clock async_cnt_ck _ $ {i}; \
}
pt_shell> update_timing -full
Вот как будет выглядеть определение часов:
pt_shell> report_clocks
***************************************
Отчет: часы
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн 14:34:35 2019
***************************************
Атрибуты:
p - Распространенные часы
G - генерируемые часы
I - неактивные часы
Период тактового сигнала Атрибуты сигналов Источники Конфигурация напряжения
-------------------------------------------------- -----------------------------------
50 000 CLK {0 25} p {clk}
50 000 VCLK {0 25} {}
async_cnt_ck_0 100,000 {0 50} p, G {async_cnt_reg_0 / Q async_cnt_reg_0 / QN}
async_cnt_ck_1 200.000 {50 150} п, G {async_cnt_reg_1 / Q}
async_cnt_ck_2 400,000 {150 350} p, G {async_cnt_reg_2 / Q}
...
async_cnt_ck_10 102400,000
{51150 102350} p, G {async_cnt_reg_10 / Q}
...
async_cnt_ck_22
419430400.000
{2.09715e + 08 4.1943e + 08}
p, G {async_cnt_reg_22 / Q}
Сгенерированный мастер Сгенерированный мастер-сигнал
Источник тактовой частоты Модификация тактовой частоты источника
-------------------------------------------------- -------------------------------------------------- -------------
async_cnt_ck_0 async_cnt_reg_0 / CK async_cnt_reg_0 / Q async_cnt_reg_0 / QN CLK div (2)
async_cnt_ck_1 async_cnt_reg_1 / CKN async_cnt_reg_1 / Q async_cnt_ck_0 div (2)
async_cnt_ck_2 async_cnt_reg_2 / CKN async_cnt_reg_2 / Q async_cnt_ck_1 div (2)
...
async_cnt_ck_10 async_cnt_reg_10 / CKN async_cnt_reg_10 / Q async_cnt_ck_9 div (2)
...
async_cnt_ck_22 async_cnt_reg_22 / CKN async_cnt_reg_22 / Q async_cnt_ck_21 div (2)
Для проверки инструмент правильно учитывает временную задержку на всех этапах дайвера, проверьте некоторые из более поздних этапов. Естественное ожидание состоит в том, что чем позже этап, тем меньше провис:
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_10 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн, суббота, 14:47:09 2019
***************************************
Предупреждение: есть 3 недопустимые начальные точки. (UITE-416)
Начальная точка: async_cnt_reg_10 / Q
(источник часов 'async_cnt_ck_10')
Конечная точка: capture_reg_reg_10
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_10 (край падения) 102350.000 102350.000
часы CLK (задержка источника) 0,000 102350,000
clk (дюймы) 0,000 102350,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0.539 102350.539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0.762 102351.300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 102352.055 f
...
async_cnt_reg_9 / Q (dffnrx1_d) (источник gclock) 0.755 102357.341 f
async_cnt_reg_10 / Q (dffnrx1_d) (источник gclock) 0.755 102358.096 е
async_cnt_reg_10 / Q (dffnrx1_d) 0,000 102358.096 f
g1840__1309 / Q (ao222x05_d) 0,936 102359,033 f
capture_reg_reg_10 / D (dffprqx05_d) 0,000 102359.033 f
время поступления данных 102359.031
часы CLK (нарастание) 102400,000 102400,000
задержка источника тактовой частоты 0,000 102400,000
clk (дюйм) 0.000 102400.000 руб.
capture_reg_reg_10 / CK (dffprqx05_d) 0,000 102400,000 р
часы переконвергенции пессимизм 0,000 102400,000
время установки библиотеки -0,291 102399,709
данные необходимые время 102399.711
-------------------------------------------------- ----------------------------
данные необходимые время 102399.711
время поступления данных -102359.031
-------------------------------------------------- ----------------------------
слабина (НЕТ) 40,677
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_11 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: O-2018.06-SP4
Дата: 15 июн 14:48:49 2019
***************************************
Предупреждение: есть 3 недопустимые начальные точки.(UITE-416)
Начальная точка: async_cnt_reg_11 / Q
(источник часов 'async_cnt_ck_11')
Конечная точка: capture_reg_reg_11
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_11 (край падения) 204750.000 204750.000
часы CLK (задержка источника) 0,000 204750,000
clk (дюймы) 0,000 204750,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0.539 204750.539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0.762 204751.300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 204752.055 f
...
async_cnt_reg_10 / Q (dffnrx1_d) (источник gclock) 0.755 204758.096 f
async_cnt_reg_11 / Q (dffnrx1_d) (источник gclock) 0.755 204758,851 ж
async_cnt_reg_11 / Q (dffnrx1_d) 0,000 204758.851 f
g1818__4547 / Q (ao222x05_d) 0,936 204759,788 f
capture_reg_reg_11 / D (dffprqx05_d) 0,000 204759.788 f
время поступления данных 204759,781
часы CLK (передний край) 204800.000 204800.000
задержка источника тактовой частоты 0,000 204800,000
clk (дюйм) 0.000 204800.000 руб.
capture_reg_reg_11 / CK (dffprqx05_d) 0,000 204800,000 р
часы переконвергенции пессимизм 0,000 204800,000
время установки библиотеки -0,291 204799,709
данные требуется время 204799,703
-------------------------------------------------- ----------------------------
данные требуется время 204799,703
время поступления данных -204759.N раз
период базовых часов. Для больших разделителей он, вероятно, достигнет максимума
окно, которое инструмент STA будет рассматривать для расширения базового периода.
pt_shell> update_timing -full
...
Предупреждение: для вычисления общего базового периода для нескольких часов.
PrimeTime ограничивает расширение формы волны самого маленького
период должен быть не более 1000 раз, а форма волны
расширение наибольшего периода не более чем в 101 раз.
Поскольку наибольший период слишком велик по сравнению с наименьшим периодом,
невозможно установить общий базовый период, удовлетворяющий этим ограничениям, и
PrimeTime выбрал самый большой период в качестве общего базового периода.
но до сих пор не расширил самый малый период сверх своего предела.В определенных ситуациях это может привести к тому, что эти часы
быть непринужденным. (PTE-052)
...
Другими словами, при N> 9 мы достигли бы предела инструмента и можем начать
получение неверных отчетов:
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_15 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн 14:51:18 2019
***************************************
Предупреждение: есть 3 недопустимые начальные точки. (UITE-416)
Начальная точка: async_cnt_reg_15 / Q
(источник часов 'async_cnt_ck_15')
Конечная точка: capture_reg_reg_15
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_15 (край падения) 3276750.000
3276750,000
часы CLK (задержка источника) 0,000 3276750,000
clk (дюймы) 0,000 3276750,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0.539 3276750.539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0.762 3276751.300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 3276752.055 f
async_cnt_reg_3 / Q (dffnrx1_d) (источник gclock) 0.755 3276752,810 ж
...
async_cnt_reg_15 / Q (dffnrx1_d) (источник gclock) 0.755 3276761.872 f
async_cnt_reg_15 / Q (dffnrx1_d) 0,000 3276761.872 f
g1824__3772 / Q (ao222x05_d) 0,936 3276762.808 f
capture_reg_reg_15 / D (dffprqx05_d) 0,000 3276762.808 f
время поступления данных 3276762,750
часы CLK (передний край) 3250050.000
3250050.000
задержка источника тактовой частоты 0,000 3250050,000
clk (дюймы) 0,000 3250050,000 r
capture_reg_reg_15 / CK (dffprqx05_d) 0,000 3250050,000 р
часы переконвергенции пессимизм 0,000 3250050,000
время установки библиотеки -0,291 3250049,709
данные требуется время 3250049.750
-------------------------------------------------- ----------------------------
данные требуется время 3250049.750
время поступления данных -3276762,750
-------------------------------------------------- ----------------------------
провисание (НАРУШЕННОЕ) -26713.100
Виртуальные временные ограничения
Чтобы преодолеть ограничение, связанное с расширением окна проверки времени, нам необходимо
прибегают к подходу «виртуального тайминга». Из принципов STA мы откровенно
не нужно использовать реальную временную форму волны. Все, что имеет значение, - это правильное определение
фронтов тактовых импульсов и учета задержки задержки.
Другими словами, если мы используем multiply_by 1
вместо -divide_by 2
, мы сохраним
максимальный тактовый период ограничен и все же учитывается задержка тактового сигнала.
Обратите внимание, что использование -divide_by 1
не будет работать, что, вероятно, связано с
способ, которым инструмент обрабатывает краевые отношения между часами -источника
и
сгенерированные часы, и мы получим ошибок UITE-461
. Поскольку наша цель -
соблюдайте соотношение один к одному между исходными и генерируемыми часами, это не должно
имеет значение деление или умножение на единицу.
pt_shell> create_generated_clock [get_pins -of async_cnt_reg_0 -filter direction = ~ out] \
-Добавить \
-divide_by 2 \
-master_clock CLK \
-source [get_pins -of async_cnt_reg_0 -filter is_clock_pin == true] \
-name async_cnt_ck_0; \
set_propagated_clock async_cnt_ck_0
pt_shell> для {set i 1} {$ i <23} {incr i} {\
create_generated_clock [get_pins -of async_cnt_reg _ $ {i} -filter lib_pin_name == Q] \
-Добавить \
-multiply_by 1 \
-master_clock async_cnt_ck_ [выражение $ i - 1] \
-source [get_pins -of async_cnt_reg _ $ {i} -filter is_clock_pin == true] \
-preinvert \
-name async_cnt_ck _ $ {i}; \
set_propagated_clock async_cnt_ck _ $ {i}; \
}
pt_shell> update_timing -full
Вот как будут выглядеть определения часов:
pt_shell> report_clocks
***************************************
Отчет: часы
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн 14:59:14 2019
***************************************
Атрибуты:
p - Распространенные часы
G - генерируемые часы
I - неактивные часы
Период тактового сигнала Атрибуты сигналов Источники Конфигурация напряжения
-------------------------------------------------- -----------------------------------
50 000 CLK {0 25} p {clk}
50 000 VCLK {0 25} {}
async_cnt_ck_0 100,000 {0 50} p, G {async_cnt_reg_0 / Q async_cnt_reg_0 / QN}
Кириллович 100.000 {50 100} p, G {async_cnt_reg_1 / Q}
async_cnt_ck_2 100,000 {0 50} p, G {async_cnt_reg_2 / Q}
...
async_cnt_ck_10 100,000 {0 50} p, G {async_cnt_reg_10 / Q}
...
async_cnt_ck_22 100,000 {0 50} p, G {async_cnt_reg_22 / Q}
Сгенерированный мастер Сгенерированный мастер-сигнал
Источник тактовой частоты Модификация тактовой частоты источника
-------------------------------------------------- -----------------------------
async_cnt_ck_0 async_cnt_reg_0 / CK async_cnt_reg_0 / Q async_cnt_reg_0 / QN CLK div (2)
async_cnt_ck_1 async_cnt_reg_1 / CKN async_cnt_reg_1 / Q async_cnt_ck_0 mult (1)
async_cnt_ck_2 async_cnt_reg_2 / CKN async_cnt_reg_2 / Q async_cnt_ck_1 mult (1)
...
async_cnt_ck_10 async_cnt_reg_10 / CKN async_cnt_reg_10 / Q async_cnt_ck_9 mult (1)
...
async_cnt_ck_22 async_cnt_reg_22 / CKN async_cnt_reg_22 / Q async_cnt_ck_21 mult (1)
Мы видим, что слабины выглядят так же, как и в Realistic Timing Constraints:
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_10 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июня, сб, 15:07:42 2019
***************************************
Предупреждение: есть 3 недопустимые начальные точки. (UITE-416)
Начальная точка: async_cnt_reg_10 / Q
(источник часов 'async_cnt_ck_10')
Конечная точка: capture_reg_reg_10
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_10 (край падения) 50.000 50 000
часы CLK (задержка источника) 0,000 50,000
clk (дюймы) 0,000 50,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0,539 50,539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0,762 51,300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 52.055 f
...
async_cnt_reg_9 / Q (dffnrx1_d) (источник gclock) 0.755 57.341 f
async_cnt_reg_10 / Q (dffnrx1_d) (источник gclock) 0.755 58,096 ж
async_cnt_reg_10 / Q (dffnrx1_d) 0,000 58,096 ф
g1840__1309 / Q (ao222x05_d) 0,936 59,033 f
capture_reg_reg_10 / D (dffprqx05_d) 0,000 59,033 ф
время поступления данных 59.033
часы CLK (нарастание) 100.000 100.000
задержка источника тактовых импульсов 0,000 100,000
clk (дюйм) 0.000 100.000 руб.
capture_reg_reg_10 / CK (dffprqx05_d) 0,000 100,000 р
часы переконвергенции пессимизм 0,000 100,000
время установки библиотеки -0,291 99,709
данные требуется время 99,709
-------------------------------------------------- ----------------------------
данные требуется время 99,709
время поступления данных -59.033
-------------------------------------------------- ----------------------------
слабина (НЕТ) 40,677
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_11 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: O-2018.06-SP4
Дата: 15 июня, сб, 15:08:55 2019
***************************************
Предупреждение: есть 3 недопустимые начальные точки.(UITE-416)
Начальная точка: async_cnt_reg_11 / Q
(источник часов 'async_cnt_ck_11')
Конечная точка: capture_reg_reg_11
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_11 (край падения) 0.000 0,000
часы CLK (задержка источника) 0,000 0,000
clk (дюймы) 0,000 0,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0,539 0,539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0,762 1,300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 2.055 f
...
async_cnt_reg_10 / Q (dffnrx1_d) (источник gclock) 0.755 8.096 f
async_cnt_reg_11 / Q (dffnrx1_d) (источник gclock) 0.755 8,851 ж
async_cnt_reg_11 / Q (dffnrx1_d) 0,000 8,851 f
g1818__4547 / Q (ao222x05_d) 0,936 9,788 f
capture_reg_reg_11 / D (dffprqx05_d) 0,000 9,788 ф
время поступления данных 9.788
часы CLK (передний край) 50.000 50.000
задержка источника тактовых импульсов 0,000 50,000
clk (дюйм) 0.000 50.000 руб.
capture_reg_reg_11 / CK (dffprqx05_d) 0,000 50,000 р
часы переконвергенции пессимизм 0,000 50,000
время установки библиотеки -0,291 49,709
данные требуется время 49,709
-------------------------------------------------- ----------------------------
данные требуется время 49,709
время поступления данных -9.788
-------------------------------------------------- ----------------------------
слабина (НЕТ) 39,922
Мы также можем увидеть правильную синхронизацию для всех других каскадов делителя, включая MSB:
pt_shell> report_timing -path_type full_clock_expanded -delay_type max -from async_cnt_reg_23 -to CLK -group CLK
***************************************
Отчет: сроки
-path_type full_clock_expanded
-delay_type max
-max_paths 1
-группа CLK
-sort_by слабина
Дизайн: async_cnt
Версия: О-2018.06-СП4
Дата: 15 июн, сб, 15:10:12 2019
***************************************
Предупреждение: есть 4 недопустимые начальные точки. (UITE-416)
Начальная точка: async_cnt_reg_23
(триггер, срабатывающий по падающему фронту, синхронизируется async_cnt_ck_22)
Конечная точка: capture_reg_reg_23
(триггер, срабатывающий по переднему фронту, синхронизируется CLK)
Последний общий контакт: clk
Группа путей: CLK
Тип пути: макс.
Максимальный коэффициент снижения мощности трактов передачи данных: 1,100
Мин. Коэффициент снижения тактовой частоты: 0,900
Максимальный коэффициент снижения тактовой частоты: 1,100
Point Incr Path
-------------------------------------------------- ----------------------------
часы async_cnt_ck_22 (край падения) 50.000 50 000
часы CLK (задержка источника) 0,000 50,000
clk (дюймы) 0,000 50,000 r
async_cnt_reg_0 / Q (dffprx05_d) (источник gclock) 0,539 50,539 f
async_cnt_reg_1 / Q (dffnrx1_d) (источник gclock) 0,762 51,300 f
async_cnt_reg_2 / Q (dffnrx1_d) (источник gclock) 0.755 52.055 f
...
async_cnt_reg_22 / Q (dffnrx1_d) (источник gclock) 0.755 67.157 f
async_cnt_reg_23 / CKN (dffnrx1_d) 0.000 67,157 ж
async_cnt_reg_23 / QN (dffnrx1_d) <- 1.058 68.215 r
g1856 / Q (invx4_d) 0,766 68,981 f
g1837__8780 / Q (ao222x05_d) 1.203 70.184 f
capture_reg_reg_23 / D (dffprqx05_d) 0,000 70,184 ф
время поступления данных 70.184
часы CLK (нарастание) 100.000 100.000
задержка источника часов 0.000 100 000
clk (дюймы) 0,000 100,000 r
capture_reg_reg_23 / CK (dffprqx05_d) 0,000 100,000 р
часы переконвергенции пессимизм 0,000 100,000
время установки библиотеки -0,293 99,707
данные требуется время 99,707
-------------------------------------------------- ----------------------------
данные требуется время 99.707
время поступления данных -70,184
-------------------------------------------------- ----------------------------
слабина (НЕТ) 29,523
Надежное распределение запутанности через телекоммуникационное волокно с помощью асинхронного встречного лазерного излучения
1. Кимбл, Х. Дж. Квантовый Интернет. Природа 453 , 1023–1030 (2008).
ADS
Google ученый
2. Венер С., Элкусс Д. и Хэнсон Р. Квантовый Интернет: взгляд на дорогу впереди. Наука 362 , eaam9288 (2018).
ADS
MathSciNet
Статья
Google ученый
3. Гисин Н., Риборди Г., Титтель В. и Збинден Х. Квантовая криптография. Ред. Мод. Phys. 74 , 145–195 (2002).
ADS
Статья
Google ученый
4. Ло, Х.-К., Курти, М. и Тамаки, К. Безопасное квантовое распределение ключей. Nat. Фотоника 8 , 595–604 (2014).
ADS
Статья
Google ученый
5. Сангуард Н., Саймон К., де Ридматтен Х. и Гизен Н. Квантовые повторители на основе атомных ансамблей и линейной оптики. Ред. Мод. Phys. 83 , 33–80 (2011).
ADS
Статья
Google ученый
6. Чирак, Дж. И., Экерт, А. К., Уэльга, С. Ф. и Маккиавелло, К. Распределенные квантовые вычисления по каналам с шумом. Phys. Ред. A 59 , 4249–4254 (1999).
ADS
MathSciNet
Статья
Google ученый
7. Бродбент А., Фитцсимонс Дж. И Кашефи Э. Универсальные слепые квантовые вычисления. В 2009 50-м ежегодном симпозиуме IEEE по основам компьютерных наук , 517–526 (Атланта, Джорджия, США, 2009).
8. Брендель, Дж., Гисин, Н., Титтель, У. и Збинден, Х. Импульсный энергетически-временной запутанный двухфотонный источник для квантовой связи. Phys. Rev. Lett. 82 , 2594–2597 (1999).
ADS
Статья
Google ученый
9. Marcikic, I. et al. Распределение запутанных кубитов с временным интервалом на 50 км оптического волокна. Phys. Rev. Lett. 93 , 180502 (2004).
ADS
Статья
Google ученый
10. Инагаки, Т., Мацуда, Н., Таданага, О., Асобе, М., Такесуэ, Х. Распределение запутанности на 300 км волокна. Опт. Экспресс 21 , 23241–23249 (2013).
ADS
Статья
Google ученый
11. Sun, Q.-C. и другие. Переключение запутанности оптического волокна длиной 100 км с независимыми источниками запутанных пар фотонов. Optica 4 , 1214–1218 (2017).
ADS
Статья
Google ученый
12. Hübel, H. et al. Высокоточная передача поляризационно-кодированных кубитов от запутанного источника на расстояние более 100 км по оптоволокну. Опт. Экспресс 15 , 7853–7862 (2007).
ADS
Статья
Google ученый
13. Wengerowsky, S. et al. Пассивно-стабильное распределение поляризационной запутанности на 192 км развернутого оптического волокна. npj Quantum Inf. 6 , 5 (2020).
ADS
Статья
Google ученый
14. Лидар Д. А. и Биргитта Уэйли К. Подпространства и подсистемы без декогеренции 83–120 (Springer Berlin Heidelberg, Берлин, Гейдельберг, 2003).
15. Квят, П. Г., Берглунд, А. Дж., Альтепетер, Дж. Б. и Уайт, А. Г. Экспериментальная проверка подпространств, свободных от декогеренции. Наука 290 , 498–501 (2000).
ADS
Статья
Google ученый
16. Уолтон, З.Д., Абурадди, А. Ф., Сергиенко, А. В., Салех, Б. Э. и Тейч, М. С. Подпространства без декогеренции в квантовом распределении ключей. Phys. Rev. Lett. 91 , 087901 (2003).
ADS
Статья
Google ученый
17. Буало, Ж.-К., Готтесман, Д., Лафламм, Р., Пулин, Д. и Спеккенс, Р. В. Надежное распределение квантовых ключей на основе поляризации по каналу коллективного шума. Phys. Rev. Lett. 92 , 017901 (2004).
ADS
Статья
Google ученый
18. Bourennane, M. et al. Обработка квантовой информации без декогеренции с четырехфотонными запутанными состояниями. Phys. Rev. Lett. 92 , 107901 (2004).
ADS
Статья
Google ученый
19. Буало, Ж.-К., Лафламм, Р., Лафорест, М. и Майерс, К.Р. Надежная квантовая связь с использованием пары фотонов, запутанных в поляризации. Phys. Rev. Lett. 93 , 220501 (2004).
ADS
Статья
Google ученый
20. Ямамото, Т., Шимамура, Дж., Оздемир,. К., Коаши, М. и Имото, Н. Точное распределение кубитов с помощью одного дополнительного кубита против коллективного шума. Phys. Rev. Lett. 95 , 040503 (2005).
ADS
Статья
Google ученый
21. Chen, T.-Y. и другие. Экспериментальная квантовая коммуникация без общей системы отсчета. Phys. Rev. Lett. 96 , 150504 (2006).
ADS
Статья
Google ученый
22. Prevedel, R. et al. Экспериментальная демонстрация односторонней передачи информации без декогеренции. Phys. Rev. Lett. 99 , 250503 (2007).
ADS
MathSciNet
Статья
Google ученый
23. Yamamoto, T. et al. Экспериментальная передача кубита с помощью вспомогательной службы против коррелированного шума с использованием квантовой проверки четности. N. J. Phys. 9 , 191 (2007).
Артикул
Google ученый
24. Ямамото, Т., Хаяси, К., Оздемир,. К., Коаши, М. и Имото, Н. Устойчивое распределение фотонной запутанности путем независимого от состояния кодирования в подпространстве без декогеренции. Nat. Фотоника 2 , 488–491 (2008).
Артикул
Google ученый
25. Ikuta, R. et al. Эффективное распределение запутанности без декогеренции по квантовым каналам с потерями. Phys. Rev. Lett. 106 , 110503 (2011).
ADS
Статья
Google ученый
26. Кумагаи, Х., Ямамото, Т., Коаши, М. и Имото, Н. Надежность квантовой связи на основе подпространства без декогеренции с использованием встречно распространяющегося слабого когерентного светового импульса. Phys. Ред. A 87 , 052325 (2013).
ADS
Статья
Google ученый
27. Икута, Р., Нозаки, С., Ямамото, Т., Коаши, М. и Имото, Н. Экспериментальная демонстрация надежного распределения запутанности по взаимным зашумленным каналам при помощи классического опорного света, распространяющегося в противоположных направлениях. Sci. Отчетность 7 , 4819 (2017).
ADS
Статья
Google ученый
28. Кальтенбек Р., Блауэнштайнер Б., Жуковски М., Аспельмейер М. и Цайлингер А. Экспериментальная интерференция независимых фотонов. Phys. Rev. Lett. 96 , 240502 (2006).
ADS
Статья
Google ученый
29. Танида, М., Окамото, Р. и Такеучи, С. Неразличимые источники одиночных фотонов, использующие параметрическое преобразование с понижением частоты. Опт. Экспресс 20 , 15275–15285 (2012).
ADS
Статья
Google ученый
30. Jin, R.-B. и другие. Неклассическая интерференция между независимыми собственно чистыми одиночными фотонами на телекоммуникационной длине волны. Phys. Ред. A 87 , 063801 (2013).
ADS
Статья
Google ученый
31. Tsujimoto, Y. et al. Извлечение запутанной пары фотонов из совместно декогерированных пар на длине волны связи. Опт. Экспресс 23 , 13545–13553 (2015).
ADS
Статья
Google ученый
32. Tsujimoto, Y. et al. Переключение запутанности с высокой точностью и генерация состояния трех кубитов в ГГц с использованием асинхронных источников пар фотонов для телекоммуникаций. Sci. Отчет 8 , 1446 (2018).
ADS
Статья
Google ученый
33. Питтман Т.Б., Джейкобс, Б. С. и Фрэнсон, Дж. Д. Вероятностные квантовые логические операции с использованием поляризационных светоделителей. Phys. Ред. A 64 , 062311 (2001).
ADS
Статья
Google ученый
34. Tsujimoto, Y. et al. Интерференция hong-ou-mandel с высокой видимостью благодаря измерению совпадений с временным разрешением. Опт. Экспресс 25 , 12069–12080 (2017).
ADS
Статья
Google ученый
35. Miki, S., Yamashita, T., Terai, H. & Wang, Z. Высокоэффективные детекторы одиночных фотонов из сверхпроводящих нанопроволок NbTiN с волоконной связью и криокулером Гиффорда-МакМахона. Опт. Экспресс 21 , 10208–10214 (2013).
ADS
Статья
Google ученый
36. Джеймс Д. Ф. В., Квиат П. Г., Манро В. Дж. И Уайт А. Г. Измерение кубитов. Phys. Ред. A 64 , 052312 (2001).
ADS
Статья
Google ученый
37. eháček, J., Hradil, Z., Knill, E. & Lvovsky, A. I. Разбавленный алгоритм максимального правдоподобия для квантовой томографии. Phys. Ред. A 75 , 042108 (2007).
38. Wootters, W.K. Запутанность образования произвольного состояния двух кубитов. Phys. Rev. Lett. 80 , 2245–2248 (1998).
ADS
Статья
Google ученый
39. Zhou, C., Wu, G., Chen, X. & Zeng, H. Автоматическая система квантового распределения ключей с дифференциальным фазовым сдвигом. Заявл. Phys. Lett. 83 , 1692–1694 (2003).
ADS
Статья
Google ученый
Асинхронный счетчик - Счетчики - Основы Электроника
Счетчики
Счетчики пульсации названы так потому, что счетчик похож на цепную реакцию, которая
рябь на счетчике из-за затраченного времени.Этот эффект будет
станет более очевидным после объяснения следующей схемы. Рябь
счетчик также называется асинхронным счетчиком .
Асинхронный означает, что события (установка и сброс триггеров)
происходят один за другим, а не все сразу. Потому что рябь
счетчик является асинхронным, он может выдавать ошибочные показания, когда
тактовая частота высока. Высокоскоростные часы могут привести к тому, что нижняя ступень
шлепанцы для изменения состояния до того, как верхние ступени
реагировал на предыдущий тактовый импульс.Ошибки вызваны шлепанцами.
неспособность идти в ногу с часами.
Четырехступенчатый (4-битный) асинхронный счетчик.
На рисунке выше показан базовый четырехступенчатый асинхронный счетчик, или по модулю 16.
Входы и выходы показаны на рисунке ниже. Четыре шлепанца JK
подключаются для выполнения функции переключения; который делит входную частоту
на 2. Высокие значения на входах J и K позволяют триггерам
переключать. Состояние триггеров меняется на
положительный импульс.
Частичная временная диаграмма.
Предположим, что A, B, C и D - это лампы и что все триггеры сброшены.
Все лампы погаснут, а счетчик будет 0000 2 .
Положительный импульс тактового импульса 1 вызывает установку триггера FF1.
Это зажигает лампу А, и у нас есть счет 0001 2 .
Положительный импульс тактового импульса 2 переключает FF1, вызывая его сброс.
Положительный вход в FF2
(из Q1) причины
он установится и заставит B загореться.Счетчик после двух тактовых импульсов равен
0010 2 или 2 10 . Тактовый импульс 3 вызывает FF1
установить и загорится лампа A. Настройка FF1 не влияет на FF2, а лампа B
горит. После трех тактовых импульсов отображается счетчик 0011 2 .
Тактовый импульс 4 вызывает сброс FF1, что приводит к сбросу FF2, что вызывает
FF3 для установки, что дает нам количество 0100 2 . Этот шаг показывает
Волновой эффект.
Эта установка и сброс FF будут продолжаться до тех пор, пока все FF не будут
установлен и все лампы горят.В то время счет будет
1111 2 или 15 10 . Тактовый импульс 16 вызовет сброс FF1.
и лампа A погаснет. Это приведет к сбросу с FF2 по FF4 в следующем порядке:
и погаснет лампы B, C и D. Счетчик
затем начнется с 0001 2 на тактовом импульсе 17. Для отображения счетчика
из 16 10 или 10000 2 , нам потребуется добавить еще один триггер.