dinam 1 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба 31 минуту назад, DuHast сказал: Все входные и выходные сигналы крайне желательно пропускать через fast input/output trigger'ы, расположенные в пинах ПЛИС Почему? Первый раз об этом слышу. Я, например, когда задаю входные/выходные констрейны, полностью полагаюсь на Quartus в этом плане. Он сам решает какие сигналы как пропускать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DuHast 0 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба Выходные fast триггеры выравнивают сигналы на шине данных по фронту тактового сигнала перед выходом из плис. Если у вас в схеме есть триггеры то квартус, скорее всего сам разместится их в пинах, т.е. в фаст тригерах. Но если выход вашей схемы логика, то квартус просто может не справиться с вашими констрейнами. С входами ситуация аналогичная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 6 сентября, 2019 Опубликовано 6 сентября, 2019 · Жалоба 35 минут назад, DuHast сказал: Выходные fast триггеры выравнивают сигналы на шине данных по фронту тактового сигнала перед выходом из плис. Если у вас в схеме есть триггеры то квартус, скорее всего сам разместится их в пинах, т.е. в фаст тригерах. Но если выход вашей схемы логика, то квартус просто может не справиться с вашими констрейнами. С входами ситуация аналогичная. Пока не сталкивался с тем, что Quartus не использует входные/выходные регистры когда по времянке не укладывается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DuHast 0 7 сентября, 2019 Опубликовано 7 сентября, 2019 · Жалоба On 9/6/2019 at 8:46 AM, dinam said: Пока не сталкивался с тем, что Quartus не использует входные/выходные регистры когда по времянке не укладывается. ТС писал, что у него входной сигнал заведён прямиком на ФИФО, т.е. между входным пином и входным триггером ФИФО ничего нет. В такой ситуации Fast Input Pin задействованы не будут, а время задержки входного сигнала будет сильно зависеть от того, где будет расположена в ФИФО внутри ПЛИС. Конечно, правильно расставленные констрейны помогут квартусу сделать всё корректно, но защёлкивание входной шины в Fast триггерах помогут ему гораздо больше. Хуже ситуация, когда по неопытности пишут код типа a <= input_1 and input_2 т.е. входные пины сперва идут на логику. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба В 07.09.2019 в 13:46, DuHast сказал: Хуже ситуация, когда по неопытности пишут код типа a <= input_1 and input_2 т.е. входные пины сперва идут на логику. Наверно, я ещё не совсем опытен. Но не вижу в этом никакого криминала. Если сигналы низкочастотные, то пусть Quartus разводит сигналы как хочет. Если высокочастотные, то констрейны подскажут как развести. Или Quartus опять напортачит? Ну и приведите по вашему правильный код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DuHast 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба 2 hours ago, dinam said: Ну и приведите по вашему правильный код. В процессе, тактируемом клоком: In1 <= inpit_1; In2 <= input_2; a <= In1 and In2; Сигналы input, сперва попадут на триггеры(которые квартус, скорее всего, сделает fast), а уже потом на логику. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 9 сентября, 2019 Опубликовано 9 сентября, 2019 · Жалоба On 9/5/2019 at 3:26 PM, Lmx2315 said: ..а как вы узнаёте что данные сбойные, а не такие пришли? вывожу по udp. Проблема, видимо не во входах. Смотрел Signal Tap'ом на входе fifo и все стоит ровно. Причем если я генерирую данные на самой ПЛИС и завожу их на FIFO, то все отлично. Но если завожу через ножки(используя тот же модуль генерации данных, только на другой точно такой же плате), то в последовательности появляется лишние 2 байта. Передаю я 16-битный счетчик. FIFO вход 16 бит, выход 8. Ощущение будто данные из FIFO неправильно забираются. Причем это происходит именно тогда, когда данные идут снаружи платы, а не генерируются внутри. И происходит это строго в определенный момент, когда младший байт доходит до FF, например: ...FD05 FE05 FF05 007E 0006 0106. Откуда это 007E вылезает непонятно, причем эти 2 байта всегда разные. На вход FIFO все приходит правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DuHast 0 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба Давайте уточним. Проект где вы стоите SignalTap на входе ФИФО и проект, когда вы видите ошибки - это один и тот же проект? Или вы увидели ошибки, собрали новый проект с SignalTap и увидели, что на входе ФИФО всё ок? И ещё, было бы не плохо посмотреть временные диаграммы на входе и выходе ФИФО при переходе через FF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 3 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба 16 часов назад, excly сказал: FIFO вход 16 бит, выход 8. не пойму как вы данные проверяете: Вы заполняете фифо полностью , останавливаете процесс и выкачиваете его? Или у вас поток, причём на выходе (раз ширина фифо сужается) удвоенная входная частота? На входе было 50 , а на выходе 100 МГц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба 43 minutes ago, Lmx2315 said: не пойму как вы данные проверяете: Вы заполняете фифо полностью , останавливаете процесс и выкачиваете его? Или у вас поток, причём на выходе (раз ширина фифо сужается) удвоенная входная частота? На входе было 50 , а на выходе 100 МГц? заполнение FIFO идет на 50МГЦ, но не непрерывно, а с паузами между посылками(так было изначально. сейчас частота 5МГЦ, но это ничего не изменило). как только в FIFO набирается количество слов, равное размеру пакета UDP, начинается отправка сначала заголовка, а потом и самих данных, которые и находятся в FIFO на частоте 125МГц. Той же частоте, на которой работает ethernet PHY. процесс заполнения не останавливается. 3 hours ago, DuHast said: Давайте уточним. Проект где вы стоите SignalTap на входе ФИФО и проект, когда вы видите ошибки - это один и тот же проект? Или вы увидели ошибки, собрали новый проект с SignalTap и увидели, что на входе ФИФО всё ок? И ещё, было бы не плохо посмотреть временные диаграммы на входе и выходе ФИФО при переходе через FF это один и тот же проект. Частота на выходе FIFO 125Мгц. SignalTap получилось завести на 500Мгц, поэтому временная диаграмма на выходе будет не сильно то и точная. Хочу еще раз обратить внимание, что если данные генерируются на этой же ПЛИС, то никаких ошибок не происходит Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 10 сентября, 2019 Опубликовано 10 сентября, 2019 (изменено) · Жалоба 5 hours ago, Lmx2315 said: не пойму как вы данные проверяете: Вы заполняете фифо полностью , останавливаете процесс и выкачиваете его? Или у вас поток, причём на выходе (раз ширина фифо сужается) удвоенная входная частота? На входе было 50 , а на выходе 100 МГц? посмотрел выход той платы, которая генерирует счетчик, на анализаторе и заметил, что в тот момент, когда FF превращается в 00, на линии клока появляется лишний фронт. Видимо так и появляются непонятные данные в FIFO. Вопрос в том, как это победить? Изменено 10 сентября, 2019 пользователем excly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба 5 минут назад, excly сказал: на линии клока появляется лишний фронт. Видимо так и появляются непонятные данные в FIFO. Вопрос в том, как это победить? А как сделано согласование на линии клока? И уж если есть возможность эти клоки "щупать" импульсами " 500Мгц", то кто же мешает сразу сделать CDC и слегка фильтрануть "клоки"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 3 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба 7 минут назад, excly сказал: Вопрос в том, как это победить? Подтяните клоковый сигнал, на входе вашей плисины, к нулю килоомным резистором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
excly 0 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба 33 minutes ago, Lmx2315 said: Подтяните клоковый сигнал, на входе вашей плисины, к нулю килоомным резистором. на той ПЛИС, которая генерирует или той, которая принимает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 3 10 сентября, 2019 Опубликовано 10 сентября, 2019 · Жалоба ..на той что принимает. А как физически выглядит соединение между источником сигнала и приёмником? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться