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

Линия асинхронного сброса и потребление энергии

Добрый день.

 

Прошу прощения, если этот вопрос где-то рассматривался, но у меня просто не получается сформулировать правильный поисковой запрос на эту тему :)

 

Есть два описания триггера с асинхронным сбросом на VHDL.

TRIGGER_ONE: process (Reset, Clock) begin
if Reset = '1' then Q_out <= '0';
elsif rising_edge(Clock) then Q_out <= D_in;
end if; end process;

TRIGGER_TWO: process (Reset, Clock) begin
if Reset = '1' then Q_out <= '0';
elsif rising_edge(Clock) and Reset = '0' then Q_out <= D_in;
end if; end process;

 

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

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

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

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


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

Вопрос такой: отличаются ли эти два описания по потреблению энергии на кристалле, пусть даже незначительно?

Если Вы внимательно посмотрите на то, что написали,

то увидите, что второй вариант, вообще, ничем не отличается от первого.

 

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


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

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

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


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

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

 

Наверно также подумает и синтезатор и не задействует ClockEnable.

В железе обе рализации должны быть идентичны.

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


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

сигнал Reset, который попадает во втором варианте на вход ClockEnable триггера...

Почему Вы считаете, что во втором случае будет использован тригер с разрешением счета ?

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

одно и тоже: D-тригер с асинхронным сбросом.

Я не работаю с VHDL и проверить не могу, к сожалению. На Veriloge это синтезируется в один и тот же тригер.

 

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

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

Разрешение счета реализуется установкой мультиплексора на D входе, который, при запрете счета,

подает на вход тригера сигнал с его же выхода.

 

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


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

Epikur, чтобы снизить потребление при неактивном enable нужно использовать clock gating cell, а эти описания синтезируются одинаково.

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


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

Epikur, чтобы снизить потребление при неактивном enable нужно использовать clock gating cell, а эти описания синтезируются одинаково.

Спасибо!

 

Да, действительно убедился, что синтезатор всё равно не пихает инвертированную копию сигнала Reset на ClockEnable.

К тому же в процессе чтения разных материалов по теме обнаружил, что на нужном мне кристалле (спартаны) D-триггер может быть сконфигурирован как для асинхронных сброса-предустановки, так и для синхронных. Раньше я думал почему-то, что триггеры все асинхронные, а цепи синхронного сброса/предустановки синтезируются дополнительной логикой перед D-входом триггера. И в синхронном режиме сброс имеет приоритет над предустановкой, и оба - над ClockEnable. Это "открытие" практически снимает проблему, так как реально сброс у меня всё равно синхронен тактовой частоте.

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


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

Если Вы внимательно посмотрите на то, что написали,

то увидите, что второй вариант, вообще, ничем не отличается от первого.

 

Справедливости ради, можно было показать, что оба флопа синтезируются в одну и ту же конструкцию (см. рисунок). Единсвенным подозрительным моментом тут есть INV (Reset). Так что если ваш design = десяток флопов, то тут можно еще подумать, но если вы делаете SOC на 100M+ gates, эти INV фигня по сравнению с тем, что инсертит Tool во время Clock Tree Synthesis

 

PS: If Low Power is a REAL concern for you, find my next topic on Low Power Implementation Techniques

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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