new123 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба Форумчане, добрый день. Всех с наступающим. Подскажите, кто знает точно. Если я генерирую асинхронный ip core FIFO в квартусе, выбираю 2 sync stage. Через сколько тактов, поданные на вход данные, станут доступными на выходе? Может ли это число быть не константным? Пока писал, возник вопрос еще один, по какому клоку тогда считать кол-во тактов =) Заранее спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба при генерации создаются же вейвформы работы вашего фифо по чтению и записи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 2 minutes ago, des00 said: при генерации создаются же вейвформы работы вашего фифо по чтению и записи не знал, сейчас поищу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 49 минут назад, new123 сказал: Через сколько тактов, поданные на вход данные, станут доступными на выходе? А какая вам разница? У вас же есть сигнал empty. Вот по нему и смотрите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 15 minutes ago, andrew_b said: А какая вам разница? У вас же есть сигнал empty. Вот по нему и смотрите. конечно я не делаю подгонку по кол-ву тактов, я смотрю empty. Хотелось кое что с оптимизировать. Для меня стало сюрпризом такой долгий синхрон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба Если нужна быстрая передача первого слова на выход FIFO, тогда используйте опцию First Word Fall Through (название от Xilinx'а, как у Альтеры я не знаю), тогда первое слово будет проваливаться за такт на выход и сбрасывать empty Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 (изменено) · Жалоба 9 minutes ago, Nick_K said: Если нужна быстрая передача первого слова на выход FIFO, тогда используйте опцию First Word Fall Through (название от Xilinx'а, как у Альтеры я не знаю), тогда первое слово будет проваливаться за такт на выход и сбрасывать empty о спасибо. Show Ahead скорее всего на альтере называется Изменено 26 декабря, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 1 hour ago, new123 said: о спасибо. Show Ahead скорее всего на альтере называется флаги все равно синхронизировать ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба Приветствую! 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 26 декабря, 2019 Опубликовано 26 декабря, 2019 · Жалоба 58 minutes ago, RobFPGA said: Поэтому закладывать в дизайне привязки к задержкам FIFO плохая идея. я написал чуть выше, я не привязываюсь. Я на этом попался давно, больше так не делаю. Просто наделал у себя синхронизаторов, в совокупе они у меня много тактов отказывается отжирают. Я думал, подал и сразу забрал на выходе, да чет так не выходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 14 hours ago, new123 said: Просто наделал у себя синхронизаторов, в совокупе они у меня много тактов отказывается отжирают Так Вы FIFO Используете как синхронизатор данных для разных доменов или это и есть буффер? Если синхронизатор - можно поискать разные техники синхронизации и использовать их. Если ещё и буффер, тогда действительно выбор невелик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 1 hour ago, Nick_K said: Если синхронизатор - можно поискать разные техники синхронизации и использовать их. в каких то случаях да, как синхронизатор. Не сказать бы конечно что я много дней посвятил этому вопросу, часа 4 полазил по известным сайтам, по изучал примеры, по изучал вопрос. Все примеры сводят к синхрону 1-2-3 битов. А вот чтобы многобитность, все мысли сводились к готовым fifo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба 14 minutes ago, new123 said: А вот чтобы многобитность, все мысли сводились к готовым fifo если потоковая обработка, то да. А если блочная, то на памяти проще будет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 27 декабря, 2019 Опубликовано 27 декабря, 2019 · Жалоба Приветствую! 2 hours ago, Nick_K said: Если синхронизатор - можно поискать разные техники синхронизации и использовать их Особой разницы по задержкам в синхронизаторах нет.Так как в основном это задержки на устранение метастабильности. FIFO это тот же самый handshake синхронизатор с "растянутым" буфером на N слов. Если стоит задача уменьшить общую latency надо грамотно "размазывать" обработку по тракту пытаясь выгадать такт-другой за счет предварительных вычислений. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться