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

Синхронный ресет

Здравствуйте.

Кто может уверенно сказать, можно ли делать так, как показано на схеме 2.

post-45001-1355226423_thumb.png

Кристалл V6. Использован вход синхронного ресета.

Не возникнет ли проблем в дальнейшем? Да и вообще, есть ли какая либо разница на железном уровне между синхронным и асинхронным входами ресета? Или "синхронность" лишь заставляет роутер просчитывать путь так, как и для обычных сигналов.

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


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

Синхронный сброс - по факту является маской по И входных данных.

Асинхронный - воздействует на состояние триггера. Подвержен метастабильному состоянию, если сигнал сброса снимается с нарушением времен установки/удержания данных относительно тактового сигнала.

http://ens.ewi.tudelft.nl/Education/course...ston_Resets.pdf

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


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

Да и вообще, есть ли какая либо разница на железном уровне между синхронным и асинхронным входами ресета?

Эээ... а вход-то в Slice - один... а способ его использования (синхронный/асинхронный) задаётся атрибутом - можете всё сами разглядеть при помощи FPGA Editor'a.

 

А т.к. вход один на весь Slice, то он заходит на все триггеры в Slice. Соответственно, если в схеме нет триггеров, которым нужен такой набор управляющих сигналов (CLK, CE, RST), то тогда неиспользованные в этом Slice триггеры не смогут быть использованы. Поэтому уникальные наборы управляющих сигналов необходимо использовать с умом.

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


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

Синхронный сброс - по факту является маской по И входных данных.

Этот факт реализован непосредственно в самом триггере? Ни на один из входов лата этот сигнал не поподает.

 

Эээ... а вход-то в Slice - один... а способ его использования (синхронный/асинхронный) задаётся атрибутом - можете всё сами разглядеть при помощи FPGA Editor'a.

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

 

В общем, пришёл к выводу, что схему 2 использовать можно, так как Симплифай(провёл эксперимент) сам заводит выход лата на синхронный ресет, для уменьшения слоёв логики. А люди, его делавшие, скорее всего разобрались с этим вопросом..

 

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


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

Этот факт реализован непосредственно в самом триггере? Ни на один из входов лата этот сигнал не поподает.

Ответы находятся в FPGA Editor'е, которым я настоятельно рекомендовал посмотреть Ваш кристалл, чтобы Вы не писали ахинею:

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

Ну вот расскажите мне: где тут "второй вход сброса в триггер" ? Я его, почему-то в упор не вижу...

post-18188-1355235008_thumb.png

Зато вижу тут атрибут RESET TYPE: SYNC/ASYNC, о котором и писал ренее.

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


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

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

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


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

Ну вот расскажите мне: где тут "второй вход сброса в триггер" ? Я его, почему-то в упор не вижу...

Да, я был не прав..

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

Полезная статья. Вот только ни в одном примере на вход SR триггера он не заводит выход лата. Меня конкретно это интересовало. Но, поверю симплифаю и попробую это сделать)

 

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


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

Полезная статья. Вот только ни в одном примере на вход SR триггера он не заводит выход лата. Меня конкретно это интересовало. Но, поверю симплифаю и попробую это сделать)

А зачем заводить выход LUTа? Это наверняка отрицательно скажется на тайминге. Правильно выход LUTa защёлкнуть в триггере, а потом уже подавать на SR.

Это приведёт к задержке на 1 такт, но в большинстве случаев это некритично.

 

 

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


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

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

Более того, при синтезе сложных логических функций синтезаторы периодически сами синтезируют схемы в которых используются D, CE и SR, на которые подаются сигналы с выходов LUT'ов.

 

А зачем заводить выход LUTа? Это наверняка отрицательно скажется на тайминге. Правильно выход LUTa защёлкнуть в триггере, а потом уже подавать на SR.

Это приведёт к задержке на 1 такт, но в большинстве случаев это некритично.

Да, скажется, но практически незаметно. Но зато может позволить реализовать очень вычурную логическую функцию с Logic Level = 1.

 

Единственным существенным (для Xilinx V-5/S-6 и более новых) является наличие уникального набора CE, SR, CLK, что с большой долей вероятности приводит к невозможности использования остальных триггеров в Slice. Но, иногда, даже такие жертвы - оправданы.

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


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

Да, можно подавать данные с выхода LUT на синхронный вход SR триггеров. Но только на синхронный SR, если не хотите поиметь кучу проблем с асинхронщиной.

Это именно то, что я хотел узнать - не будет ли проблем)

 

