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

Влияние асинхронного сброса на Fmax

В ПЛИСах сигналы от триггера к триггеру не по проводам передаются... там и так куча логики - переносы, коммутаторы рядов и колонн, таблицы просмотра, наконец. Поэтому на второй триггер сигнал придет с нормальными логическими уровнями (с очень большой вероятностью). Но когда первый триггер начнет выходить из метастабильного состояния, сигнал на входе второго триггера, возможно, начнет переключаться в другое состояние (если сначала был не в том). Длительность этого переключения небольшая (поэтому и вероятность, что второй триггер словит это переключение и войдет в метастабильное состояние, мала). Задержка, создаваемая логикой, ничего не меняет - просто момент переключения сигнала на входе второго триггера сдвинется по времени. Разве что за счет "нормализации фронта" сама длительность переключения будет короче, меньше вероятность его словить.

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


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

В ПЛИСах сигналы от триггера к триггеру не по проводам передаются...

От же, не поверите навреное... По проводам... Коммутаторы не имеют усиления, они не буферы, они как низкоомные резисторы. И простейший путь может быть триггер->ключ->провод->ключ->триггер, по такому пути метастабильное состояние передастся без особых изменений.

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


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

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

 

Сигнал от одного триггера до другого идти дольше чем время между фронтами клока не может, значит чтобы все работало

(время распространения + время перехода) должно быть меньше клока, чем меньше время распространение, тем больше запас на время перехода.

 

Добавление схем время распространения увеличивает, а время перехода уменьшает, и вот тут вопрос вклада, насколько уменьшается переход и на сколько увеличивается распространение. Сдается мне что время распространения растет быстрее чем уменьшается время перехода, поэтому на быстрых клоках предпочтительнее его минимизировать, оставив все на переход.

 

 

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


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

Буфер уменьшает время, но сдвигает его, задерживая сигнал.

 

Библиотечных синхронизаторов я не видел. По крайней мере в библиотеках SMIC и TSMC таких ячеек нет, поэтому судить о "библиотечных синхронизаторах" я не берусь. Почему в стандартных рекомендациях так рекомендуют делать - я писал уже ранее, повторяться не хочу.

 

PS

Смутно я припоминаю сравнение по метастабильности buffered latch vs unbuffered latch, так вот там графики замеров пересекались, на быстрых тактовых выигрывали unbuffered, на медленных - buffered. Статью я эту найти пока не смог, забыл как называется. Но мне то, главное, что я суть запомнил, что buffered хорошо, когда тактовые не на пределе, и для больших fanout-ов.

вопрос, близок к теме:

какие грабли могут вылезти если на обычный пин FPGA подавать сигнал (прямо с комапаратора LM239, питание 3.3в) с медленным плавным фронтом/спадом +-250нс ?

Важно выделить переход 1-0, быстродействие не важно. Хватит ли 3 тригеров?

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


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

какие грабли могут вылезти если на обычный пин FPGA подавать сигнал (прямо с комапаратора LM239, питание 3.3в) с медленным плавным фронтом/спадом +-250нс ?

Важно выделить переход 1-0, быстродействие не важно. Хватит ли 3 тригеров?

грабля, да она и особо не грабля, - повышенный сквозняк во входном буфере, повышенное потребление в этом месте и нагрев. да и 250 нс это IMHO не слишком медленно, для медленного сигнала вполне нормально. Может быть еще дребезг на фронте, если тактовая щелкает быстро. Количество триггеров определяется тактовой частотой, 3 оправдано уже для тактовых >150МГц примерно (зависит еще от скорости самой ПЛИС), Вам скорее всего двух за глаза.

 

В идеале, конечно, лучше сделать триггер шмитта (поставить внешний, включить в ПЛИС, если есть, или сваять из пары резисторов и еще одного выхода ПЛИС)

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


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

У Альтеры есть BusHold, типа триггера Шмитта. Или нет? Это же для выходов. :rolleyes:

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


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

У Альтеры есть BusHold, типа триггера Шмитта. Или нет? Это же для выходов. :rolleyes:

 

Для всего он, для входов тоже. Если среда не захочет его для входа включить - можно ее обмануть, сделав выход в третьем состоянии :) Можно и его использовать как триггер шмитта, подав сигнал с компаратора через резистор.

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


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

грабля, да она и особо не грабля, - повышенный сквозняк во входном буфере, повышенное потребление в этом месте и нагрев. да и 250 нс это IMHO не слишком медленно, для медленного сигнала вполне нормально. Может быть еще дребезг на фронте, если тактовая щелкает быстро. Количество триггеров определяется тактовой частотой, 3 оправдано уже для тактовых >150МГц примерно (зависит еще от скорости самой ПЛИС), Вам скорее всего двух за глаза.

 

В идеале, конечно, лучше сделать триггер шмитта (поставить внешний, включить в ПЛИС, если есть, или сваять из пары резисторов и еще одного выхода ПЛИС)

Тактовая 50МГц, поставлю тогда 2.

Да начальство просто не хочет переделывать плату, разработчики схемы и платы тоже, хотят все решить в FPGA (Cyclone 3). Я предлагал внешний триггер Шмидта, нашли подходящий корпус да и место найти можно. Но политика партии непоколебима. Я не люблю "колхоз" если его можно избежать, но некоторых хлебом не корми :) В один из последних случаев мне выкручивали руки делать генератор тактовой внутри MachXO2 на "инверторах", а с наружи только кристал и обвязка.Естесвенно оно работало, только не всегда и не при всех температурах заводилось, а если и заводилось, то джиттер был слишком большой. В результате пошаманив с недели два, переделали плату, поставили внешний генератор.

Все решения имеют право быть, вопрос только в цене последствий.

 

Для всего он, для входов тоже. Если среда не захочет его для входа включить - можно ее обмануть, сделав выход в третьем состоянии :) Можно и его использовать как триггер шмитта, подав сигнал с компаратора через резистор.

О, спасибо! Даже не подумал о такой возможности.

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


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

ну реализация триггера шмитта на резисторах и бусхолдере или доп. пине ПЛИС это не столь значительный колхоз, как генератор :) Работать будет по крайней мере, при всех температурах и питаниях.

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


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

а как делается триггер шмита из резистора и до пина ПЛИС?

 

на пин выводить что защелкнул на входе, и между ними резистор?

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


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

в ПЛИС реализуется буфер обычный, никаких защелок, assign out = in; сигнал подается на in через один резистор, меньшего номинала, а in соединяется с out резистором большего номинала. Бусхолдер, если он есть, то он уже сам по себе является таким буфером как бы вместе с резистором.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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