ViKo 1 3 февраля, 2014 Опубликовано 3 февраля, 2014 · Жалоба В ПЛИСах сигналы от триггера к триггеру не по проводам передаются... там и так куча логики - переносы, коммутаторы рядов и колонн, таблицы просмотра, наконец. Поэтому на второй триггер сигнал придет с нормальными логическими уровнями (с очень большой вероятностью). Но когда первый триггер начнет выходить из метастабильного состояния, сигнал на входе второго триггера, возможно, начнет переключаться в другое состояние (если сначала был не в том). Длительность этого переключения небольшая (поэтому и вероятность, что второй триггер словит это переключение и войдет в метастабильное состояние, мала). Задержка, создаваемая логикой, ничего не меняет - просто момент переключения сигнала на входе второго триггера сдвинется по времени. Разве что за счет "нормализации фронта" сама длительность переключения будет короче, меньше вероятность его словить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 3 февраля, 2014 Опубликовано 3 февраля, 2014 · Жалоба В ПЛИСах сигналы от триггера к триггеру не по проводам передаются... От же, не поверите навреное... По проводам... Коммутаторы не имеют усиления, они не буферы, они как низкоомные резисторы. И простейший путь может быть триггер->ключ->провод->ключ->триггер, по такому пути метастабильное состояние передастся без особых изменений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 3 февраля, 2014 Опубликовано 3 февраля, 2014 · Жалоба сдвиг момента переключения приближает его к быстрому фронту клока. По первому фронту клока началась лажа на триггере, потом она успокоилась, и вся эта байда поехала по всем задержкам ко второму, и чем цепь короче, тем быстрее второй триггер получит на вход уже нормальное состояние. Сигнал от одного триггера до другого идти дольше чем время между фронтами клока не может, значит чтобы все работало (время распространения + время перехода) должно быть меньше клока, чем меньше время распространение, тем больше запас на время перехода. Добавление схем время распространения увеличивает, а время перехода уменьшает, и вот тут вопрос вклада, насколько уменьшается переход и на сколько увеличивается распространение. Сдается мне что время распространения растет быстрее чем уменьшается время перехода, поэтому на быстрых клоках предпочтительнее его минимизировать, оставив все на переход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alxkon 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба Буфер уменьшает время, но сдвигает его, задерживая сигнал. Библиотечных синхронизаторов я не видел. По крайней мере в библиотеках SMIC и TSMC таких ячеек нет, поэтому судить о "библиотечных синхронизаторах" я не берусь. Почему в стандартных рекомендациях так рекомендуют делать - я писал уже ранее, повторяться не хочу. PS Смутно я припоминаю сравнение по метастабильности buffered latch vs unbuffered latch, так вот там графики замеров пересекались, на быстрых тактовых выигрывали unbuffered, на медленных - buffered. Статью я эту найти пока не смог, забыл как называется. Но мне то, главное, что я суть запомнил, что buffered хорошо, когда тактовые не на пределе, и для больших fanout-ов. вопрос, близок к теме: какие грабли могут вылезти если на обычный пин FPGA подавать сигнал (прямо с комапаратора LM239, питание 3.3в) с медленным плавным фронтом/спадом +-250нс ? Важно выделить переход 1-0, быстродействие не важно. Хватит ли 3 тригеров? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба какие грабли могут вылезти если на обычный пин FPGA подавать сигнал (прямо с комапаратора LM239, питание 3.3в) с медленным плавным фронтом/спадом +-250нс ? Важно выделить переход 1-0, быстродействие не важно. Хватит ли 3 тригеров? грабля, да она и особо не грабля, - повышенный сквозняк во входном буфере, повышенное потребление в этом месте и нагрев. да и 250 нс это IMHO не слишком медленно, для медленного сигнала вполне нормально. Может быть еще дребезг на фронте, если тактовая щелкает быстро. Количество триггеров определяется тактовой частотой, 3 оправдано уже для тактовых >150МГц примерно (зависит еще от скорости самой ПЛИС), Вам скорее всего двух за глаза. В идеале, конечно, лучше сделать триггер шмитта (поставить внешний, включить в ПЛИС, если есть, или сваять из пары резисторов и еще одного выхода ПЛИС) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба У Альтеры есть BusHold, типа триггера Шмитта. Или нет? Это же для выходов. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба У Альтеры есть BusHold, типа триггера Шмитта. Или нет? Это же для выходов. :rolleyes: Для всего он, для входов тоже. Если среда не захочет его для входа включить - можно ее обмануть, сделав выход в третьем состоянии :) Можно и его использовать как триггер шмитта, подав сигнал с компаратора через резистор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alxkon 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба грабля, да она и особо не грабля, - повышенный сквозняк во входном буфере, повышенное потребление в этом месте и нагрев. да и 250 нс это IMHO не слишком медленно, для медленного сигнала вполне нормально. Может быть еще дребезг на фронте, если тактовая щелкает быстро. Количество триггеров определяется тактовой частотой, 3 оправдано уже для тактовых >150МГц примерно (зависит еще от скорости самой ПЛИС), Вам скорее всего двух за глаза. В идеале, конечно, лучше сделать триггер шмитта (поставить внешний, включить в ПЛИС, если есть, или сваять из пары резисторов и еще одного выхода ПЛИС) Тактовая 50МГц, поставлю тогда 2. Да начальство просто не хочет переделывать плату, разработчики схемы и платы тоже, хотят все решить в FPGA (Cyclone 3). Я предлагал внешний триггер Шмидта, нашли подходящий корпус да и место найти можно. Но политика партии непоколебима. Я не люблю "колхоз" если его можно избежать, но некоторых хлебом не корми :) В один из последних случаев мне выкручивали руки делать генератор тактовой внутри MachXO2 на "инверторах", а с наружи только кристал и обвязка.Естесвенно оно работало, только не всегда и не при всех температурах заводилось, а если и заводилось, то джиттер был слишком большой. В результате пошаманив с недели два, переделали плату, поставили внешний генератор. Все решения имеют право быть, вопрос только в цене последствий. Для всего он, для входов тоже. Если среда не захочет его для входа включить - можно ее обмануть, сделав выход в третьем состоянии :) Можно и его использовать как триггер шмитта, подав сигнал с компаратора через резистор. О, спасибо! Даже не подумал о такой возможности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба ну реализация триггера шмитта на резисторах и бусхолдере или доп. пине ПЛИС это не столь значительный колхоз, как генератор :) Работать будет по крайней мере, при всех температурах и питаниях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба а как делается триггер шмита из резистора и до пина ПЛИС? на пин выводить что защелкнул на входе, и между ними резистор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба в ПЛИС реализуется буфер обычный, никаких защелок, assign out = in; сигнал подается на in через один резистор, меньшего номинала, а in соединяется с out резистором большего номинала. Бусхолдер, если он есть, то он уже сам по себе является таким буфером как бы вместе с резистором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться