Что такое джиттер асинхронного FIFO?

У меня есть асинхронный FIFO (в Stratix V FPGA) с двумя асинхронными часами чтения и записи с одинаковой частотой 100 МГц. Насколько я понимаю, асинхронные FIFO имеют двухрегистровую стадию ресинхронизации.

Поскольку относительные фазы двух часов могут отклоняться до 10 нс, джиттер FIFO составляет не менее 10 нс. Я прав? Является ли джиттер асинхронного FIFO хотя бы одним тактовым циклом? Это больше, чем один такт?

Ответы (2)

Асинхронные FIFO характеризуются своей статической задержкой , выражаемой количеством полных циклов в исходном домене (до пересечения) и в целевом домене. Пересечение само по себе вносит дрожание, если нет точного соотношения фазы и частоты между двумя часами. В вашем примере вы говорите, что фаза блуждает, для этого тактовая частота должна немного отличаться. Вы правы в том, что это вводит 0-1 дополнительный цикл сверх статической задержки, в зависимости от того, приземляются ли сигналы асинхронного счетчика серого кода перед окном настройки (0) или попадают в следующий цикл (+1).

Статические значения для мегафункций dcfifo находятся в графическом интерфейсе Quartus Megafunction и зависят от установленных вами параметров — в противном случае вы можете измерить их в моделировании. Я думаю, что это 1 цикл до, 2 цикла после, поэтому 3 статических в режиме упреждения, так что в целом 30-40 нс для вашего случая.

Ответ на этот вопрос должен быть в техпаспорте производителя. Я знаю, что это большой документ, но я предлагаю вам покопаться в нем. Кроме того, джиттер — неподходящее слово для описания того, о чем вы говорите. Джиттер относится к случайным изменениям тактовой частоты на одном тактовом сигнале. То, о чем вы говорите, - это смещение часов (которое будет варьироваться в зависимости от джиттера двух часов, до 10 нс, как вы говорите). Я также скажу, что я думаю, что вы делаете именно то, для чего предназначен этот тип FIFO, так что вы, вероятно, в порядке.