Alf256 0 May 12, 2020 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 May 12, 2020 Posted May 12, 2020 · Report post 15 минут назад, Alf256 сказал: но стоит их поставить хотя бы шесть, всё перестаёт работать и идёт мусор. Проект синхронный? Откуда данные берутся и куда отправляются? И так много много пунктов по каждому куску тракта... Quote Share this post Link to post Share on other sites More sharing options...
Yuri124 0 May 12, 2020 Posted May 12, 2020 · Report post файл .sdc создали? Quote Share this post Link to post Share on other sites More sharing options...
Alf256 0 May 12, 2020 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 1 May 12, 2020 Posted May 12, 2020 · Report post Времянка для частоты 26 МГц прописана? Что пишет отчёт по этой времянке? Quote Share this post Link to post Share on other sites More sharing options...
Alf256 0 May 12, 2020 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 May 12, 2020 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 May 12, 2020 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 May 12, 2020 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 May 12, 2020 Posted May 12, 2020 · Report post Спасибо всем. Понял - надо изучать и создавать тайминговые констрейны. Quote Share this post Link to post Share on other sites More sharing options...
DuHast 0 May 13, 2020 Posted May 13, 2020 · Report post Попробую задать правильный вопрос: Вы новые фильтры параллельно ставили или последовательно? Quote Share this post Link to post Share on other sites More sharing options...
RobFPGA 2 May 13, 2020 Posted May 13, 2020 · Report post Приветствую! Судя по всему при последовательном соединении звеньев где то переполнение происходит. Удачи! Rob. Quote Share this post Link to post Share on other sites More sharing options...
DuHast 0 May 14, 2020 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 May 14, 2020 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 June 4, 2020 Posted June 4, 2020 · Report post Недавно подобное поведение наблюдал в проекте, в котором разработчик обнулял регистры через асинхронный сброс. Когда дизайн занимал мало места и разводился плотно, схема работала как надо, когда же требовалось много места и проект расползался по ПЛИС, сброс не успевал долетать в нужное время... Quote Share this post Link to post Share on other sites More sharing options...