Alf256 0 Posted May 12, 2020 · Report post Проблема в следующем: имеется компонент в виде канала из простых цифровых фильтров. Если собрать проект из одного или двух каналов всё работает отлично, но стоит их поставить хотя бы шесть, всё перестаёт работать и идёт мусор. FPGA Xilinx artix-7, среда Vivado 2019.1 , язык VHDL. Ресурсы задействованы максимум на 20%. Тактовая частота 26 МГц. Моего опыта к сожалению пока не достаточно, чтобы в ближайшее время понять откуда "ноги растут" у проблемы. Пока только пытаюсь грешить на синхронизацию, но очень сомневаюсь - тактовая частота слишком низкая для такого кристалла, чтобы так повлиять на работу. Может кто-нибудь подскажет хотя-бы направление поиска. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
iosifk 0 Posted May 12, 2020 · Report post 15 минут назад, Alf256 сказал: но стоит их поставить хотя бы шесть, всё перестаёт работать и идёт мусор. Проект синхронный? Откуда данные берутся и куда отправляются? И так много много пунктов по каждому куску тракта... Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Yuri124 0 Posted May 12, 2020 · Report post файл .sdc создали? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Alf256 0 Posted May 12, 2020 · Report post Да, проект синхронный - источник АЦП в рабочем режиме и тестовый генератор внутри FPGA подключаются через мультиплексор. входной сигнал домножается на синус и косинус с выхода генератора DDS на DSP48 блоке, затем идёт цепочка однозвенных нерекурсивных фильтров с одним сложением текущего и задержанного на один такт входного сигнала. через 8 таких звеньев идёт прореживание. Затем ещё два звена и ещё прореживание. Сумматоры сделаны на логике - DSP48 не используется. На данный момент мои познания позволили мне только создать файл ограничений для подключения пинов.( Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
MegaVolt 0 Posted May 12, 2020 · Report post Времянка для частоты 26 МГц прописана? Что пишет отчёт по этой времянке? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Alf256 0 Posted May 12, 2020 · Report post Не 5 minutes ago, MegaVolt said: Времянка для частоты 26 МГц прописана? Что пишет отчёт по этой времянке? Нет не прописана - ну начинающий я( догадываюсь что это надо, но пока не знаю как делать( Насколько это критично? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Yuri124 0 Posted May 12, 2020 · Report post 1 minute ago, Alf256 said: Насколько это критично? посмотрите в отчетах - на какой частоте может работать проект с 1-2 фильтрами и с бОльшим их кол-вом. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
des00 1 Posted May 12, 2020 · Report post 54 minutes ago, Alf256 said: Если собрать проект из одного или двух каналов всё работает отлично, но стоит их поставить хотя бы шесть, всё перестаёт работать и идёт мусор. FPGA Xilinx artix-7, среда Vivado 2019.1 , язык VHDL. Ресурсы задействованы максимум на 20%. отладчик в руки и вперед, смотреть что именно ломается. житаг у вас по любому есть. а вот когда выясните что именно ломается, тогда уже и можно беседовать. На 26МГц, на артиксе, можно слона разложить. Just now, Yuri124 said: посмотрите в отчетах - на какой частоте может работать проект с 1-2 фильтрами и с бОльшим их кол-вом. это вивада, не квартус, там нет такой информации. надо прописать хотя бы частоту в констрейнах Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Yuri124 0 Posted May 12, 2020 (edited) · Report post 5 minutes ago, Alf256 said: пока не знаю как делать почитайте статьи Дениса Шехалева: https://cyberleninka.ru/article/n/synopsys-design-constraint-yazyk-zadaniya-vremennyh-ogranicheniy-na-primere-altera-timequest-chast-1/viewer Оно, правда, по Альтере, но на русском, и в нужном направлении. Edited May 12, 2020 by Yuri124 Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Alf256 0 Posted May 12, 2020 · Report post Спасибо всем. Понял - надо изучать и создавать тайминговые констрейны. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DuHast 0 Posted May 13, 2020 · Report post Попробую задать правильный вопрос: Вы новые фильтры параллельно ставили или последовательно? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
RobFPGA 1 Posted May 13, 2020 · Report post Приветствую! Судя по всему при последовательном соединении звеньев где то переполнение происходит. Удачи! Rob. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DuHast 0 Posted May 14, 2020 · Report post 10 hours ago, RobFPGA said: Судя по всему при последовательном соединении звеньев где то переполнение происходит. Вот и я о том же. И констрейны здесь ни при чём. Поэтому надо симулировать, тем более у автора топика есть тестовый генератор. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
des00 1 Posted May 14, 2020 · Report post 14 hours ago, DuHast said: Попробую задать правильный вопрос: Вы новые фильтры параллельно ставили или последовательно? обычно, каналами в ЦОС, называют независимые тракты обработки, а не последовательное включение. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
S_Hawk 0 Posted June 4, 2020 · Report post Недавно подобное поведение наблюдал в проекте, в котором разработчик обнулял регистры через асинхронный сброс. Когда дизайн занимал мало места и разводился плотно, схема работала как надо, когда же требовалось много места и проект расползался по ПЛИС, сброс не успевал долетать в нужное время... Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...