Bad0512 2 17 февраля, 2020 Опубликовано 17 февраля, 2020 · Жалоба Я поглядел ваш изначальный проект, и не увидел в нём никаких ошибок в тайминге. Возможно вы сделали в проекте какие-то критические для тайминга изменения. Не могли бы вы выложить текущий проект ещё раз? А то получается что мы разные версии проекта смотрим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim_nsk 0 17 февраля, 2020 Опубликовано 17 февраля, 2020 (изменено) · Жалоба 17 minutes ago, Vadim_nsk said: Помогите мне пожалуйста в этом немного. У меня есть файл: timing_1.rpx, но к сожалению я в нем не могу найти вот это: Выглядит путь весьма громоздским: Дизайн сейчас выглядит вот так: Как видно MB в нем нет. Клоки мне пришлось пропустить через wiz_clk, иначе он ругался, также пришлось поступить и с ресетами. Напрямую из цинка он их не хочет использовать. Специально вставил ряды регистров в шину AXI, но на времянку это не сильно сказалось. Маршруты просто огромные. Может у кого-нибудь есть туториал, где бы шина HP использовалась и где можно посмотреть как это правильно делать. Человек вот тут вроде все доходчиво объясняет, но исходников я его не нашел: https://www.youtube.com/watch?v=TtzZ0_V9ZH0 Проект находится тут: https://drive.google.com/open?id=1bl1fjn8TvNMMumgUC5R_o5WMfoh32Too Представленный выше дизайн: "design_1" Изменено 17 февраля, 2020 пользователем Vadim_nsk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 17 февраля, 2020 Опубликовано 17 февраля, 2020 · Жалоба Проблема номер один - отчеты по таймингу описывают проблемы в другом дизайне. В этом дизайне модуль design_1 вообще никак не участвует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vadim_nsk 0 17 февраля, 2020 Опубликовано 17 февраля, 2020 · Жалоба 1 hour ago, Bad0512 said: Проблема номер один - отчеты по таймингу описывают проблемы в другом дизайне. В этом дизайне модуль design_1 вообще никак не участвует. Вот это поворот... Вы абсолютно правы. Постоянно генерируя разные варианты, создал еще один дизайн и не заметил, что не переключился на него. Спасибо. Теперь у меня есть хоть какая-то рабочая отправная точка, откуда можно двигаться к первоначальному варианту. А не подскажете еще одну вещь? В настройках AXI_Interconnect есть настройки слоя регистров: равносильно ли это добавлению отдельного компонента axi_register_slice, как у меня в последнем дезайне? Или лучше не трогать эту настройку, а вставлять внешний регистр? 4 hours ago, gosha-z said: 1. Если все соединения через FMC - выгоняете один SPI (у которого как раз три CS) и оба I2C контроллера в EMIO и никакие микроблейзы вам не нужны. 2. Подозреваю, что тайминг у вас разъехался из-за того, что Vivado увел IDDR блоки подальше от входных буферов, есть у него такая фишка при разводке на практически пустых кристаллах. Прибейте гвоздями входные IDDR рядом с входными пинами - станет значительно лучше. 3. Для всего софта у вас есть bare metal драйвера - все готовое и никакого шаманства с битбенгом. Согласен. Но АЦП использует порт HPC FMC, а на оценочной плате Zynq лишь LPC FMC, поэтому SPI там уже не поместился. Пришлось городить мосты IICtoSPI. Второй момент, что купить несколько плат с двумя FMC это дорого, для программистов верхнего уровня купили простые платы, где грубо говоря только Zynq и память :-( и нужно будет меняя только прошивку FPGA заставить работать Linux в разных условиях одинаково. В дальнейшем будет итоговая плата, а не зоопарк оценочных, где все еще раз поменяется. Вот чтобы этот зоопарк не плодить наверху, я и планировал реализовать это внизу, на MB. Иначе, придется наверху проверять состав железа и ее конфигурацию. Может я и не прав, но мне это показалось более сложным в реализации. Но я еще раз пересмотрю вариант с реализацией нижнего уровня в драйверах Linux. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 17 февраля, 2020 Опубликовано 17 февраля, 2020 · Жалоба Приветствую! 9 minutes ago, Vadim_nsk said: равносильно ли это добавлению отдельного компонента axi_register_slice, Да - равносильно. Смысла ставить внешний блок нет - если нужно лучше использовать эти настройки в interconnect. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться