Перейти к содержанию
    

Чудеса быстродействия 18-разрядного счетчика.

4 минуты назад, Мур сказал:

поставил рукописный счетчик(привожу тут).

		if cnt_en = '1' then
			cnt_c  <= data;					---<<<<
		elsif cnt_en = '1' then
			cnt_c  <=  cnt_c + 1;
		end if;

Что-то здесь не то.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Yuri124 said:

насколько понял из картинки отчета TQ (предыдущая страница топика) - далеко нужно тянуться от счетчика к памяти... Т.е. в моем понимании - сам счетчик не причем.

эта мысль озвучивалась тут не раз. Я полагал, что можно вытянуть ситуацию скоростным примитивом и обеспечением хороших нагрузочных характеристик мультиплексора, выходящего на эту шину к RAM... 

3 minutes ago, andrew_b said:

Что-то здесь не то.

Уж куда проще?

Тут повтор идеи самого LPM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, Мур сказал:

Уж куда проще?

Тут повтор идеи самого LPM

К условиям приглядитесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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МГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Мур said:

скоростным примитивом

скоростной примитив - это быстрый расчет следующего состояния счетчика и соответствующая разводка на входы регистров этого счетчика, но никак не разводка от выходов дальше.

Если дизайн позволяет - попробовать поставить конвейер по передаче адреса к памяти. Тут и сам компилятор может легко добавить дубликатов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы из FIFO в другую память переписываете? А зачем вам FIFO в приёмной части модуля SPI? Сделайте простой десериалайзер на сдвиговом регистре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, andrew_b said:

Вы из FIFO в другую память переписываете? А зачем вам FIFO в приёмной части модуля SPI? Сделайте простой десериалайзер на сдвиговом регистре.

Это рудимент старого ТЗ, где сначала все сливалось в FIFO.  Не обращайте внимание на имя!

Тут слив идет напрямую в RAM.  И наоборот,- из RAM в SPI мастеру

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 minutes ago, Мур said:

Но та же хрень!   85.14МГц

А для самой BRAM-памяти какая задана латентность?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, blackfin said:

А для самой BRAM-памяти какая задана латентность?

Там по одному порту асинхронно 200МГц(нет латентности)

Второй на 100МГц (кстати, сейчас поставил регистр на вход шины адреса и и в итоге лохматость  упала до 80МГц!!!) латентность в 1 тик 100МГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Мур said:

... латентность в 1 тик 100МГц

Для RAM размером 192k нужна латентность чтения ~3-5 тактов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, blackfin said:

Для RAM размером 192k нужна латентность чтения ~3-5 тактов.

Так IP никто не ограничивает при настройке.

Вопрос в симуляторе совсем не настораживает! Убраны защелки по выходам и вижу выход данных с задержкой в 1 тик.

Ваш опыт меня настораживает.  Сама задача всплыла исключительно для теста. Нет в рабочем дизайне такого решения ВООБЩЕ (кроме SPIslave на 50МГц).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну что, мужики, Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM.

83.58МГц  всего!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Мур said:

Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM.

Так поставьте ещё два регистра на выходе q_b.

 

И включите защелки по выходу:

48 minutes ago, Мур said:

Убраны защелки по выходам и вижу выход данных с задержкой в 1 тик.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, blackfin said:

Так поставьте ещё два регистра на выходе q_b.

Нельзя!   Это чистая скоростная шина процессора.(200МГц)

Из-за него то все проблемы. Я не могу отдельно по каждому порту конфигурировать выходы. Только в явном виде руцями!

Да и TQ молчит по этому поводу....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!  
 

18 minutes ago, Мур said:

Ну что, мужики, Поставил конвейер из 2х регистров(200МГц) на шину адреса BRAM.

83.58МГц  всего!

Простите, но гадать на кофейной гуще будет как то результативнее  :wink2:   
Мы отсюда не видим ни структуры вашей шины и обвязки вокруг памяти ни то как память к процу цепляется, ...   А у меня уже на сегодня лимит по кофе исчерпан  :cray:

 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...