Добрый день.
В наличии имеется самодельная плата с Cyclone V (5CEFA5F23C7N) на борту. Есть на плате одно не совсем очевидное решение:
сигнал 50 МГц (3,3 В) с генератора KXO-V97 (Geyer) подан одновременно на несколько клоковых входов 4 разных банков. Из этих банков три штуки запитаны 2,5 В, один 3,3 В.
Для проектирования используется среда Quartus II 15.0. Собран небольшой проект, где входная частота с одного из входов поступает на PLL, умножается до 300 МГц (или 250 МГц , или 450 МГц - пробовал разное), после чего поступает на обычный делитель и выводится на наружный пин. Делителем являются два подключенных последовательно DFF. Проблема в том, что частота не верно делится.
Например при выходе PLL 300 МГц (который я контролирую осциллографом) деленная на 4 частота составляет 25 МГц ровно.
При выходе PLL 250 МГц деленная на 4 частота составляет 25 МГц ровно.
При выходе PLL 450 МГц деленная на 4 частота составляет 25 МГц ровно.
Как будто на вход делителя поступает 100 МГц, но откуда они берутся? Неясно.
Это очень странное поведение, которое я не могу объяснить, вначале грешил на версию квартуса, но просмотр откомпиленного дизайна в Technology Map Viewier показывает, что все развелось как я и хочу, ничего не выкинулось и не оптимизировалось. На всякий случай для использую WYSIWYG cyclonev_ff примитивы, но результат неверный даже если просто в схематике подключить два T-триггера.
Даже не знаю в каком направлении искать ошибку.
Цитата(Dootch @ Aug 9 2016, 11:02)

Даже не знаю в каком направлении искать ошибку.
начните с выкладывания проекта
Цитата(des00 @ Aug 9 2016, 08:08)

начните с выкладывания проекта
Ок, у файла надо стереть .rar в конце
alevnew
Aug 9 2016, 05:27
Цитата(Dootch @ Aug 9 2016, 09:02)

Делителем являются два подключенных последовательно DFF. Проблема в том, что частота не верно делится.
Проект не смотрел, но, судя по цитате, у Вас асинхронщина в проекте?
На клок второго DFF идет выход первого?
В таком случае, возможно это и есть проблема - нужно избавиться от асинхронщины.
likeasm
Aug 9 2016, 06:55
А на PLL делить не пробовали? Зачем рога и копыта с триггерами? Не могу открыть проект, winrar орет, что битый.
Может, не с того выхода PLL идут такты на триггеры?
bogaev_roman
Aug 9 2016, 07:03
Цитата(likeasm @ Aug 9 2016, 09:55)

А на PLL делить не пробовали? Зачем рога и копыта с триггерами? Не могу открыть проект, winrar орет, что битый.
У меня тоже не открывается севензипом. Тут, похоже, вопрос учебный. После делителя будет счетчик, а вопросов возникнет еще больше.
Цитата(bogaev_roman @ Aug 9 2016, 14:03)

У меня тоже не открывается севензипом. Тут, похоже, вопрос учебный. После делителя будет счетчик, а вопросов возникнет еще больше.
там не винрар. убираете расширение, это обычный qar. В нем внутри последовательный асинхронный счетчик: набор T триггеров друг за другом, с тактированием друг от друга.
ТС поставьте lpm_counter и не компостируйте мозг
Вопрос не учебный, просто изготовили плату, теперь мне нужно проверить есть ли проблемы в схеме, разводке и пайке. Раньше бывало из-за ошибок в пайке не запускалась часть PLL. Вот сейчас придумывал тесты и наткнулся на подобное странное поведение.
Плюс ко всему перешел на новый квартус с 13.0 на 15.0. При работе с 13 версией никогда не возникало подобной проблемы с последовательным счетчиком на высоких частотах.
Цитата(Dootch @ Aug 9 2016, 11:54)

мне нужно проверить есть ли проблемы в схеме, разводке и пайке.
Так пайка проверяется jtag-сканированием без всяких проектов...
Цитата(iosifk @ Aug 9 2016, 13:01)

Так пайка проверяется jtag-сканированием без всяких проектов...
В прошлой плате JTAG сканирование всегда показывало, что все норм, перепайка микросхемы на эту же плату вылечила часть PLL.
Тут я не знаю как объяснить, возможно маловато опыта.
Цитата(Dootch @ Aug 9 2016, 16:08)

В прошлой плате JTAG сканирование всегда показывало, что все норм, перепайка микросхемы на эту же плату вылечила часть PLL.
Тут я не знаю как объяснить, возможно маловато опыта.
Возможно часть лап питания/земли непропаяны были
alevnew
Aug 9 2016, 11:49
Цитата(Dootch @ Aug 9 2016, 14:08)

Тут я не знаю как объяснить, возможно маловато опыта.
Для начала избавьтесь от асинхронных счетчиков - пока они есть, вообще о чем то говорить смысла не имеет.
Замените на синхронный, как уже тут посоветовали.
dvladim
Aug 9 2016, 17:54
Счетчики-то счетчиками. Асинхронщина конечно зло, но в данном случае влиять не должно.
У меня другой вопрос: что моделирование показывает?