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

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

Может, у кого есть схема с логическими элементами внутри D-триггера c входами С и ENA (Clock Enable), то просьба поделиться, а то не могу никак найти.

Ситуация с переключениями на входе С при постоянных уровнях 0 или 1 на входе ENA понятна по определению самих этих входов.

Но интересует такая вещь. Как будет вести себя D-триггер при переключениях на входе ENA, при постоянных уровнях 0 или 1 на входе С…

Провожу небольшой курс по синтезу цифровых автоматов, вот и запнулся…

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


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

Как будет вести себя D-триггер при переключениях на входе ENA, при постоянных уровнях 0 или 1 на входе С…

А разве он может вести себя иначе, чем просто хранить одно и тоже состояние?! Ведь предпосылок для переключения (фронтов на входе С) нет никаких.

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


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

вот тут книжку триггеры советовали: https://disk.yandex.ru/public/?hash=NTX%2B1...0Ye3OY3izHyY%3D
В этой книге искомого D-триггера нет, хотя книга хорошая. Речь была немного о другом. Посмотрите на рисунок, там два D-триггера, они работают почти одинаково, но второй, что с коммутатором, удобней при синтезе цифровых автоматов (ЦА). Под ЦА понимается совокупность конечного автомата (КА) и операционного устройства (ОУ). Преимущество второго из D-триггеров в том, что синхронизировать микрооперации в ОУ можно одной и той же фазой, что в КА. В то время, как для первого D-триггера потребовалась бы многофазная синхронизация, иначе были бы гонки.

Просто в ПЛИС при синтезе FSM используется именно второй из этих триггеров. А когда я в свое время проектировал ЦА на микросхемах, я использовал первый из них, а о втором не догадывался, по этому применял многофазную синхронизацию… Такие вот тонкости...

post-41112-1432269598_thumb.jpg

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


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

Поздно увидел сообщение. В ПЛИС по первой схеме вообще не принято делать триггеры, т.е. должна быть идеология синхронного дизайна. На это даже синтезатор должен ругнуться и сказать, что это gated clock или ripple clock. Т.е. тактовая должна подаваться всегда прямо на тактовый вход, безо всяких комбинационных схем. Аналогичную идеологию синхронного дизайна можно применять и для цифровых микросхем

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


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

Вообще для gated-clock есть совершенно "безопасный" дизайн, поэтому не вижу причин его не использовать. Картинка из Титце Шенка.

post-64797-1433930832_thumb.png

 

Ну и все таки 'clock enable' это одно, а mux на входе - совсем другое. И собственно изменение данных на выходе mux'a в момент фронта тактового импульса может привести к самым разным последствиям.

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


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

Вообще для gated-clock есть совершенно "безопасный" дизайн, поэтому не вижу причин его не использовать
и в ПЛИС тоже? Это всё устарело )) безопасный он до тех пор, пока задержки не начинают быть сравнимы с периодом сигналов.

 

 

Ну и все таки 'clock enable' это одно, а mux на входе - совсем другое
По какому параметру совсем другое? Понятно, что буквы названия другие. А по потреблению ресурсов - примерно та же байда ))

 

 

И собственно изменение данных на выходе mux'a в момент фронта тактового импульса может привести к самым разным последствиям.
Дак по идеологии синхронного дизайна не надо так делать (в момент фронта). Либо ставьте на сигнал управления мультиплексором такой же синхронизатор, как на Вашей картинке.

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


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

и в ПЛИС тоже? Это всё устарело )) безопасный он до тех пор, пока задержки не начинают быть сравнимы с периодом сигналов.

 

 

По какому параметру совсем другое? Понятно, что буквы названия другие. А по потреблению ресурсов - примерно та же байда ))

 

 

Дак по идеологии синхронного дизайна не надо так делать (в момент фронта). Либо ставьте на сигнал управления мультиплексором такой же синхронизатор, как на Вашей картинке.

 

Не надо сравнивать ПЛИС с ASIC'ами. У ПЛИС много плюсов, но не надо ориентироваться на применяемые там решения, как на парадигму.

 

Совсем другое оно по смыслу. У вас от этого клока может быть целый блок затактирован, и гораздо проще(и выгоднее) управлять одним клоком блока, чем всеми входами этого блока, не находите?

 

Что касается синхронного дизайна, то автор о нем не упоминал. А я же скажу так: всякий инструмент нужен к месту.

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


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

Не надо сравнивать ПЛИС с ASIC'ами
А в асиках не так как в плисах? Насколько я знаю, логика для асиков сначала отлаживается на плис, следовательно, применяются все те же методологии, в т.ч. и синхронного дизайна.

 

 

Совсем другое оно по смыслу. У вас от этого клока может быть целый блок затактирован, и гораздо проще(и выгоднее) управлять одним клоком блока, чем всеми входами этого блока, не находите?
Выгоднее, но в доках от производителей плис рекомендуется всё же обходиться без gated clock. А там где это действительно требуется - существует специальный элемент типа BUFGCE, который обеспечивает примерно то же, что на Вашей картинке. Тем более речь идёт об одном триггере, о его схеме с CE.

 

 

Что касается синхронного дизайна, то автор о нем не упоминал.
Я так думаю, если не упоминал - то это хуже. Скорее всего, для него это открытие )) Зато я упоминал, что асинхронщина устарела. А не устарел - синхронный дизайн.

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


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

А в асиках не так как в плисах? Насколько я знаю, логика для асиков сначала отлаживается на плис, следовательно, применяются все те же методологии, в т.ч. и синхронного дизайна.

Не надо мешать в кучу логику и схемотехнику.

 

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

Да мне, в общем, не важно, что там рекомендуют производители плис: у самого голова на плечах есть.

 

 

Я так думаю, если не упоминал - то это хуже. Скорее всего, для него это открытие )) Зато я упоминал, что асинхронщина устарела. А не устарел - синхронный дизайн.

 

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

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


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

Как обустроен D-триггер для синхронных FSM мне уже понятно: там перед его D-входом двухвходовой коммутатор, управляемый сигналом микрооперации. Понятно и то, что период синхроимпульсов должен быть таким, что бы исключить гонки. При этом синтез FSM на HDL построен так, что пользователь об этом коммутаторе может даже и не знать, все делается за него.

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

Понятно, что среда программирования делает все автоматически, но на каких идеях…

 

 

 

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


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

Как обустроен D-триггер для синхронных FSM мне уже понятно: там перед его D-входом двухвходовой коммутатор, управляемый сигналом микрооперации. Понятно и то, что период синхроимпульсов должен быть таким, что бы исключить гонки. При этом синтез FSM на HDL построен так, что пользователь об этом коммутаторе может даже и не знать, все делается за него.

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

Понятно, что среда программирования делает все автоматически, но на каких идеях…

как это делает среда разработки находится под большим секретом (мое мнение)

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


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

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

Понятно, что среда программирования делает все автоматически, но на каких идеях…

 

Очень многое на плисине уже сделано архитектурно. Можете почитать гугл на тему 'clock distribution network' - достаточно много интересных материалов есть в открытом доступе. Так что зная параметры тех. процесса программе остается сделать не так много.

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


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

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

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

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

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

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

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

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

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

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