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

Xilinx block design диапазон адресов для AXI slave

Народ, подскажите, пожалуйста, можно ли в block design задать диапазон адресов для AXI slave меньше чем 4КБ?

Есть у меня, допустим, UART или SPI с 10 регистрами. Как-то жалко отдавать по 4КБ каждому, когда реально используется в сотни раз меньше.

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


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

Нет. А чего жалеть то? младшие 12 бит из 32-х битного адресного пространства. Только хуже сделаетет, усложнив логику декодирования адреса устройства в арбитре шины

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


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

11 hours ago, BSACPLD said:

Как-то жалко отдавать по 4КБ каждому, когда реально используется в сотни раз меньше.

Так если у Вас этих "каждых" много - возьмите и объедините все под одним AXI портом. Я недавно наткнулся на подобные грабли (только с другой стороны). Для оптимизации по коду и интерфейсам, можно всё слепить в один порт. А вот на уровне синтеза профита всё равно особого не будет (и если уменьшать диапазон, тогда ещё и проблемы начаться могут на верхнем уровне).

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


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

Спасибо.

Еще вопрос.

Есть контроллер DDR3 настроенный на работу с памятью объёмом 4G.

Он подключен к MicroBlaze через AXI Interconnect.

При этом в Address Editor я не могу выбрать больше 2G, хотя доступно 4G.

Как быть в таком случае?

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


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

31 minutes ago, BSACPLD said:

Спасибо.

Еще вопрос.

Есть контроллер DDR3 настроенный на работу с памятью объёмом 4G.

Он подключен к MicroBlaze через AXI Interconnect.

При этом в Address Editor я не могу выбрать больше 2G, хотя доступно 4G.

Как быть в таком случае?

работать через самодельную обертку трансляции адресов. не умеет интерконнет делать устройство, с адресным размером, по границам не 2^N

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


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

39 minutes ago, des00 said:

работать через самодельную обертку трансляции адресов. не умеет интерконнет делать устройство, с адресным размером, по границам не 2^N

Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G.

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


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

3 minutes ago, BSACPLD said:

Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G.

хмм, надо почитать, всегда считал что акси интерконнект микробовский 32-х битный, где то значит он должен переключаться на 64 бита

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


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

56 minutes ago, BSACPLD said:

Так проблема в том, что я не могу поставить базовый адрес выше 4G, хотя в MicroBlaze я разрешил адресовать 64G.

Что-то не то. Вот у меня висит в адресном пространстве память ddr4 объемом как раз 4ГБ (не с 0 адреса, а где-то выше). И там распределенный объем можно выбрать еще и 8G, 16G. Vivado 2019.1.

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


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

Проблема решена.

Нужно было ставить базовый адрес выравненный по объему памяти :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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