BSACPLD 15 22 октября, 2019 Опубликовано 22 октября, 2019 · Жалоба Народ, подскажите, пожалуйста, можно ли в block design задать диапазон адресов для AXI slave меньше чем 4КБ? Есть у меня, допустим, UART или SPI с 10 регистрами. Как-то жалко отдавать по 4КБ каждому, когда реально используется в сотни раз меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба Нет. А чего жалеть то? младшие 12 бит из 32-х битного адресного пространства. Только хуже сделаетет, усложнив логику декодирования адреса устройства в арбитре шины Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 23 октября, 2019 Опубликовано 23 октября, 2019 · Жалоба 11 hours ago, BSACPLD said: Как-то жалко отдавать по 4КБ каждому, когда реально используется в сотни раз меньше. Так если у Вас этих "каждых" много - возьмите и объедините все под одним AXI портом. Я недавно наткнулся на подобные грабли (только с другой стороны). Для оптимизации по коду и интерфейсам, можно всё слепить в один порт. А вот на уровне синтеза профита всё равно особого не будет (и если уменьшать диапазон, тогда ещё и проблемы начаться могут на верхнем уровне). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 15 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба Спасибо. Еще вопрос. Есть контроллер DDR3 настроенный на работу с памятью объёмом 4G. Он подключен к MicroBlaze через AXI Interconnect. При этом в Address Editor я не могу выбрать больше 2G, хотя доступно 4G. Как быть в таком случае? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба 31 minutes ago, BSACPLD said: Спасибо. Еще вопрос. Есть контроллер DDR3 настроенный на работу с памятью объёмом 4G. Он подключен к MicroBlaze через AXI Interconnect. При этом в Address Editor я не могу выбрать больше 2G, хотя доступно 4G. Как быть в таком случае? работать через самодельную обертку трансляции адресов. не умеет интерконнет делать устройство, с адресным размером, по границам не 2^N Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 15 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба 39 minutes ago, des00 said: работать через самодельную обертку трансляции адресов. не умеет интерконнет делать устройство, с адресным размером, по границам не 2^N Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба 3 minutes ago, BSACPLD said: Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G. хмм, надо почитать, всегда считал что акси интерконнект микробовский 32-х битный, где то значит он должен переключаться на 64 бита Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба 56 minutes ago, BSACPLD said: Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G. Что-то не то. Вот у меня висит в адресном пространстве память ddr4 объемом как раз 4ГБ (не с 0 адреса, а где-то выше). И там распределенный объем можно выбрать еще и 8G, 16G. Vivado 2019.1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 15 25 октября, 2019 Опубликовано 25 октября, 2019 · Жалоба Проблема решена. Нужно было ставить базовый адрес выравненный по объему памяти :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться