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

    

Чтение master с шириной шины 32 из slave с шириной 128 в qsys

Здравствуйте, пытаюсь соединить мастера с шиной 32 бита и слейв с шириной 128, мастер только читает. Подключены через pipeline bridge, скажите можно ли так настроить bridge чтобы на 4 чтения мастера приходилось 1 чтение из слейва, в симуляции по 4 чтения в слэйве пока мастер всю шину пройдёт,неужели в width adapter нет никакого fifo который решает эту проблему?

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


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

Avalon?

Если да, то в мануале по нему подробно все рассказано
 

Quote

If the master is narrower than the slave, then the interconnect manages the slave byte lanes. During master read transfers, the interconnect presents only the appropriate byte lanes of slave data to the narrower master. During master write transfers, the interconnect automatically asserts the byteenable signals to write data only to the specified slave byte lanes.

 

Изменено пользователем new123

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


Ссылка на сообщение
Поделиться на другие сайты
2 hours ago, Вася0 said:

неужели в width adapter нет никакого fifo который решает эту проблему?

Думаю, никакой адаптер не знает, что Вы захотите прочитать в следующий раз. Может, Вам захочется читать каждый  раз только первые 32 бита из 128-битной шины, а тут fifo, из которого  нужно прогонять вхолостую оставшиеся 3 х 32 бита...

ИМХО если Вас по какой-то причине напрягают эти лишние чтения из слейва, нужно самому об этом явно позаботиться.

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


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Yuri124 сказал:

Думаю, никакой адаптер не знает, что Вы захотите прочитать в следующий раз. Может, Вам захочется читать каждый  раз только первые 32 бита из 128-битной шины, а тут fifo, из которого  нужно прогонять вхолостую оставшиеся 3 х 32 бита...

ИМХО если Вас по какой-то причине напрягают эти лишние чтения из слейва, нужно самому об этом явно позаботиться.

У фифо есть сброс это не выход? А если в хранить данные в 128битном регистре и через мультиплексор подавать на Авалон по byteenable в случае если адрес совпадает с предыдущим, какие минусы в таком подходе?

Изменено пользователем Вася0

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


Ссылка на сообщение
Поделиться на другие сайты
10 hours ago, Вася0 said:

У фифо есть сброс это не выход? А если в хранить данные в 128битном регистре и через мультиплексор подавать на Авалон по byteenable в случае если адрес совпадает с предыдущим, какие минусы в таком подходе?

вы пишите про кеш на одну линию. Если есть в системе кешируемые мосты, тогда надо использовать их. А если нет, тогда сделать кеш на чтение в слейве. Ну и наличие кеша, подразумевает комбинаторную логику в модуле, что валит тактовую.

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


Ссылка на сообщение
Поделиться на другие сайты
13 hours ago, Вася0 said:

У фифо есть сброс это не выход? А если в хранить данные в 128битном регистре и через мультиплексор подавать на Авалон по byteenable в случае если адрес совпадает с предыдущим, какие минусы в таком подходе?

 

Вот такие решения и есть - "самому об этом явно позаботиться".Минус такого решения - то, что нужно самому этим заниматься.

В принципе такой подход можно рассматривать как подключение  в Qsys 128-битного мастера к 128-битному слейву, просто Ваша 32-битная шина прячется внутри блока.

А чем не устраивает готовый мост - большие задержки?

Изменено пользователем Yuri124

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


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

У меня мастер 8 бит,  шина Авалон 32-х битная, соответственно все слейвы тоже 32-х битные. Разруливается byteenable-ами, можно читать любой байт.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти