Xilinx Vivado: блочный дизайн, диапазон адресов конечной точки каждого модуля - PullRequest
0 голосов
/ 20 марта 2019

Рассмотрим схему, в которой PS (Zynq ARM A9) подключен к нескольким периферийным устройствам, где адресация изображена ниже.

Block Design: Address Editor

Как выделено фиолетовым цветом ниже, почему минимальный доступ каждого модуля конечной точки (даже если модуль является моим собственным IP) всегда находится в диапазоне четырех килобайт? Это связано с чем-то конкретным процессором ARM?

Я пытался изменить диапазон адресов своего собственного IP, как показано ниже, на меньшее число, но это никогда не оказывало никакого влияния.

IP Packaging: Addressing and Memory

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

В соответствии с примечаниями в Таблица 3-9: Параметры, связанные с главным интерфейсным устройством AXI Crossbar in PG059 Руководство по межкомпонентному соединению AXI , размер всего диапазона адресов должен быть равен 2 , определяется 2 ** Mmm_Aaa_ADDR_WIDTH.

Поскольку мастер AXI-Interconnect в вашем проекте, вероятно, подключен к подчиненному интерфейсу AXI4 GP системы PS, Mmm_Aaa_BASE_ADDR больше или равно 12, т.е. минимальный диапазон адресов, который может быть назначен каждому IP как минимум, 4KBytes (4096), как показано на ваших фотографиях.

С точки зрения дизайна, если вам не хватает места в памяти для выделения для ваших IP-ядер, больший диапазон может быть лучше, так как он уменьшает биты, необходимые для сравнения в межсоединении AXI, что приводит к снижению потребления аппаратных ресурсов, и, возможно, улучшенная скорость (более быстрые достижимые часы AXI) и более простое размещение и маршрутизация с ограничениями по времени.

0 голосов
/ 17 апреля 2019

В дополнение к ответу, опубликованному TWang, я также хочу отметить, что способность пользователя назначать диапазон адресов зависит от начального адреса, так что конечный адрес не будет пересекаться (или, другими словами, не переноситься) на следующий бит.

Как видно, если вы назначите адрес смещения как 0x40020000, вы можете установить диапазон равным 128K, что означает от 0x40020000 до 0x4003FFFF.

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

Я не уверен, является ли это намерением Xilinx или спецификацией архитектуры процессора ARM.

Addressmap

...