Выпуск #4/2019
С. Фролова, Ф. Путря
Создание многофункциональной и мультипроектной платформы прототипирования на базе комплекта HAPS компании Synopsys. Часть 1
Создание многофункциональной и мультипроектной платформы прототипирования на базе комплекта HAPS компании Synopsys. Часть 1
Просмотры: 1559
Стадия прототипирования систем-на-кристалле (СнК) имеет важное значение в проектировании СнК. Проблемы, с которыми сталкиваются многие пользователи при отладке своих проектов, могут быть решены путем определения стратегии отладки и созданием на ее основе необходимой платформы прототипирования. В статье рассказывается об опыте АО НПЦ «ЭЛВИС» разработки такой платформы на базе комплекта HAPS (High-performance ASIC Prototyping Systems) компании Synopsys.
DOI: 10.22184/1992-4178.2019.185.4.76.81
УДК 658.512
ВАК 05.13.12
DOI: 10.22184/1992-4178.2019.185.4.76.81
УДК 658.512
ВАК 05.13.12
Теги: debugging interface debugging strategy prototyping platform отладочный интерфейс платформа прототипирования стратегия отладки
Создание многофункциональной и мультипроектной платформы прототипирования на базе комплекта HAPS компании Synopsys
Часть 1
С. Фролова 1, Ф. Путря, к. т. н.2
Известно, что стадия прототипирования систем-на-кристалле (СнК) имеет важное значение в проектировании СнК. Прототипирование позволяет значительно сократить время создания СнК. Однако многие пользователи сталкиваются со сложностями при отладке своих проектов на платформах прототипирования. Они полагают, что это неудобно, трудоемко и связано с большими сложностями в отладке. Эти проблемы могут быть решены путем определения стратегии отладки и созданием на ее основе необходимой платформы прототипирования. В статье рассказывается об опыте АО НПЦ «ЭЛВИС» разработки такой платформы на базе комплекта HAPS
(High-performance ASIC Prototyping Systems) компании Synopsys.
Создайте свою платформу прототипирования
Для нашей компании были определены следующие цели, которые должны быть решены на платформе прототипирования:
• проверка и отладка схемотехнических решений;
• запуск тестов регрессии функциональной верификации;
• отладка всего стека программного обеспечения СнК;
• отладка пользовательских сценариев работы с будущей СнК.
Также ключевым моментом для проектирования платформы стала необходимость параллельной работы (в режиме строгого разделения времени) с разными проектами. Таким образом, с одной стороны, платформа прототипирования должна отвечать потребностям различных подразделений (проектировщиков, верификаторов, программистов) и обеспечивать удобство отладки, а с другой стороны, предоставлять возможность быстрого переключения с одного проекта на другой.
Эти два аспекта и стали основой нашего решения.
Для построения платформы было выбрано решение компании Synopsys: High-performance ASIC Prototyping Systems (HAPS). Эта система состоит из модулей, которые включают в себя аппаратные компоненты и программное обеспечение.
Базовый блок системы содержит только массив ПЛИС и коннекторы. Для каждого пользователя комплекта эта платформа должна быть сконфигурирована, то есть дополнена необходимыми в каждом конкретном случае элементами. В данной статье предлагается маршрут создания пользовательской системы прототипирования.
Маршрут создания платформы прототипирования
Предлагаемый маршрут состоит из следующих этапов:
• определения общей структуры проектов для прототипирования (основные блоки, интерфейсы);
• анализа проектов «дорожной карты», которые могут требовать прототипирования;
• изучения дочерних плат и аксессуаров для комплекта HAPS;
• определения стратегии отладки и отладочных интерфейсов;
• определения сценариев использования прототипа;
• определения состава прототипа;
• создания схемы универсального соединения дочерних плат и кабелей.
Определение общей структуры проектов
Первой стадией формирования структуры будущей платформы прототипирования является определение части проекта, которая должна быть помещена в прототип. Проект обычно включает в себя центральный процессор, память, некоторые виды акселераторов, низкоскоростные интерфейсы, высокоскоростные интерфейсы, сервисный процессор. Все проекты, имеющие в своем составе процессор, требуют дочернюю плату памяти, которая должна быть добавлена к базовому блоку.
Следует иметь в виду, что проект на платформе прототипирования работает обычно на частоте намного меньшей, чем частота СнК, поэтому прототипирование взаимодействия процессора с высокоскоростными интерфейсами в нормальном режиме невозможно. Низкоскоростные интерфейсы могут быть добавлены в проект прототипа без изменений. Для этого используются входы-выходы общего назначения на коннекторах. Сервисный процессор добавляется в проект позже. На этой же стадии рекомендуется сделать пробный синтез основных ядер в базисе ПЛИС прототипа для определения необходимого объема базового блока.
Результатом этой стадии маршрута является перечень блоков, которые должны быть включены в прототип.
Анализ проектов «дорожной карты», которые могут требовать прототипирования
Платформа прототипирования – мощное и достаточно дорогое оборудование. Для долговременной успешной работы с ним необходимо предусмотреть работу с перспективными проектами и добавить те блоки, которые могут понадобиться как минимум в ближайшие год-два.
Изучение дополнительных (дочерних) плат и аксессуаров для комплекта HAPS
После определения блоков, необходимых для прототипирования, предлагается изучить весь перечень плат, которые могут быть добавлены в прототип.
Ниже представлены наиболее значимые, с нашей точки зрения, дополнительные (дочерние) платы и устройства.
Дополнительная плата JUNO_ADAPTER_HT3 Daughter Board
V2M-Juno r2 ARM Development Platform (Juno ADP) – устройство, созданное компанией АRM для использования в целях создания программного обеспечения для процессоров АRM в составе прототипов. Это устройство может использоваться в различных системах прототипирования. Для подключения его к HAPS компания Synopsys предлагает адаптер JUNO_ADAPTER_HT3 daughter board.
Дополнительная плата DDR SODIMM Daughter Boards
Компания Synopsys предлагает различные виды дочерних плат памяти, которые могут быть подключены к HAPS: DDR3, DDR4, LPDDR3, LPDDR4.
Дополнительная плата FMC Daughter Board Cards
Перспективной возможностью для подключения различных видов интерфесов к комплекту являются дочерние платы с поддержкой стандарта FMC. Первая плата, названная FMCL cable, позволяет подключать мезонинную FMCL-плату. Вторая плата, FMC adapter, предоставляет возможность подсоединять HAPS к FMC – базовой плате, имитируя HAPS как FMC-мезонин.
Дополнительная плата GPIO Daughter Board
Это больше, чем плата универсальных входов-выходов. Во-первых, эта плата содержит коннектор ARM, при помощи которого подсоединяются стандартные для процессоров ARM отладочные средства. Если ваш проект содержит ARM-процессор, вы можете вывести отладочный интерфейс через этот коннектор. Во-вторых, эта плата содержит интерфейс UART-USB, который используется для отладочной печати сообщений. В-третьих, в комплекте к плате поставляется дополнение в виде добавочной платы светодиодов и кнопок.
Для процессоров разработки НПЦ «ЭЛВИС» используется обычный разъем универсальных входов-выходов этой платы для подключения к нему собственного средства отладки ELVEES-USB-JTAG. Таким образом, мы получаем отладочный интерфейс для процессоров, который подсоединяется через вспомогательное устройство к стационарному компьютеру.
Дополнительные платы высокоскоростных интерфейсов HAPS MGB Cards
Семейство HAPS MGB дочерних плат – это набор мультигигабитных SerDes-интерфейсных карт, таких как:
• SATA‑4_HS_MGB – 4-канальная l SATA плата скоростью до 6 Гбит / с;
• PCIE‑4_MGB – 4-lane PCI Express плата;
• ETH‑4_MGB – 4-канальная 10 / 100 / 1000 Ethernet PHY плата;
• QSFPPLUS_MGB – Dual QSFP (Quad Small Form-factor Pluggable) плата.
Таким образом, после ознакомления с возможными дополнительными платами можно определить, какие интерфейсы могут быть добавлены в платформу.
Определение стратегии отладки и отладочного интерфейса
Это очень важный этап формирования платформы прототипирования. Рассмотрим возможные варианты работы с прототипом: гибридное прототипирование на базе решений Synopsys и методологию отладки компании «ЭЛВИС».
Гибридное прототипирование на базе решений Synopsys
При гибридном прототипировании виртуальный прототип разбивается на части (рис. 1). Для тех блоков, для которых нет RTL (Register Transfer Level) описания уровня транзакций, используется виртуальный прототип. По мере получения RTL-описания виртуальные блоки заменяются им. Гибридная система прототипирования включает в себя элементы аппаратуры (платформа прототипирования) и программные элементы (виртуальный прототип).
Технология позволяет совместить эти элементы при помощи транзакционного протокола обмена. В состав комплекта программных и аппаратных средств для этого метода входит библиотека транзакторов популярных стандартов AMBA, C / C++ API и многое другое.
Методология отладки компании «ЭЛВИС»
Методология отладки компании «ЭЛВИС» приведена на рис. 2.
Ключевым моментом нашего решения является повторное использование тестового окружения для функциональной верификации и тестов при запуске на прототипе.
Более подробное объяснение тестового окружения будет представлено ниже.
Для доступа тестовых программ к прототипу используется аппаратный отладочный интерфейс. Остановимся на этом подробнее. Типичная структура проекта показана на рис. 3.
Что необходимо для тестирования подобного проекта?
Во-первых, необходим отладочный интерфейс для процессора, обычно это JTAG (рис. 4). Как было описано ранее, для этой цели может использоваться плата Synopsys GPIO HAPS daughterboard.
Во-вторых, требуется интерфейс для тестовой печати. Для этого удобно использовать UART. Но также может использоваться и Synopsys GPIO HAPS daughterboard.
Основной особенностью наших прототипов является то, что мы вводим в проект прямой канал управления, который позволяет напрямую управлять всеми регистрами и блоками проекта в любое время. Если тестируемый проект имеет такой интерфейс, он включается в прототип. Если в проекте такого интерфейса нет, он вставляется вместо сервисного процессора или другого управляющего блока. Обычно мы заменяем на тестовый интерфейс тот блок, который имеет наибольшие права доступа в проекте.
Во время тестирования и отладки СнК есть возможность создавать различные конфигурации проекта для прототипа. Если необходимо тестирование управляющего процессора, можно передвинуть для этой конфигурации управляющий интерфейс на место другого блока.
Определение типа отладочного интерфейса
Важной задачей является определение типа управляющего интерфейса для тестирования. Есть много возможностей для решения этой задачи. Ниже представлен обзор нескольких интерфейсов, которые могут быть использованы в этом качестве.
Интерфейс UMRBUS с транзакторами компании Synopsys
В качестве первого варианта рассмотрим UMR BUS interface с ABMA AXI транзакторами (рис. 5). Этот путь имеет преимущество в использовании, поскольку в программном обеспечении возможно автоматическое включение транзакторов в проект. Управление прототипом происходит через устройство UMRBUS device компании Synopsys. Это устройство использует PCIe-интерфейс для связи с управляющим компьютером. Сам интерфейс имеет гигагерцовую скорость. Однако из-за коммуникационного линка в драйвере при обмене с транзакторами скорость обмена существенно ниже и измеряется десятками мегагерц.
Интерфейс JTAG
Для отладки можно использовать JTAG-интерфейс, подключенный к плате GPIO. Однако скорость обмена по этому интерфейсу очень низкая.
Интерфейс Ethernet
Если использовать дополнительную плату Ethernet, ядро может оперировать на скорости 1 Гбит / с.
Интерфейс PCIe
Synopsys предлагает аппаратный комплект PCIe×8 Gen 3 Dual-port Cable Adapter. Он работает на скорости 64 Гбит / с, то есть данный интерфейс имеет максимальную скорость обмена данными.
Для нашей системы прототипирования мы выбрали PCIe-интерфейс в качестве основного интерфейса отладки. Скорость этого канала гораздо больше, чем у системы UMR BUS с транзакторами. Можно использовать драйвер Linux как обычный путь запуска тестов на языке С. Этот путь также удобен для использования тестов функциональной верификации для запуска их на прототипе.
Определение способа аппаратной отладки
Для аппаратной отладки прототипа удобно использовать программное обеспечение фирмы Synopsys ProtoCompiler Runtime, которое используется в комплекте с UMR BUS kit. Это аналог отладчика Xilinx Chipscope, специально спроектированный для использования с HAPS.
Для более глубокого аппаратного изучения проблем возможно использование дополнительной дочерней платы LAB_HT3, которая позволяет подключать логический анализатор к комплекту прототипирования.
Учет требований различных проектов для переиспользования прототипа
После предыдущей стадии мы имеем перечень необходимых дополнительных плат. Следует предусмотреть возможность переиспользования прототипа для последующих проектов с целью возможного добавления дополнительных плат.
Различные конфигурации прототипов могут требовать различную емкость в необходимом количестве ПЛИС и блоков HAPS.
Создание схемы универсального соединения кабелей
Платформа HAPS обеспечивает быструю перепрошивку ПЛИС. Комплект из двух базовых блоков может быть переконфигурирован на другой проект в течение пяти минут. Однако, настолько быстрая смена проекта возможна лишь в том случае, если не требуется перестановки дочерних плат и перекоммутации кабелей. К тому же, коннекторы типа HAPS Track III, используемые в платформе, имеют достаточно тонкие контакты. Частая перекоммутация кабелей может привести к повреждению коннекторов. Поэтому мы предлагаем создать и использовать одну универсальную схему соединения кабелей для всех проектов.
Приведем пошаговое описание для создания такой схемы.
Первым пунктом исходных данных является набор необходимых для подсоединения к основному блоку дочерних плат. Второй пункт – предварительный объем основных блоков для определения его местоположения в базовом блоке. Если есть блок, который не умещается по своему объему в одну ПЛИС, необходимо продумать, в каких ПЛИС его лучше разместить. На этом этапе также можно предусмотреть, какие дочерние платы должны быть расположены около этого блока для обеспечения минимальной задержки распространения сигналов.
Для подсоединения дочерних плат через FMC-кабель желательно использовать самые удаленные краевые разъемы, чтобы было удобнее в случае необходимости подсоединить дополнительное оборудование или логический анализатор.
Далее мы исходили из обеспечения максимально возможного количества соединений между ПЛИС, подсоединив кабели ко всем возможным разъемам.
Пример схемы универсального соединения кабелей
Для наших проектов мы создали собственную схему подключения дочерних плат и кабелей. Исходные данные для наших проектов были следующими: два блока HAPS‑80_S104, управление прототипом осуществляется посредством двух интерфейсов – PCIe и UMR BUS.
Основные ядра проекта занимают две ПЛИС. Поэтому мы использовали для соединения ПЛИС попарно платы Con_HT3_cables, которые имеют минимальную задержку распространения сигналов 0,6 нс.
Для проектов, которые занимают один базовый блок, схема соединения представлена на рис. 6.
Для проектов, использующих два блока HAPS, задача определения универсальной схемы соединения кабелей более сложная. В этом случае на практике очень важно определить взаимное расположение двух блоков: рядом друг с другом или один над другим. Это необходимо для определения типа кабелей, которые могут быть использованы. В нашем случае мы решили расположить два блока на столе один около другого. Платы Con_HT3_cables имеют лучший параметр минимальной задержки, но они могут применяться только для соединения ПЛИС A и C или B и D. Также при определении схемы для двух блоков HAPS мы учитывали, что проект, занимающий один блок, может быть использован без перекоммутации. Схема соединения представлена на рис. 7.
Этот подход позволил нам добиться наиболее эффективного использования времени работы платформы прототипирования, когда время переключения с одного пользователя на другого при смене рабочих проектов занимает не более пяти минут.
Во второй части статьи будет рассмотрена программная инфраструктура для использования тестов функциональной верификации и пользовательских сценариев на прототипе.
Часть 1
С. Фролова 1, Ф. Путря, к. т. н.2
Известно, что стадия прототипирования систем-на-кристалле (СнК) имеет важное значение в проектировании СнК. Прототипирование позволяет значительно сократить время создания СнК. Однако многие пользователи сталкиваются со сложностями при отладке своих проектов на платформах прототипирования. Они полагают, что это неудобно, трудоемко и связано с большими сложностями в отладке. Эти проблемы могут быть решены путем определения стратегии отладки и созданием на ее основе необходимой платформы прототипирования. В статье рассказывается об опыте АО НПЦ «ЭЛВИС» разработки такой платформы на базе комплекта HAPS
(High-performance ASIC Prototyping Systems) компании Synopsys.
Создайте свою платформу прототипирования
Для нашей компании были определены следующие цели, которые должны быть решены на платформе прототипирования:
• проверка и отладка схемотехнических решений;
• запуск тестов регрессии функциональной верификации;
• отладка всего стека программного обеспечения СнК;
• отладка пользовательских сценариев работы с будущей СнК.
Также ключевым моментом для проектирования платформы стала необходимость параллельной работы (в режиме строгого разделения времени) с разными проектами. Таким образом, с одной стороны, платформа прототипирования должна отвечать потребностям различных подразделений (проектировщиков, верификаторов, программистов) и обеспечивать удобство отладки, а с другой стороны, предоставлять возможность быстрого переключения с одного проекта на другой.
Эти два аспекта и стали основой нашего решения.
Для построения платформы было выбрано решение компании Synopsys: High-performance ASIC Prototyping Systems (HAPS). Эта система состоит из модулей, которые включают в себя аппаратные компоненты и программное обеспечение.
Базовый блок системы содержит только массив ПЛИС и коннекторы. Для каждого пользователя комплекта эта платформа должна быть сконфигурирована, то есть дополнена необходимыми в каждом конкретном случае элементами. В данной статье предлагается маршрут создания пользовательской системы прототипирования.
Маршрут создания платформы прототипирования
Предлагаемый маршрут состоит из следующих этапов:
• определения общей структуры проектов для прототипирования (основные блоки, интерфейсы);
• анализа проектов «дорожной карты», которые могут требовать прототипирования;
• изучения дочерних плат и аксессуаров для комплекта HAPS;
• определения стратегии отладки и отладочных интерфейсов;
• определения сценариев использования прототипа;
• определения состава прототипа;
• создания схемы универсального соединения дочерних плат и кабелей.
Определение общей структуры проектов
Первой стадией формирования структуры будущей платформы прототипирования является определение части проекта, которая должна быть помещена в прототип. Проект обычно включает в себя центральный процессор, память, некоторые виды акселераторов, низкоскоростные интерфейсы, высокоскоростные интерфейсы, сервисный процессор. Все проекты, имеющие в своем составе процессор, требуют дочернюю плату памяти, которая должна быть добавлена к базовому блоку.
Следует иметь в виду, что проект на платформе прототипирования работает обычно на частоте намного меньшей, чем частота СнК, поэтому прототипирование взаимодействия процессора с высокоскоростными интерфейсами в нормальном режиме невозможно. Низкоскоростные интерфейсы могут быть добавлены в проект прототипа без изменений. Для этого используются входы-выходы общего назначения на коннекторах. Сервисный процессор добавляется в проект позже. На этой же стадии рекомендуется сделать пробный синтез основных ядер в базисе ПЛИС прототипа для определения необходимого объема базового блока.
Результатом этой стадии маршрута является перечень блоков, которые должны быть включены в прототип.
Анализ проектов «дорожной карты», которые могут требовать прототипирования
Платформа прототипирования – мощное и достаточно дорогое оборудование. Для долговременной успешной работы с ним необходимо предусмотреть работу с перспективными проектами и добавить те блоки, которые могут понадобиться как минимум в ближайшие год-два.
Изучение дополнительных (дочерних) плат и аксессуаров для комплекта HAPS
После определения блоков, необходимых для прототипирования, предлагается изучить весь перечень плат, которые могут быть добавлены в прототип.
Ниже представлены наиболее значимые, с нашей точки зрения, дополнительные (дочерние) платы и устройства.
Дополнительная плата JUNO_ADAPTER_HT3 Daughter Board
V2M-Juno r2 ARM Development Platform (Juno ADP) – устройство, созданное компанией АRM для использования в целях создания программного обеспечения для процессоров АRM в составе прототипов. Это устройство может использоваться в различных системах прототипирования. Для подключения его к HAPS компания Synopsys предлагает адаптер JUNO_ADAPTER_HT3 daughter board.
Дополнительная плата DDR SODIMM Daughter Boards
Компания Synopsys предлагает различные виды дочерних плат памяти, которые могут быть подключены к HAPS: DDR3, DDR4, LPDDR3, LPDDR4.
Дополнительная плата FMC Daughter Board Cards
Перспективной возможностью для подключения различных видов интерфесов к комплекту являются дочерние платы с поддержкой стандарта FMC. Первая плата, названная FMCL cable, позволяет подключать мезонинную FMCL-плату. Вторая плата, FMC adapter, предоставляет возможность подсоединять HAPS к FMC – базовой плате, имитируя HAPS как FMC-мезонин.
Дополнительная плата GPIO Daughter Board
Это больше, чем плата универсальных входов-выходов. Во-первых, эта плата содержит коннектор ARM, при помощи которого подсоединяются стандартные для процессоров ARM отладочные средства. Если ваш проект содержит ARM-процессор, вы можете вывести отладочный интерфейс через этот коннектор. Во-вторых, эта плата содержит интерфейс UART-USB, который используется для отладочной печати сообщений. В-третьих, в комплекте к плате поставляется дополнение в виде добавочной платы светодиодов и кнопок.
Для процессоров разработки НПЦ «ЭЛВИС» используется обычный разъем универсальных входов-выходов этой платы для подключения к нему собственного средства отладки ELVEES-USB-JTAG. Таким образом, мы получаем отладочный интерфейс для процессоров, который подсоединяется через вспомогательное устройство к стационарному компьютеру.
Дополнительные платы высокоскоростных интерфейсов HAPS MGB Cards
Семейство HAPS MGB дочерних плат – это набор мультигигабитных SerDes-интерфейсных карт, таких как:
• SATA‑4_HS_MGB – 4-канальная l SATA плата скоростью до 6 Гбит / с;
• PCIE‑4_MGB – 4-lane PCI Express плата;
• ETH‑4_MGB – 4-канальная 10 / 100 / 1000 Ethernet PHY плата;
• QSFPPLUS_MGB – Dual QSFP (Quad Small Form-factor Pluggable) плата.
Таким образом, после ознакомления с возможными дополнительными платами можно определить, какие интерфейсы могут быть добавлены в платформу.
Определение стратегии отладки и отладочного интерфейса
Это очень важный этап формирования платформы прототипирования. Рассмотрим возможные варианты работы с прототипом: гибридное прототипирование на базе решений Synopsys и методологию отладки компании «ЭЛВИС».
Гибридное прототипирование на базе решений Synopsys
При гибридном прототипировании виртуальный прототип разбивается на части (рис. 1). Для тех блоков, для которых нет RTL (Register Transfer Level) описания уровня транзакций, используется виртуальный прототип. По мере получения RTL-описания виртуальные блоки заменяются им. Гибридная система прототипирования включает в себя элементы аппаратуры (платформа прототипирования) и программные элементы (виртуальный прототип).
Технология позволяет совместить эти элементы при помощи транзакционного протокола обмена. В состав комплекта программных и аппаратных средств для этого метода входит библиотека транзакторов популярных стандартов AMBA, C / C++ API и многое другое.
Методология отладки компании «ЭЛВИС»
Методология отладки компании «ЭЛВИС» приведена на рис. 2.
Ключевым моментом нашего решения является повторное использование тестового окружения для функциональной верификации и тестов при запуске на прототипе.
Более подробное объяснение тестового окружения будет представлено ниже.
Для доступа тестовых программ к прототипу используется аппаратный отладочный интерфейс. Остановимся на этом подробнее. Типичная структура проекта показана на рис. 3.
Что необходимо для тестирования подобного проекта?
Во-первых, необходим отладочный интерфейс для процессора, обычно это JTAG (рис. 4). Как было описано ранее, для этой цели может использоваться плата Synopsys GPIO HAPS daughterboard.
Во-вторых, требуется интерфейс для тестовой печати. Для этого удобно использовать UART. Но также может использоваться и Synopsys GPIO HAPS daughterboard.
Основной особенностью наших прототипов является то, что мы вводим в проект прямой канал управления, который позволяет напрямую управлять всеми регистрами и блоками проекта в любое время. Если тестируемый проект имеет такой интерфейс, он включается в прототип. Если в проекте такого интерфейса нет, он вставляется вместо сервисного процессора или другого управляющего блока. Обычно мы заменяем на тестовый интерфейс тот блок, который имеет наибольшие права доступа в проекте.
Во время тестирования и отладки СнК есть возможность создавать различные конфигурации проекта для прототипа. Если необходимо тестирование управляющего процессора, можно передвинуть для этой конфигурации управляющий интерфейс на место другого блока.
Определение типа отладочного интерфейса
Важной задачей является определение типа управляющего интерфейса для тестирования. Есть много возможностей для решения этой задачи. Ниже представлен обзор нескольких интерфейсов, которые могут быть использованы в этом качестве.
Интерфейс UMRBUS с транзакторами компании Synopsys
В качестве первого варианта рассмотрим UMR BUS interface с ABMA AXI транзакторами (рис. 5). Этот путь имеет преимущество в использовании, поскольку в программном обеспечении возможно автоматическое включение транзакторов в проект. Управление прототипом происходит через устройство UMRBUS device компании Synopsys. Это устройство использует PCIe-интерфейс для связи с управляющим компьютером. Сам интерфейс имеет гигагерцовую скорость. Однако из-за коммуникационного линка в драйвере при обмене с транзакторами скорость обмена существенно ниже и измеряется десятками мегагерц.
Интерфейс JTAG
Для отладки можно использовать JTAG-интерфейс, подключенный к плате GPIO. Однако скорость обмена по этому интерфейсу очень низкая.
Интерфейс Ethernet
Если использовать дополнительную плату Ethernet, ядро может оперировать на скорости 1 Гбит / с.
Интерфейс PCIe
Synopsys предлагает аппаратный комплект PCIe×8 Gen 3 Dual-port Cable Adapter. Он работает на скорости 64 Гбит / с, то есть данный интерфейс имеет максимальную скорость обмена данными.
Для нашей системы прототипирования мы выбрали PCIe-интерфейс в качестве основного интерфейса отладки. Скорость этого канала гораздо больше, чем у системы UMR BUS с транзакторами. Можно использовать драйвер Linux как обычный путь запуска тестов на языке С. Этот путь также удобен для использования тестов функциональной верификации для запуска их на прототипе.
Определение способа аппаратной отладки
Для аппаратной отладки прототипа удобно использовать программное обеспечение фирмы Synopsys ProtoCompiler Runtime, которое используется в комплекте с UMR BUS kit. Это аналог отладчика Xilinx Chipscope, специально спроектированный для использования с HAPS.
Для более глубокого аппаратного изучения проблем возможно использование дополнительной дочерней платы LAB_HT3, которая позволяет подключать логический анализатор к комплекту прототипирования.
Учет требований различных проектов для переиспользования прототипа
После предыдущей стадии мы имеем перечень необходимых дополнительных плат. Следует предусмотреть возможность переиспользования прототипа для последующих проектов с целью возможного добавления дополнительных плат.
Различные конфигурации прототипов могут требовать различную емкость в необходимом количестве ПЛИС и блоков HAPS.
Создание схемы универсального соединения кабелей
Платформа HAPS обеспечивает быструю перепрошивку ПЛИС. Комплект из двух базовых блоков может быть переконфигурирован на другой проект в течение пяти минут. Однако, настолько быстрая смена проекта возможна лишь в том случае, если не требуется перестановки дочерних плат и перекоммутации кабелей. К тому же, коннекторы типа HAPS Track III, используемые в платформе, имеют достаточно тонкие контакты. Частая перекоммутация кабелей может привести к повреждению коннекторов. Поэтому мы предлагаем создать и использовать одну универсальную схему соединения кабелей для всех проектов.
Приведем пошаговое описание для создания такой схемы.
Первым пунктом исходных данных является набор необходимых для подсоединения к основному блоку дочерних плат. Второй пункт – предварительный объем основных блоков для определения его местоположения в базовом блоке. Если есть блок, который не умещается по своему объему в одну ПЛИС, необходимо продумать, в каких ПЛИС его лучше разместить. На этом этапе также можно предусмотреть, какие дочерние платы должны быть расположены около этого блока для обеспечения минимальной задержки распространения сигналов.
Для подсоединения дочерних плат через FMC-кабель желательно использовать самые удаленные краевые разъемы, чтобы было удобнее в случае необходимости подсоединить дополнительное оборудование или логический анализатор.
Далее мы исходили из обеспечения максимально возможного количества соединений между ПЛИС, подсоединив кабели ко всем возможным разъемам.
Пример схемы универсального соединения кабелей
Для наших проектов мы создали собственную схему подключения дочерних плат и кабелей. Исходные данные для наших проектов были следующими: два блока HAPS‑80_S104, управление прототипом осуществляется посредством двух интерфейсов – PCIe и UMR BUS.
Основные ядра проекта занимают две ПЛИС. Поэтому мы использовали для соединения ПЛИС попарно платы Con_HT3_cables, которые имеют минимальную задержку распространения сигналов 0,6 нс.
Для проектов, которые занимают один базовый блок, схема соединения представлена на рис. 6.
Для проектов, использующих два блока HAPS, задача определения универсальной схемы соединения кабелей более сложная. В этом случае на практике очень важно определить взаимное расположение двух блоков: рядом друг с другом или один над другим. Это необходимо для определения типа кабелей, которые могут быть использованы. В нашем случае мы решили расположить два блока на столе один около другого. Платы Con_HT3_cables имеют лучший параметр минимальной задержки, но они могут применяться только для соединения ПЛИС A и C или B и D. Также при определении схемы для двух блоков HAPS мы учитывали, что проект, занимающий один блок, может быть использован без перекоммутации. Схема соединения представлена на рис. 7.
Этот подход позволил нам добиться наиболее эффективного использования времени работы платформы прототипирования, когда время переключения с одного пользователя на другого при смене рабочих проектов занимает не более пяти минут.
Во второй части статьи будет рассмотрена программная инфраструктура для использования тестов функциональной верификации и пользовательских сценариев на прототипе.
Отзывы читателей