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

асинхронный INTEL FIFO

Форумчане, добрый день. Всех с наступающим.

Подскажите, кто знает точно. Если я генерирую асинхронный ip core FIFO в квартусе, выбираю 2 sync stage. Через сколько тактов, поданные на вход данные, станут доступными на выходе? Может ли это число быть не константным? 
Пока писал, возник вопрос еще один, по какому клоку тогда считать кол-во тактов =)

Заранее спасибо

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


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

при генерации создаются же вейвформы работы вашего фифо по чтению и записи

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


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

2 minutes ago, des00 said:

при генерации создаются же вейвформы работы вашего фифо по чтению и записи

не знал, сейчас поищу

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


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

49 минут назад, new123 сказал:

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

А какая вам разница? У вас же есть сигнал empty. Вот по нему и смотрите.

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


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

15 minutes ago, andrew_b said:

А какая вам разница? У вас же есть сигнал empty. Вот по нему и смотрите.

конечно я не делаю подгонку по кол-ву тактов, я смотрю empty. Хотелось кое что с оптимизировать. Для меня стало сюрпризом такой долгий синхрон.

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


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

Если нужна быстрая передача первого слова на выход FIFO, тогда используйте опцию First Word Fall Through (название от Xilinx'а, как у Альтеры я не знаю), тогда первое слово будет проваливаться за такт на выход и сбрасывать empty

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


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

9 minutes ago, Nick_K said:

Если нужна быстрая передача первого слова на выход FIFO, тогда используйте опцию First Word Fall Through (название от Xilinx'а, как у Альтеры я не знаю), тогда первое слово будет проваливаться за такт на выход и сбрасывать empty

о спасибо. Show Ahead скорее всего на альтере называется

Изменено пользователем new123

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


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

1 hour ago, new123 said:

о спасибо. Show Ahead скорее всего на альтере называется

флаги все равно синхронизировать ;)

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


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

Приветствую!

6 hours ago, new123 said:

Подскажите, кто знает точно. Если я генерирую асинхронный ip core FIFO в квартусе, выбираю 2 sync stage. Через сколько тактов, поданные на вход данные, станут доступными на выходе? Может ли это число быть не константным? 

Для асинхронного FIFO  константной задержки появления данных на выходе быть не может. Фактически вы можете получить джитер как минимум в 1 такт частоты чтения. Поэтому закладывать в дизайне  привязки  к задержкам  FIFO плохая идея.    

1 hour ago, Nick_K said:

если нужна быстрая передача первого слова на выход FIFO, тогда используйте опцию First Word Fall Through

First Word Fall Through FIFO общую задержку появления для данных (со входа FIFO на выход) как правило не уменьшает, а чаще даже увеличивает -  так как строится оно на базе обычного FIFO плюс дополнительная схема предварительного чтения.

Удачи! Rob.   

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


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

58 minutes ago, RobFPGA said:

Поэтому закладывать в дизайне  привязки  к задержкам  FIFO плохая идея.

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

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

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


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

14 hours ago, new123 said:

Просто наделал у себя синхронизаторов, в совокупе они у меня много тактов отказывается отжирают

Так Вы FIFO Используете как синхронизатор данных для разных доменов или это и есть буффер? Если синхронизатор - можно поискать разные техники синхронизации и использовать их. Если ещё и буффер, тогда действительно выбор невелик

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


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

1 hour ago, Nick_K said:

Если синхронизатор - можно поискать разные техники синхронизации и использовать их.

в каких то случаях да, как синхронизатор. Не сказать бы конечно что я много дней посвятил этому вопросу, часа 4 полазил по известным сайтам, по изучал примеры, по изучал вопрос. Все примеры сводят к синхрону 1-2-3 битов. А вот чтобы многобитность, все мысли сводились к готовым fifo

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


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

14 minutes ago, new123 said:

 А вот чтобы многобитность, все мысли сводились к готовым fifo

если потоковая обработка, то да. А если блочная, то на памяти проще будет

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


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

Приветствую!

2 hours ago, Nick_K said:

Если синхронизатор - можно поискать разные техники синхронизации и использовать их

Особой разницы по задержкам в синхронизаторах нет.Так как в основном это задержки на устранение метастабильности.  FIFO это тот же самый handshake синхронизатор  с "растянутым" буфером на N слов. Если стоит задача уменьшить общую latency надо грамотно "размазывать" обработку по тракту  пытаясь выгадать такт-другой за счет предварительных  вычислений.    

Удачи! Rob.

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


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

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

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

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

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

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

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

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

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

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