Jump to content

    
Sign in to follow this  
Вася0

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

 

Edited by new123

Share this post


Link to post
Share on other sites
2 hours ago, Вася0 said:

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

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

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

Share this post


Link to post
Share on other sites
5 часов назад, Yuri124 сказал:

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

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

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

Edited by Вася0

Share this post


Link to post
Share on other sites
10 hours ago, Вася0 said:

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

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

Share this post


Link to post
Share on other sites
13 hours ago, Вася0 said:

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

 

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

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

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

Edited by Yuri124

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this