Сгенерируйте Дерево устройств для Ядра IP

Динамически сгенерируйте деревья устройств, которые включают узлы для сгенерированного ядра IP HDL Coder™ при помощи рабочего процесса генерации Ядра IP HDL Coder. Сгенерированное дерево устройств также включает узлы для ваших периферийных устройств платы, ядер IP исходного проекта и интерфейсов исходного проекта, которые получают доступ к системе обработки (PS) вашей целевой программируемой пользователем вентильной матрицы (FPGA) или системы на чипе (SoC) плата. Программируйте свою требуемую плату со сгенерированным деревом устройств и потоком битов.

Начало работы с деревьями устройств

Дерево устройств является структурой данных, которая описывает аппаратные устройства к операционной системе, работающей на требуемой плате. Ядро операционной системы использует описание дерева устройств, чтобы управлять доступными аппаратными устройствами. Например, операционная система использует дерево устройств, чтобы загрузить драйвер правильного устройства для данного аппаратного устройства.

Дерево устройств имеет древовидный формат структуры данных, состоящий из узлов и свойств. Изображение показывает эти компоненты дерева устройств.

device tree overview showing root node, child node, and node properties

В дереве устройств:

  • Узлы представляют устройства в системе.

  • Каждому узлу задали свойства как пары значения свойства, которые описывают характеристики устройства.

  • Каждый узел имеет точно один родительский элемент, за исключением корневого узла, который не имеет никакого родительского элемента. Корневой узел определяется при помощи наклонной черты вправо.

Это изображение показывает дерево устройств в качестве примера. Левая сторона показывает исходный файл дерева устройств. Правая сторона показывает концептуальную схему древовидной структуры с узлами и свойствами. Имена полей представляют имена узла, и текст в поле представляет пары значения свойства узлов.

device tree structure

Используйте деревья устройств с Рабочим процессом Генерации Ядра IP

Когда вы развертываете оборудование/разработку ПО в устройство SoC, дерево устройств сообщает PS о ядрах IP, доступных в потоке битов. Ядра IP появляются к PS как устройства, к которым можно получить доступ из программного обеспечения при помощи драйверов устройств. Поэтому дерево устройств и поток битов должны синхронизироваться.

Можно сгенерировать узлы дерева устройств, соответствующие сгенерированному ядру IP при помощи рабочего процесса генерации ядра IP. Рабочий процесс сохраняет дерево устройств и поток битов в синхронизации путем обновления дерева устройств каждый раз, когда ядро IP изменяется.

Включить генерацию узлов дерева устройств для HDL Coder сгенерировало ядра IP, HDL Coder разделяет дерево устройств на три отличных сегмента:

  • Сегмент Board — узлы Дерева устройств, соответствующие закрепленному оборудованию на вашей плате, такие как периферийные устройства центрального процессора (CPU) и процессора. Дерево устройств платы обычно получается от поставщика платы.

  • Сегмент исходного проекта — узлы Дерева устройств, соответствующие ядрам IP в вашем исходном проекте. Этот сегмент дерева устройств обычно создается, когда вы создаете исходный проект.

  • Сегмент HDL Coder IP Core — узлы Дерева устройств, соответствующие ядру IP, сгенерированы HDL Coder. Этот сегмент дерева устройств не должен быть создан, когда это может быть динамически сгенерировано HDL Coder.

Это изображение показывает плату SoC со своими сегментами дерева отдельного устройства.

SoC board and device tree components

Когда вы развертываете свой проект в цель, HDL Coder автоматически комбинирует эти сегменты вместе в полное дерево устройств, которое используется, чтобы программировать цель. Эти разделы обходят вас посредством процесса регистрации и генерации различных сегментов вашего дерева устройств.

Укажите Дерево устройств для Пользовательского Совета

Укажите дерево устройств платы к своему пользовательскому проекту платы при помощи adddevice tree и adddevice treeIncludeDirectory методы hdlcoder.Board объект. Для получения дополнительной информации смотрите hdlcoder.Board, addDeviceTree, и addDeviceTreeIncludeDirectory.

Это изображение показывает дерево устройств платы, указанное вашей пользовательской плате.

Board device tree registered to custom board

Укажите Дерево устройств для Пользовательского Исходного проекта

Укажите фрагмент исходного проекта своего дерева устройств при авторской разработке исходного проекта при помощи adddevice tree и adddevice treeIncludeDirectory методы hdlcoder.ReferenceDesign объект. Чтобы указать дерево устройств, ваш исходный проект должен содержать IP системы обработки. Включите HasProcessingSystem свойство hdlcoder.ReferenceDesign объект. Смотрите hdlcoder.ReferenceDesign, addDeviceTree, и addDeviceTreeIncludeDirectory.

Это изображение показывает исходный проект для дерева устройств, указанного к вашему пользовательскому исходному проекту.

Reference design device tree registered to custom reference design

Сгенерируйте Узел дерева Основного устройства IP

Во время рабочего процесса генерации ядра IP HDL Coder генерирует ядро IP и вставляет его в ваш исходный проект. HDL Coder может также сгенерировать соответствующие узлы дерева устройств для этого ядра IP и объединить их с деревьями устройств исходного проекта и платой. Сгенерируйте узел дерева устройств для своего ядра IP при помощи рабочего процесса генерации ядра IP HDL Coder. Включите GenerateIPCoredevice treeNodes свойство hdlcoder.ReferenceDesign объект сгенерировать узлы дерева устройств для вашего ядра IP.

Это изображение показывает исходный проект для дерева устройств при генерации и добавлении, что узлы дерева устройств включены для ядра IP.

Reference Design with device tree for IP Core enabled

Чтобы включить генерацию дерева правильного устройства для вашего ядра IP, необходимо указать релевантную информацию для интерфейсов исходного проекта, которые соединяются с системой обработки. Включите генерацию узлов дерева устройств путем указывания информации для интерфейсов, которые соединяются с PS на целевом устройстве. Интерфейсы задают ссылки на другие узлы дерева устройств. Чтобы включить генерацию дерева устройств для ведомого интерфейса AXI4, включите HasProcessorConnection свойство и задает значение для device treeBusNode свойство addAXI4SlaveInterface метод для hdlcoder.ReferenceDesign объект. Смотрите addAXI4SlaveInterface. Включите генерацию дерева устройств для интерфейса AXI4 Stream путем включения HasDMAConnection и определение значений для device treeMasterChannelDMANode и device treeSlaveChannelDMANode. Смотрите addAXI4StreamInterface.

Это изображение показывает, что генерация узла дерева устройств включила для Ядра IP ведомое устройство AXI4 и потоковые интерфейсы AXI4.

Reference Design Interface device tree Nodes Enabled

Разверните Дерево устройств и Поток битов

Загрузите сгенерированное дерево устройств и поток битов для вашей пользовательской платы, исходного проекта и ядра IP к целевому устройству при помощи рабочего процесса генерации ядра IP HDL Coder. Рабочий процесс генерации ядра IP компилирует плату, исходный проект и деревья основного устройства IP в дерево единого устройства и затем программирует их на целевое устройство наряду со сгенерированным потоком битов. Это изображение показывает сгенерированное дерево устройств и поток битов, запрограммированный на целевое устройство.

Download device tree and bitstream onto target device

Во время загрузки HDL Coder использует компилятор дерева устройств на требуемой плате, чтобы объединить дерево устройств платы, дерево устройств исходного проекта и дерево основного устройства IP. HDL Coder затем копирует скомпилированные файлы дерева устройств назад в ваш хост - компьютер.

Следующие файлы дерева устройств сгенерированы во время рабочего процесса Генерации Ядра IP:

  • devicetree_<model-name>.dtb— Бинарный файл дерева устройств раньше программировал плату. Этот файл сгенерирован компилятором дерева устройств.

  • devicetree_<model-name>.dts— Файл дерева исходного устройства, предоставленный как вход компилятору дерева устройств. Этот файл сгенерирован HDL Coder.

  • devicetree_<model-name>.output.dts— Объединенный исходный файл, который содержит информацию для дерева устройств платы, дерева устройств исходного проекта и вашего дерева основного устройства IP. Этот файл может использоваться для отладки и сгенерирован компилятором дерева устройств.

  • <ip-core-name>.dtsi: Сегмент ядра IP дерева устройств. Этот файл сгенерирован HDL Coder.

Изображение показывает местоположение папки сгенерированных файлов дерева устройств для демонстрационного ядра IP.

Generated device tree files and their location

Демонстрационное Дерево устройств

Изображение показывает ваш файл исходного проекта с интерфейсными деталями. Слева пример файла исходного проекта с интерфейсными деталями. Справа сгенерированный файл дерева устройств.

Reference design with interface details on the left and generated device tree on the right

Смотрите также

| | | | | |

Внешние веб-сайты