|
|
  |
Синхронный ресет, Xilinx |
|
|
|
Dec 11 2012, 11:53
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Здравствуйте. Кто может уверенно сказать, можно ли делать так, как показано на схеме 2.
Кристалл V6. Использован вход синхронного ресета. Не возникнет ли проблем в дальнейшем? Да и вообще, есть ли какая либо разница на железном уровне между синхронным и асинхронным входами ресета? Или "синхронность" лишь заставляет роутер просчитывать путь так, как и для обычных сигналов.
|
|
|
|
|
Dec 11 2012, 12:22
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(TRILLER @ Dec 11 2012, 15:53)  Да и вообще, есть ли какая либо разница на железном уровне между синхронным и асинхронным входами ресета? Эээ... а вход-то в Slice - один... а способ его использования (синхронный/асинхронный) задаётся атрибутом - можете всё сами разглядеть при помощи FPGA Editor'a. А т.к. вход один на весь Slice, то он заходит на все триггеры в Slice. Соответственно, если в схеме нет триггеров, которым нужен такой набор управляющих сигналов (CLK, CE, RST), то тогда неиспользованные в этом Slice триггеры не смогут быть использованы. Поэтому уникальные наборы управляющих сигналов необходимо использовать с умом.
|
|
|
|
|
Dec 11 2012, 12:59
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Цитата Синхронный сброс - по факту является маской по И входных данных. Этот факт реализован непосредственно в самом триггере? Ни на один из входов лата этот сигнал не поподает. Цитата(Boris_TS @ Dec 11 2012, 16:22)  Эээ... а вход-то в Slice - один... а способ его использования (синхронный/асинхронный) задаётся атрибутом - можете всё сами разглядеть при помощи FPGA Editor'a. Вход в слайс то один, а вот в триггеры уже 2, стало быть между ними есть какая-то разница. В общем, пришёл к выводу, что схему 2 использовать можно, так как Симплифай(провёл эксперимент) сам заводит выход лата на синхронный ресет, для уменьшения слоёв логики. А люди, его делавшие, скорее всего разобрались с этим вопросом..
|
|
|
|
|
Dec 11 2012, 14:18
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(TRILLER @ Dec 11 2012, 16:59)  Этот факт реализован непосредственно в самом триггере? Ни на один из входов лата этот сигнал не поподает. Ответы находятся в FPGA Editor'е, которым я настоятельно рекомендовал посмотреть Ваш кристалл, чтобы Вы не писали ахинею: Цитата(TRILLER @ Dec 11 2012, 16:59)  Вход в слайс то один, а вот в триггеры уже 2, стало быть между ними есть какая-то разница. Ну вот расскажите мне: где тут "второй вход сброса в триггер" ? Я его, почему-то в упор не вижу...
Зато вижу тут атрибут RESET TYPE: SYNC/ASYNC, о котором и писал ренее.
|
|
|
|
|
Dec 12 2012, 09:28
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Цитата(Boris_TS @ Dec 11 2012, 18:18)  Ну вот расскажите мне: где тут "второй вход сброса в триггер" ? Я его, почему-то в упор не вижу... Да, я был не прав.. Цитата Почитайте вот эту, ставшую уже классикой, статью Кена Чапмена о вреде и пользе разных типов ресета. Полезная статья. Вот только ни в одном примере на вход SR триггера он не заводит выход лата. Меня конкретно это интересовало. Но, поверю симплифаю и попробую это сделать)
|
|
|
|
|
Dec 12 2012, 09:55
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(TRILLER @ Dec 12 2012, 16:28)  Полезная статья. Вот только ни в одном примере на вход SR триггера он не заводит выход лата. Меня конкретно это интересовало. Но, поверю симплифаю и попробую это сделать) А зачем заводить выход LUTа? Это наверняка отрицательно скажется на тайминге. Правильно выход LUTa защёлкнуть в триггере, а потом уже подавать на SR. Это приведёт к задержке на 1 такт, но в большинстве случаев это некритично.
|
|
|
|
|
Dec 12 2012, 11:34
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(TRILLER @ Dec 12 2012, 13:28)  Вот только ни в одном примере на вход SR триггера он не заводит выход лата. Меня конкретно это интересовало. Да, можно подавать данные с выхода LUT на синхронный вход SR триггеров. Но только на синхронный SR, если не хотите поиметь кучу проблем с асинхронщиной. Более того, при синтезе сложных логических функций синтезаторы периодически сами синтезируют схемы в которых используются D, CE и SR, на которые подаются сигналы с выходов LUT'ов. Цитата(Bad0512 @ Dec 12 2012, 13:55)  А зачем заводить выход LUTа? Это наверняка отрицательно скажется на тайминге. Правильно выход LUTa защёлкнуть в триггере, а потом уже подавать на SR. Это приведёт к задержке на 1 такт, но в большинстве случаев это некритично. Да, скажется, но практически незаметно. Но зато может позволить реализовать очень вычурную логическую функцию с Logic Level = 1. Единственным существенным (для Xilinx V-5/S-6 и более новых) является наличие уникального набора CE, SR, CLK, что с большой долей вероятности приводит к невозможности использования остальных триггеров в Slice. Но, иногда, даже такие жертвы - оправданы.
|
|
|
|
|
Dec 12 2012, 12:38
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Цитата(Boris_TS @ Dec 12 2012, 15:34)  Да, можно подавать данные с выхода LUT на синхронный вход SR триггеров. Но только на синхронный SR, если не хотите поиметь кучу проблем с асинхронщиной. Это именно то, что я хотел узнать - не будет ли проблем) Цитата(Boris_TS @ Dec 12 2012, 15:34)  Да, скажется, но практически незаметно. В 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". Выходит, что будет даже лучше по времянке. Или я ошибаюсь?
|
|
|
|
|
Dec 12 2012, 14:09
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(TRILLER @ Dec 12 2012, 16:38)  В 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, да и он ошибается значительно реже, чем сам разработчик.
|
|
|
|
|
Dec 12 2012, 14:41
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Boris_TS @ Dec 12 2012, 18:34)  Да, скажется, но практически незаметно. Но зато может позволить реализовать очень вычурную логическую функцию с 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 - наибольшие задержки. На высоких частотах это может быть проблемой.
|
|
|
|
|
Dec 15 2012, 10:14
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Bad0512 @ Dec 12 2012, 18:41)  Всё не так просто... Да чего ж тут сложного-то ? Вы всего лишь утверждаете, что с pipelining’ом схема сможет работать на большей частоте. Ну, сможет - и что ? (Этот факт, как раз, никто и не оспаривал) Но у pipelining есть свои недостатки, поэтому он не везде применим. Первичный-то вопрос стоял не в целесообразности применения pipelining'а, а «как сделать так, чтобы было побыстрее, да еще и без pipelining». И, кстати, схемы без pipelining'а, как правило, обладают меньшей латентностью (в нс), чем работающие на большей частоте pipeline схемы. Посему, в каждом конкретном случае приходится выбирать, что критичнее: латентность или частота - универсального ответа - нет.
|
|
|
|
|
Dec 16 2012, 08:21
|
Знающий
   
Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650

|
Цитата(Boris_TS @ Dec 15 2012, 17:14)  Да чего ж тут сложного-то ? Вы всего лишь утверждаете, что с pipelining’ом схема сможет работать на большей частоте. Ну, сможет - и что ? (Этот факт, как раз, никто и не оспаривал) Но у pipelining есть свои недостатки, поэтому он не везде применим. Первичный-то вопрос стоял не в целесообразности применения pipelining'а, а «как сделать так, чтобы было побыстрее, да еще и без pipelining». И, кстати, схемы без pipelining'а, как правило, обладают меньшей латентностью (в нс), чем работающие на большей частоте pipeline схемы. Посему, в каждом конкретном случае приходится выбирать, что критичнее: латентность или частота - универсального ответа - нет. Ок, видимо я не до конца понял постановку задачи. Я думал надо сделать "быстро", а оказывается надо сделать "_вот_таким_странным_способом_", да вдобавок ещё и "быстро". Тогда встречный вопрос (но уже не к вам, а скорее к ТС) : какой смысл в использовании такой конструкции? Грубо говоря, какая конечная цель?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|