Да, скажется, но практически незаметно.

В DS152 сказано, что

"TITO An – Dn inputs to A – D Q outputs 0.67" для V6-2

в то время, как

"TRQ Delay from SR input to AQ – DQ flip-flops 0.58".

Выходит, что будет даже лучше по времянке. Или я ошибаюсь?

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


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

В DS152 сказано, что

"TITO An – Dn inputs to A – D Q outputs 0.67" для V6-2

в то время, как

"TRQ Delay from SR input to AQ – DQ flip-flops 0.58".

Выходит, что будет даже лучше по времянке. Или я ошибаюсь?

К сожалению, Вы ошибаетесь: не совсем то сравниваете:

1. TITO (An – Dn inputs to A – D Q outputs) - это задержка от изменения входов LUT до появления устойчивых данных на выходе Slice (актуально для первого LUT'а Вашей схемы). А второй LUT вашей схемы, если я ничего не путаю, описывается TILO (An – Dn LUT address to A = 0.07ns) + TDICK (A – D input to CLK on A – D Flip Flops = 0.36ns), итого 43ns.

2. TRQ (Delay from SR input to AQ – DQ flip-flops) - это задержка реакции триггера на асинхронный Reset (задержка от прихода SR до изменения Q триггера). А Вам нужно TSRCK (SR input to CLK on A – D Flip Flops = 0.44ns) - время предустановки для SR входа.

Т.е. получается, что разницы практически нет... Если я нигде не ошибся.

 

Также необходимо учитывать, что использование LUT -> MUXF7 (или MUXF8) -> D вход триггера может дать более интересный результат.

 

Для каждого семейства ПЛИС необходимо проверять всё это в Timing Analyzer'е, ибо не всё можно рассчитать по данным из Data Sheet, да и он ошибается значительно реже, чем сам разработчик.

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


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

Да, скажется, но практически незаметно. Но зато может позволить реализовать очень вычурную логическую функцию с Logic Level = 1.

Всё не так просто. При использовании триггера задержка будет складываться из трёх частей : 1 Tcko триггера 2 Net delay (цепь внешняя, задержка довольно велика) 3 Trstin того блока, который сбрасываете.

В случае с LUT без триггера задержка будет состоять из 5 частей : 1 Tcko триггера - источника ресета (тот что перед LUT). 2 Net delay (внешняя цепь от источника ресета до LUT) 3 задержка собственно в LUT 4 Net delay (внешняя цепь от LUT до приёмника RESET ) 5 Trstin приёмника ресета.

Итого : во втором случае - 2 внешних цепи и LUT delay - наибольшие задержки. На высоких частотах это может быть проблемой.

 

 

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


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

Всё не так просто...
Да чего ж тут сложного-то ? Вы всего лишь утверждаете, что с pipelining’ом схема сможет работать на большей частоте. Ну, сможет - и что ? (Этот факт, как раз, никто и не оспаривал) Но у pipelining есть свои недостатки, поэтому он не везде применим. Первичный-то вопрос стоял не в целесообразности применения pipelining'а, а «как сделать так, чтобы было побыстрее, да еще и без pipelining». И, кстати, схемы без pipelining'а, как правило, обладают меньшей латентностью (в нс), чем работающие на большей частоте pipeline схемы. Посему, в каждом конкретном случае приходится выбирать, что критичнее: латентность или частота - универсального ответа - нет.

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


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

Да чего ж тут сложного-то ? Вы всего лишь утверждаете, что с pipelining’ом схема сможет работать на большей частоте. Ну, сможет - и что ? (Этот факт, как раз, никто и не оспаривал) Но у pipelining есть свои недостатки, поэтому он не везде применим. Первичный-то вопрос стоял не в целесообразности применения pipelining'а, а «как сделать так, чтобы было побыстрее, да еще и без pipelining». И, кстати, схемы без pipelining'а, как правило, обладают меньшей латентностью (в нс), чем работающие на большей частоте pipeline схемы. Посему, в каждом конкретном случае приходится выбирать, что критичнее: латентность или частота - универсального ответа - нет.

Ок, видимо я не до конца понял постановку задачи. Я думал надо сделать "быстро", а оказывается надо сделать "_вот_таким_странным_способом_", да вдобавок ещё и "быстро". Тогда встречный вопрос (но уже не к вам, а скорее к ТС) : какой смысл в использовании такой конструкции? Грубо говоря, какая конечная цель?

 

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


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

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

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

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

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

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

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

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

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

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