andrew_b 16 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 4 минуты назад, Мур сказал: поставил рукописный счетчик(привожу тут). if cnt_en = '1' then cnt_c <= data; ---<<<< elsif cnt_en = '1' then cnt_c <= cnt_c + 1; end if; Что-то здесь не то. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 1 minute ago, Yuri124 said: насколько понял из картинки отчета TQ (предыдущая страница топика) - далеко нужно тянуться от счетчика к памяти... Т.е. в моем понимании - сам счетчик не причем. эта мысль озвучивалась тут не раз. Я полагал, что можно вытянуть ситуацию скоростным примитивом и обеспечением хороших нагрузочных характеристик мультиплексора, выходящего на эту шину к RAM... 3 minutes ago, andrew_b said: Что-то здесь не то. Уж куда проще? Тут повтор идеи самого LPM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 3 минуты назад, Мур сказал: Уж куда проще? Тут повтор идеи самого LPM К условиям приглядитесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 4 minutes ago, andrew_b said: К условиям приглядитесь. if sload = '1' then cnt_c <= data; ---<<<< elsif cnt_en = '1' then cnt_c <= cnt_c + 1; end if; Лоханулся!... Звыняйтэ хлопцы... Но та же хрень! 85.14МГц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 5 minutes ago, Мур said: скоростным примитивом скоростной примитив - это быстрый расчет следующего состояния счетчика и соответствующая разводка на входы регистров этого счетчика, но никак не разводка от выходов дальше. Если дизайн позволяет - попробовать поставить конвейер по передаче адреса к памяти. Тут и сам компилятор может легко добавить дубликатов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба Вы из FIFO в другую память переписываете? А зачем вам FIFO в приёмной части модуля SPI? Сделайте простой десериалайзер на сдвиговом регистре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба Just now, andrew_b said: Вы из FIFO в другую память переписываете? А зачем вам FIFO в приёмной части модуля SPI? Сделайте простой десериалайзер на сдвиговом регистре. Это рудимент старого ТЗ, где сначала все сливалось в FIFO. Не обращайте внимание на имя! Тут слив идет напрямую в RAM. И наоборот,- из RAM в SPI мастеру Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 22 minutes ago, Мур said: Но та же хрень! 85.14МГц А для самой BRAM-памяти какая задана латентность? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 13 minutes ago, blackfin said: А для самой BRAM-памяти какая задана латентность? Там по одному порту асинхронно 200МГц(нет латентности) Второй на 100МГц (кстати, сейчас поставил регистр на вход шины адреса и и в итоге лохматость упала до 80МГц!!!) латентность в 1 тик 100МГц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 2 minutes ago, Мур said: ... латентность в 1 тик 100МГц Для RAM размером 192k нужна латентность чтения ~3-5 тактов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 1 minute ago, blackfin said: Для RAM размером 192k нужна латентность чтения ~3-5 тактов. Так IP никто не ограничивает при настройке. Вопрос в симуляторе совсем не настораживает! Убраны защелки по выходам и вижу выход данных с задержкой в 1 тик. Ваш опыт меня настораживает. Сама задача всплыла исключительно для теста. Нет в рабочем дизайне такого решения ВООБЩЕ (кроме SPIslave на 50МГц). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба Ну что, мужики, Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM. 83.58МГц всего! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 27 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 4 minutes ago, Мур said: Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM. Так поставьте ещё два регистра на выходе q_b. И включите защелки по выходу: 48 minutes ago, Мур said: Убраны защелки по выходам и вижу выход данных с задержкой в 1 тик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба 5 minutes ago, blackfin said: Так поставьте ещё два регистра на выходе q_b. Нельзя! Это чистая скоростная шина процессора.(200МГц) Из-за него то все проблемы. Я не могу отдельно по каждому порту конфигурировать выходы. Только в явном виде руцями! Да и TQ молчит по этому поводу.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 26 июля, 2021 Опубликовано 26 июля, 2021 · Жалоба Приветствую! 18 minutes ago, Мур said: Ну что, мужики, Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM. 83.58МГц всего! Простите, но гадать на кофейной гуще будет как то результативнее Мы отсюда не видим ни структуры вашей шины и обвязки вокруг памяти ни то как память к процу цепляется, ... А у меня уже на сегодня лимит по кофе исчерпан Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться