|
Synchronized reset и разные тактовые, Каскад для внешнего сброса + разные тактовые |
|
|
|
Jan 12 2015, 07:38
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 5-12-11
Из: Киев
Пользователь №: 68 692

|
Есть каскад из двух регистров для внешнего сброса (обычная схема, как в справке квартуса здесь). Этот каскад тактируется clk1 и (соответственно со схемой) сбрасывать им можно регистры, которые тактируеются также clk1. Как правильно сбрасывать регистры, которые используют clk2, clk3 и т.д.? Для каждого clkX делать отдельный каскад?
|
|
|
|
|
Jan 12 2015, 08:39
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 5-12-11
Из: Киев
Пользователь №: 68 692

|
Цитата(des00 @ Jan 12 2015, 10:49)  да, при этом, если логика на разных тактовых связанная, желателен быть перенос сигнала сброса с каскада на каскад. В порядке возрастания частоты Спасибо. Вот так?
Получается, снятие сброса не будет "одновременным" для разных тактовых? Будет нарастающая задержка, которую надо компенсировать? Цитата на частотах повыше от 3 регистров. Это обязательно? Хотелось бы единообразия.
|
|
|
|
|
Jan 12 2015, 08:58
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(vea @ Jan 12 2015, 15:39)  Получается, снятие сброса не будет "одновременным" для разных тактовых? Будет нарастающая задержка, которую надо компенсировать? В сбросе опасен не момент сброса, а момент его снятия. Сброс всех доменов должен идти одновременно, а вот снятие по цепочке. И не надо там ничего компенсировать. Цепочка на рисунке у вас сделана правильно. Цитата Это обязательно? Хотелось бы единообразия. я обычно ставлю 4 ре регистра. в приложении неплохая статья. изучайте.
--------------------
|
|
|
|
|
Jan 12 2015, 09:16
|

Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 31-10-14
Из: Воронеж
Пользователь №: 83 452

|
Цитата(vea @ Jan 12 2015, 11:39)  Это обязательно? Хотелось бы единообразия. вообще эти все регистры для защиты от метастабильности. и чем выше частота, тем меньше каждому регистру в каскаде дается времени на выход из метастабильного состояния. обязательно ли? зависит от того, на сколько критичен для вас вариант получения метастабильного состояния. если в случае, когда схема сбойнула, есть возможность распознать это и подать дополнительный сброс -- можно и вообще не ставить никаких регистров по входу. но если нужна стабильность, то лучше везде ставить с запасом. Хотите сделать единобразно? -- сделайте запас везде. Цитата(des00 @ Jan 12 2015, 11:58)  я обычно ставлю 4 ре регистра. я обычно ставлю при f<100=2, 100..150=3, 150..200=4, 200..250=5. но всё это как-то на глазок, что в корне неправильно. Интересно было бы знать, а сколько в действительности-то требуется? т.к. лишняя задержка -- она не всегда приятна. Где бы посмотреть кривые вероятности метастабильного состояния на выходе в зависимости от частоты и количества регистров при условии, скажем, подачи "самого неудачно сдвинутого" относительно тактов сигнала на входе?
|
|
|
|
|
Jan 12 2015, 13:31
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 5-12-11
Из: Киев
Пользователь №: 68 692

|
Цитата(Bad0512 @ Jan 12 2015, 15:00)  Вот ещё полезная статья от Кена Чапмана до кучи. Интересно. И здесь как раз 4 регистра - с указанием, что их число определяет минимальную длину сброса (и только?). Но основная идея - нет особой необходимости в глобальном сбросе. Насколько это правильно? В pdf есть ссылка на "Get your Priorities Right – Make your Design Up to 50% Smaller" - там в том числе и про сброс, но с привязкой к конкретной реализацией в кристаллах Xilinx. Насколько это соответсnвует Альтеровским кристаллам?
Сообщение отредактировал vea - Jan 12 2015, 13:36
|
|
|
|
|
Jan 12 2015, 13:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(vea @ Jan 12 2015, 16:31)  Но основная идея - нет особой необходимости в глобальном сбросе. Насколько это правильно? Основная идея в том, что сбрасывать надо то, что действительно надо сбрасывать. Например, если у вас есть некие данные, сопровождаемые флагом valid, то сброс нужен только для valid, а для данных не нужен, ведь если valid не активен, то какая разница, какие данные.
|
|
|
|
|
Jan 12 2015, 15:27
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(des00 @ Jan 12 2015, 11:58)  В сбросе опасен не момент сброса, а момент его снятия. Сброс всех доменов должен идти одновременно, а вот снятие по цепочке. Только цепочка должна быть не тупо с повышением тактовой, а такой, как распространяется сигнал сброса, не привязываясь к частотам, то есть, оттуда, где он генерируется (например в домене "А"), он идет в домены "Б", и "В", а потом, обратно из доменов "Б" и "В", сигнал, говорящий домену "А", что все сбросилось, и можно начинать работать, то есть, снимать сигнал сброса с себя. Вот как-то примерно так. Направление, по большому счету, зависит от того, кто инициирует операцию, и кто на нее откликается - инициатор должен разрешаться только после того, как все остальные домены сбросились, независимо от того, у кого какая тактовая. А в подавляющем большинстве случаев, если в других доменах нет ничего, чтобы происходило без ведома домена-инициатора (каких-нибудь самостоятельных таймеров, и т.п.), достаточно резетнуть все эти домены асинхронным сигналом, и в домене-инициаторе выдержать задержку, гарантирующую, что в других доменах пройдет по два-три клока, и только потом начинать работать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|