Shivers 0 18 июня, 2015 Опубликовано 18 июня, 2015 · Жалоба Скажите, пожалуйста, откуда информация про "вполне определённо" (датащит и страницу желательно) и откуда приведённая картинка? Название разрешающего сигнала с левой картинки Serhiy_UA выше. clkena называется, что говорит о использовании гейта. Гейтованный клок работает как мультиплексор на данные (о чем писал и Serhiy_UA на прошлой странице), но потребляет меньше, поскольку меньше триггеров переключается. А картинка просто из гугла. Такие склок гейты сейчас повсеместно используются в суб-100нм библиотеках. А это всё не устарело? Так уже может и не делают в современных FPGA... Устарело конечно. Но для расширения кругозора может оказаться любопытным Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 18 июня, 2015 Опубликовано 18 июня, 2015 · Жалоба ...Если нетрудно, можно примерчик (я так понял, Вам всё равно в академических целях примерчики потребуются). Думаю, при применении идеологии синхронного дизайна термин "гонки" должен отсутствовать как класс, поэтому я про него и думать уже давно забыл. Полностью согласен, что, проектируя FSM на ПЛИС эти подробности никому не нужны, там все работает как надо, главное не ошибаться А на рассыпной логике уже никто подобное не делает. Все это только для уяснения некоторых тонкостей по данной теме… На прилагаемом рисунке, представлены три варианта. На первом изображены четыре эпюры. Общий для конечного автомата и операционного устройства тактовый сигнал Clk. По фронту этого сигнала последовательно меняется внутреннее состояние КА (или выбираются микрокоманды). В n-ом состоянии формируется сигнал микрооперации MOi, и ее единичный сигнал поступает на вход ENA одного из триггеров в ОУ, и микрооперация по фронту тактируется в этом D-триггере. Пока все нормально, но допустим, после MK n+1 возникают гонки на переходных процессах (комбинационные схемы часто гоняются без противогоночного кодирования), и формируется ложный пик на линии MOi. Так как в этот момент Clk единичный, может произойти неверная запись в D-триггер, т.е. глюк. На втором рисунке уже два тактовых сигнала, один для КА, а другой для ОУ, они сдвинуты относительно друг друга и не перекрываются (многофазная синхронизация), За счет этого глюк не проходит и здесь все в норме. На третьем рисунке уже используется триггер с коммутатором на входе, благодаря этому там всегда все нормально и достаточно одной фазы тактового сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 18 июня, 2015 Опубликовано 18 июня, 2015 · Жалоба Название разрешающего сигнала с левой картинки Serhiy_UA выше. clkena называется, что говорит о использовании гейта.Это говорит о его функциональном назначении, но не о способе реализации. А реализовано это может быть двумя способами, про которые было выше. Гейтованный клок работает как мультиплексор на данныеВ каком плане они похоже, я чото не понял? А то выглядит примерно как "работает почти как это, но совсем не так" ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 18 июня, 2015 Опубликовано 18 июня, 2015 · Жалоба Это говорит о его функциональном назначении, но не о способе реализации. А реализовано это может быть двумя способами, про которые было выше. В каком плане они похоже, я чото не понял? А то выглядит примерно как "работает почти как это, но совсем не так" ))) Между разрешением записи и разрешением тактирования две большие разницы. А результат похожий: выход переключается только при разрешении. На прилагаемом рисунке, представлены три варианта. Первые два рисунка никуда не годятся. С помощью логики никто клок давно уже не пережимает - используют защелку, которая и маскирует переходной процесс который вы показали. Посмотрите мой рисунок: защелка находится в хранении по высокому уровню клока, и прохрачна по низкому. В результате по высокому уровню глитч пройти не может. А после защелки стоит уже логика, как у вас. В результате клок пережимается число и гладко -потребности в двупроводной синхронизации (как у вас на рисунке) не возникает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 18 июня, 2015 Опубликовано 18 июня, 2015 · Жалоба Да ничего это толком не подтверждает. Возможно фраза Deasserting the clock enable signal turns off the LAB-wide clock. приведена тут иносказательно, чтобы было образное понимание работы. Смотря что для Вас является подтверждением. Если это бумага с подписью, датой и печатью - то да, это не подтверждение. Если Вы считаете, что фраза тут приведена иносказательно, то можно считать, что и схема регистра приведена "иносказательно". Однако, я, проанализировав аналогичные фразы из даташитов циклонов и стратиксов разных серий, а также подумав как можно построить подобный узел с минимальным количеством элементов и потреблением, пришел к выводу, который и озвучил. Дальше дело каждого какую из реализаций считать логичной, приемлемой и т.д. Логически они эквивалентны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 19 июня, 2015 Опубликовано 19 июня, 2015 · Жалоба Посмотрите мой рисунок: защелка находится в хранении по высокому уровню клока, и прохрачна по низкому. В результате по высокому уровню глитч пройти не может. А после защелки стоит уже логика, как у вас. В результате клок пережимается число и гладко -потребности в двупроводной синхронизации (как у вас на рисунке) не возникает. Спасибо, разобрался! В свое время я этой схемы не знал, да и понял только сейчас. То есть, здесь уже имеются два альтернативных варианта. Двухвходовой мультиплексор перед входом D, и схема с защелкой с последующим gated_clk перед входом C. Чему в ПЛИС сейчас отдают предпочтение? Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 19 июня, 2015 Опубликовано 19 июня, 2015 · Жалоба На третьем рисунке уже используется триггер с коммутатором на входе, благодаря этому там всегда все нормально и достаточно одной фазы тактового сигнала.Да тут тоже только иллюзия, что "всё нормально": предположим, ваша иголка сигнала ENA попала на фронт клока, на триггере возникнет метастабильность. Регистр состояния состоит из нескольких триггеров, на несколько тактов вперёд гарантировано непредсказуемое состояние... В сухом неутешительном остатке: ни одна из схем не защищена от метастабильности на 100% при неправильном с ней обращении. Чтобы от метастабильности защититься нужно в любой из схем гарантировать отсутствие смены управляющих сигналов вблизи фронта клока. В ПЛИС это автоматически делает STA, учитывая задержки по каждой цепи. В рассыпухе - остаётся работать на частотах с периодом, много большим задержек переключения и прохождения сигналов... Ну либо тоже что-то выдумывать и рассчитывать время прохождения. Посмотрите мой рисунок: защелка находится в хранении по высокому уровню клока, и прохрачна по низкому. В результате по высокому уровню глитч пройти не может.Не может. Но если он придётся на фронт клока, то может привести этот вспомогательный триггер в метастабильное состояние, и к следующему клоку триггер может ещё не очухаться, передав метастабильное состояние на основной триггер. А если и не передав, то снизив вероятность записи в основной триггер: может записать, а может и не записать, фиг его знает. КА будет сбоить. Вывод аналогичен - просто не надо доводить до того, что иголка может появиться в момент фронта клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 19 июня, 2015 Опубликовано 19 июня, 2015 · Жалоба Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования.Вот именно! а также подумав как можно построить подобный узел с минимальным количеством элементов и потреблением, пришел к выводу, который и озвучилВот если кто-то видел где-то в доках рекомендацию использовать слайсовый CE для уменьшения потребления, то это и будет неоспоримым доказательством его прямой реализации как отключение тактовой, а не как мультиплексор на входе данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 19 июня, 2015 Опубликовано 19 июня, 2015 · Жалоба Есть книга "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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 19 июня, 2015 Опубликовано 19 июня, 2015 · Жалоба Чему в ПЛИС сейчас отдают предпочтение? Все таки ключ перед входом С хоть и маленькая, но задержка, уже в схеме тактирования. Предпочтение отдают 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 22 июня, 2015 Опубликовано 22 июня, 2015 · Жалоба Да, упёртый ) Но Вы меня убедили. Действительно говорится о снижении потребления. Интересно бы найти то же самое для хилых, вдруг технологии разные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 22 июня, 2015 Опубликовано 22 июня, 2015 · Жалоба Умеренная упёртость, я считаю, полезна. Позволяет добраться до деталей. По поводу хилых. Когда они сделали виртексы 7, то там в статьях много говорилось о снижении потребления. И это не только задача железа, но и софта. Позиционировалось что в современных ПЛИС элементов уже столько, и частоты такие, что основным ограничивающим фактором является потребляемая мощность. И что все эти технологии снижения потребления позволяют разместить больше элементов (т.е. увеличить проект). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 26 августа, 2015 Опубликовано 26 августа, 2015 · Жалоба Новое развитие получила тема снижения энергопотребления: 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, как мы это сначала порешали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться