Перейти к содержанию
    

D-триггер c входами С и ENA.

Скажите, пожалуйста, откуда информация про "вполне определённо" (датащит и страницу желательно) и откуда приведённая картинка?

Название разрешающего сигнала с левой картинки Serhiy_UA выше. clkena называется, что говорит о использовании гейта.

Гейтованный клок работает как мультиплексор на данные (о чем писал и Serhiy_UA на прошлой странице), но потребляет меньше, поскольку меньше триггеров переключается.

 

А картинка просто из гугла. Такие склок гейты сейчас повсеместно используются в суб-100нм библиотеках.

 

А это всё не устарело? Так уже может и не делают в современных FPGA...

Устарело конечно. Но для расширения кругозора может оказаться любопытным

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Полностью согласен, что, проектируя FSM на ПЛИС эти подробности никому не нужны, там все работает как надо, главное не ошибаться А на рассыпной логике уже никто подобное не делает. Все это только для уяснения некоторых тонкостей по данной теме…

На прилагаемом рисунке, представлены три варианта.

На первом изображены четыре эпюры. Общий для конечного автомата и операционного устройства тактовый сигнал Clk. По фронту этого сигнала последовательно меняется внутреннее состояние КА (или выбираются микрокоманды). В n-ом состоянии формируется сигнал микрооперации MOi, и ее единичный сигнал поступает на вход ENA одного из триггеров в ОУ, и микрооперация по фронту тактируется в этом D-триггере. Пока все нормально, но допустим, после MK n+1 возникают гонки на переходных процессах (комбинационные схемы часто гоняются без противогоночного кодирования), и формируется ложный пик на линии MOi. Так как в этот момент Clk единичный, может произойти неверная запись в D-триггер, т.е. глюк.

На втором рисунке уже два тактовых сигнала, один для КА, а другой для ОУ, они сдвинуты относительно друг друга и не перекрываются (многофазная синхронизация), За счет этого глюк не проходит и здесь все в норме.

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

post-41112-1434617577_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

Гейтованный клок работает как мультиплексор на данные
В каком плане они похоже, я чото не понял? А то выглядит примерно как "работает почти как это, но совсем не так" )))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

В каком плане они похоже, я чото не понял? А то выглядит примерно как "работает почти как это, но совсем не так" )))

Между разрешением записи и разрешением тактирования две большие разницы. А результат похожий: выход переключается только при разрешении.

 

На прилагаемом рисунке, представлены три варианта.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ничего это толком не подтверждает. Возможно фраза Deasserting the clock

enable signal turns off the LAB-wide clock. приведена тут иносказательно, чтобы было образное понимание работы.

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Спасибо, разобрался! В свое время я этой схемы не знал, да и понял только сейчас.

То есть, здесь уже имеются два альтернативных варианта. Двухвходовой мультиплексор перед входом D, и схема с защелкой с последующим gated_clk перед входом C.

Чему в ПЛИС сейчас отдают предпочтение? Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На третьем рисунке уже используется триггер с коммутатором на входе, благодаря этому там всегда все нормально и достаточно одной фазы тактового сигнала.
Да тут тоже только иллюзия, что "всё нормально": предположим, ваша иголка сигнала ENA попала на фронт клока, на триггере возникнет метастабильность. Регистр состояния состоит из нескольких триггеров, на несколько тактов вперёд гарантировано непредсказуемое состояние...

 

В сухом неутешительном остатке: ни одна из схем не защищена от метастабильности на 100% при неправильном с ней обращении. Чтобы от метастабильности защититься нужно в любой из схем гарантировать отсутствие смены управляющих сигналов вблизи фронта клока. В ПЛИС это автоматически делает STA, учитывая задержки по каждой цепи. В рассыпухе - остаётся работать на частотах с периодом, много большим задержек переключения и прохождения сигналов... Ну либо тоже что-то выдумывать и рассчитывать время прохождения.

 

 

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

 

Вывод аналогичен - просто не надо доводить до того, что иголка может появиться в момент фронта клока.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования.
Вот именно!

 

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть книга "The Art of Hardware Architecture: Design Methods and Techniques for Digital". Автор: Mohit Arora.

Всю пока не нашел, но ее часть, что в приложении, очень даже по этой теме. В частности, стр. 30, 31 и 37.

 

 

Еще она здесь: https://books.google.com.ua/books?id=uEs8Jb...2op&f=false

9781461403968_c1.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чему в ПЛИС сейчас отдают предпочтение? Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования.

Предпочтение отдают clock enable, а задержка - да хрен с ней, главное что бы одинаково было. Задержка по клоковому дереву может запросто превышать несколько тактов.

 

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

А я смотрю Вы упёртый. Вот выдержка из доков по стратиксу 4 (по-моему очевидно):

Clocks represent a significant portion of dynamic power consumption due to their

high switching activity and long paths. The LAB clock that distributes a clock

signal to registers within an LAB is a significant contributor to overall clock power

consumption. Each LAB’s clock and clock enable signal are linked. For example, a

combinational ALUT or register in a particular LAB using the labclk1 signal also

uses the labclkena1 signal. To disable LAB-wide clock power consumption

without disabling the entire clock tree, use LAB-wide clock enable to gate the

LAB-wide clock. The Quartus II software automatically promotes register-level

clock enable signals to the LAB-level. All registers within the LAB that share a

common clock and clock enable are controlled by a shared, gated clock. To take

advantage of these clock enables, use a clock-enable construct in your HDL code

for the registered logic.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, упёртый ) Но Вы меня убедили. Действительно говорится о снижении потребления. Интересно бы найти то же самое для хилых, вдруг технологии разные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Умеренная упёртость, я считаю, полезна. Позволяет добраться до деталей.

По поводу хилых. Когда они сделали виртексы 7, то там в статьях много говорилось о снижении потребления. И это не только задача железа, но и софта. Позиционировалось что в современных ПЛИС элементов уже столько, и частоты такие, что основным ограничивающим фактором является потребляемая мощность. И что все эти технологии снижения потребления позволяют разместить больше элементов (т.е. увеличить проект).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Новое развитие получила тема снижения энергопотребления:

Quartus II Handbook Version 15.0.0, page 738:

From a functional point of view, you can shut down a clock domain in a purely synchronous manner using a synchronous clock enable signal.

However, when using a synchronous clock enable scheme, the clock network continues toggling.

This practice does not reduce power consumption as much as gating the clock at the source does.

 

Получается, не всё так однозначно хорошо у всех ПЛИС с применением Clock Enabke, как мы это сначала порешали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...