Usb контроллер synopsys что это
UFX Synopsys Client Driver by Microsoft Corporation.
This service exists in Windows 10 only.
Restore Default Startup Type for USB Synopsys Controller
Startup Type
Windows 10 version | Home | Pro | Education | Enterprise |
---|---|---|---|---|
1507 | Manual | Manual | Manual | Manual |
1511 | Manual | Manual | Manual | Manual |
1607 | Manual | Manual | Manual | Manual |
1703 | Manual | Manual | Manual | Manual |
1709 | Manual | Manual | Manual | Manual |
1803 | Manual | Manual | Manual | Manual |
1809 | Manual | Manual | Manual | Manual |
1903 | Manual | Manual | Manual | Manual |
1909 | Manual | Manual | Manual | Manual |
2004 | Manual | Manual | Manual | Manual |
20H2 | Manual | Manual | Manual | Manual |
21H1 | Manual | Manual | Manual | Manual |
21H2 | Manual | Manual | Manual | Manual |
Этапы тулчейна от RTL до FPGA bitstream
Маршрут компиляции проекта под HAPS, в результате прохождения которого мы должны получить bitstream (микрокод, «прошивки») для FPGA, включает следующие стадии:
1. Partitioning
В приложении Synopsys Protocompiler компилируются RTL-исходники проекта.
В результате мы получаем разбитый, например, на 4 FPGA дизайн в виде списков исходников для каждой FPGA.
2. Компиляция отдельных чипов в Protocompiler
На второй стадии в Protocompiler собирается проект для каждой FPGA.
В результате получается netlist и tcl-скрипт для запуска маршрута Place&Route в Xilinx Vivado.
3. Vivado
На третьей стадии мы запускаем в Vivado уже готовый tcl-скрипт маршрута Place&Route, который берет нетлист. В итоге получаем прошивки для FPGA.
Этапы 2 и 3 хорошо знакомы разработчикам на FPGA, использующим, например, тулчейн Synplify+Vivado, поэтому остановимся подробнее на особенностях и вызовах первого этапа.
Design Partitioning для платформы HAPS посредством тула Synopsys Protocompiler
Рисунок 4. Маршрут Partitioning в Protocompiler. Изображение Synopsys
Разбиение дизайна на чипы FPGA (партишенинг) или распил (все же знают – мы в Baikal Electronics занимаемся как раз этим J) – это итеративный полуавтоматический процесс, в результате которого достигается баланс между заданной пользователем аппаратной конфигурацией (топология межчиповых кабелей, назначение портов и дочерних плат, начальное закрепление частей дизайна за конкретными FPGA) и характеристиками дизайна (эффективная растрассировка сигналов между FPGA, обеспечение приемлемого заполнения FPGA и выдержка требуемых характеристик быстродействия).
Если требуемые характеристики не достигаются, то мы меняем конфигурацию: перетягиваем кабели, переназначаем порты и исходное закрепление некоторых структур за конкретными FPGA. Последнее можно не делать совсем, а отдать начальное размещение полностью на откуп тулу.
Технологии тулы Protocompiler - Multi-Hop оптимизация, Feedthrough оптимизация, Time-Domain-Multiplexing – активно способствуют автоматической части партишенинга.
Multi-Hop оптимизация
Если логика пути сигнала разбивается между двумя FPGA, то путь между этими чипами называется hop («скачок»). Multi-Hop путь может простираться между несколькими FPGA и существенно ухудшать тайминг, при этом степень ухудшения тайминга зависит от доступных межчиповых связей и степени HSTDM-сжатия. (см. ниже).
Рисунок 5. Деградация тайминга вследствие партишенинга и появления Multi-Hop путей. Изображение из презентации Baikal Electronics
Пользователю Protocompiler доступны опции, позволяющие автоматически минимизировать количество Multi-Hop путей.
Feedthrough оптимизация
Feedthrough-пути используют промежуточные чипы FPGA для трассировки сигнала от чипа источника до чипа назначения, если межчиповые трассы для point-to-point соединения недоступны.
На Рис. 6 показано, что в сигналe из верхнего левого чипа источника не хватает прямых связей с верхним правым чипом назначения. Тогда автоматический роутер в туле буферизирует сигнал и размещает буфер в нижнем левом чипе, что неизбежно приводит к деградации тайминга. Пользователь может установить разрешение или запрет туле на автоматическое создание feedthrough-путей.
Эта технология используется на этапе System routing, сразу после этапа Partitioning. Обычно она используется в комбинации с технологией Time-Domain-Multiplexing.
Рисунок 6.Деградация тайминга вследствие партишенинга и появления Feedthrough-путей. Изображение из презентации Baikal Electronics
Default Behavior
The USB Synopsys Controller service is a kernel mode driver. If USB Synopsys Controller fails to start, the error is logged. Windows 10 startup proceeds, but a message box is displayed informing you that the ufxsynopsys service has failed to start.
Отладочные интерфейсы
Управление платформой HAPS осуществляется с помощью утилиты Confpro, через которую мы можем:
Назначать чаcтоты входных синхросигналов
Устанавливать номиналы питания банков питания FPGA
На прототипе можно разрабатывать и заниматься отладкой программного обеспечения так же, как и на настоящем процессоре в кремнии. Мы подключаемся к отладочному интерфейсу JTAG с помощью Olimex usb-jtag эмулятора, запускаем отладчик Openocd, при необходимости загружаем программы в spi flash память, в ROM, в ОЗУ. Можем подключить UART-интерфейс через usb адаптер к инструментальному компьютеру и осуществить символьный ввод/вывод для программ. Дочерняя плата на разъемах HT3 позволяет подключить SATA диск и Ethernet патчкорд.
Для прототипов процессорных Arm-ядер можно заниматься отладкой ПО через встроенную в ядра отладочную систему Coresight при помощи программного пакета Arm DS через физический интерфейс Arm D-Stream или более простые jtag-эмуляторы.
Встроенный в FPGA синтезируемый логический анализатор доступен через UMR Bus - нативный интерфейс от Synopsys для управления HAPS. Доступен огромный банк хранения выборок сигналов для построения вейвформ.
Прототипирование у нас используется прежде всего для системной валидации и ранней разработки ПО, такого как программы загрузчиков сервисного процессора, загрузчиков Arm TF, UEFI, ОС Linux.
Благодаря месяцам pre-silicon отладки на прототипе, наша команда «подняла» Linux на инженерном образце процессора Baikal-М в первые дни получения инженерного образца в руки!
Российский разработчик интегральных микросхем и систем на кристалле (SoC) компания «Байкал Электроникс» заключила соглашение о сотрудничестве с компанией Synopsys, мировым лидером в области поставки программного обеспечения, интеллектуальной собственности и сервисов для ускорения разработки инновационных микросхем и электронных систем. По условиям соглашения «Байкал Электроникс» получила доступ к широкому спектру решений Synopsys: платформе разработки Galaxy™, графическому инструментарию архитектурного проектирования Platform Architect™ с технологией многоядерной оптимизации дизайна архитектуры и анализа, инструментарию Design Compiler ® для проектирования СБИС и SoC , решению IC Compiler ™ для проектирования топологии, средствам физической верификации IC Validator , блокам интеллектуальной собственности Synopsys DesignWare® IP.
«Наша компания – первый в России дизайн-центр для разработки высокопроизводительных многоядерных микропроцессоров и систем на кристалле, способных на равных условиях конкурировать на глобальном рынке. Мы разрабатываем продукты с передовыми техническими характеристиками и самыми современными интерфейсами. Партнёрство с Synopsys , признанным лидером в разработке САПР и обладателем обширного портфеля интеллектуальной собственности, позволит нам быстрее достигнуть наших амбициозных целей, - отметила Светлана Легостаева, генеральный директор «Байкал Электроникс». - Богатый инстр ументарий для разработки и функциональной верификации дизайна микросхем позволит нам обеспечить высокую конкурентоспособность новых микропроцессоров и повысить продуктивность работы».
Разработки «Байкал Электроникс» предназначены для использования в энергоэффективных компьютерных и промышленных системах с разным уровнем производительности и функциональности. Микропроцессоры и SoC компании станут первой оригинальной российской разработкой для массового рынка, обладающией высокой конкурентоспособностью по техпроцессу, производительности, программной и аппаратной совместимости. Сотрудничество с Synopsys даст возможность оснастить разработки «Байкал Электроникс» самыми современными интерфейсами USB , PCI Express , SATA , и Ethernet . Передовой инструментарий позволит техническому департаменту компании более эффективно строить процессы проектирования и верификации и быстрее доводить новые разработки до стадии производства.
“Технологические стартапы, такие как «Байкал Электроникс», все чаще берут на вооружение решения Synopsys для оптимизации своих разработок. Это позволяет им вовремя достигать поставленных целей, - отметил Биджан Киани ( Bijan Kiani ), вице-президент по маркетингу продуктов Synopsys . – Обеспечивая комплексные решения на основе ведущих технологий и качественной глобальной технической поддержки, мы помогаем нашим клиентам соблюдать сроки разработки и выводана рынок новых продуктов».
О компании Synopsys
Synopsys , Inc . ( Nasdaq : SNPS ) является крупнейшим разработчиком и поставщиком комплексных систем автоматизированного проектирования электроники, включающих средства логического и поведенческого синтеза, трассировки элементов, временного анализа, формальной верификации, симуляции HDL , моделирования схем и других компонентов, ускоряющих внедрение инноваций на рынке микроэлектроники. Synopsys является 15-ым крупнейшим разработчиком программного обеспечения в мире.
Дополнительная информация о компании доступна на сайте www . synopsys . com
Данный материал является частной записью члена сообщества Club.CNews.
Редакция CNews не несет ответственности за его содержание.
dr_mode можно настроить как otg, хост или периферийное устройство.
1) Сначала сопоставьте dts и драйвер в соответствии с "snps, dwc3" и выполните dwc3_probe ()
2) Сначала вызовите dwc3_get_dr_mode () в dwc3, чтобы получить режим usb (dr_mode), который может быть otg, host или device
3) Затем вызовите dwc3_core_init () для инициализации интерфейса USB PHY и PHY USB, обратитесь к разделу 4 для инициализации USB PHY.
4) Наконец, вызовите dwc3_core_init_mode () для инициализации режима USB:
Если dr_mode - устройство, инициализируйте гаджет.
Если dr_mode является хостом, драйвер xHCI необходимо инициализировать. В конце функции dwc3_host_init вызовите platform_device_add (xhci), чтобы добавить платформенное устройство (xhci-hcd) в соответствии с драйвером xHCI (драйвер xHCI - это драйвер платформы), см. Раздел 3.
Если dr_mode - otg, роль (хост или устройство) должна быть выбрана для инициализации в соответствии с extcon, поэтому также требуется поддержка драйвера extcon, см. Раздел 2.
2. extcon driver
Драйвер extcon использует gpio или другие сигнальные контакты для обеспечения механизма уведомления в драйверах / extcon для управления переключением режима USB DRD (в качестве хоста или устройства).
1) Сначала сопоставьте dts и драйвер в соответствии с "linux, extcon-usb-gpio" и выполните usb_extcon_probe ()
2) В usb_extcon_probe () сначала вызовите devm_extcon_dev_register () для регистрации устройства
3) Затем зарегистрируйте обработчик прерывания для gpio, обработайте прерывание gpio в обработке прерывания и отправьте информацию драйверу DRD через механизм цепочки уведомлений.
Драйвер xHCI находится в usb / host и в основном инициализирует xHCI. xHCI действует как драйвер части хоста USB.
1) Вызовите platform_driver_register (& usb_xhci_driver) в xhci_plat_init, чтобы зарегистрировать драйвер платформы ("xhci-hcd")
2) Сначала, после сопоставления с устройством платформы в соответствии с name = "xhci-hcd", выполните xhci_plat_probe
3) В xhci_plat_probe инициализируйте xHCI и, наконец, добавьте его в ядро usb
4. usb PHY driver
PHY-инициализация dwc3 в основном завершается в dwc3_core_init.Если вам действительно нужно инициализировать PHY, вам также потребуется взаимодействие с соответствующим драйвером PHY (предоставить определенные рабочие функции).
1) Synopsys использует femtoPHY, femtoPHY обычно не требует инициализации (установки) своих регистров, и доступ к нему требуется только при отладке или использовании специальных функций. Другими словами, для femtoPHY мы можем инициализировать без написания драйверов.
2) Хотя инициализировать PHY нет необходимости, нам все же нужно настроить PHY-интерфейс (PIPE, ULPI, UTMI) контроллера USB, который реализован в dwc3_phy_setup.
Automated Restore
1. Select your Windows 10 edition and release, and then click on the Download button below.
2. Save the RestoreUSBSynopsysControllerWindows10.bat file to any folder on your hard drive.
3. Right-click the downloaded batch file and select Run as administrator.
4. Restart the computer to save changes.
Note. Make sure that the ufxsynopsys.sys file exists in the %WinDir%\System32\drivers folder. If this file is missing you can try to restore it from your Windows 10 installation media.
The Synopsys DesignWare® USB 2.0 Device Controller enables ASIC/FPGA designers to implement a complete USB 2.0 Device interface. The USB 2.0 Device supports USB High, Full and Low speeds as defined in the USB specification. By utilizing Synopsys' production-proven USB 2.0 Device, designers can significantly reduce development time and engineering risk and bring their USB-based solutions to market faster. The USB 2.0 Device can be customized and optimized for a specific application. In addition, the design can be easily migrated to almost any technology in a relatively short period of time.
- Implemented in thousands of SoCs, shipped in billions of products
- Fast integration with AHB interface
- Supports USB 2.0 High, Full and Low speeds
- DMA Engine simplifies drivers and offloads the CPU/MPU
- Available in Verilog
- Programmable number of endpoints
USB 2.0 Device Controller | STARs | Subscribe |
USB 2.0 Device Controller version 4 with Active Clock Gating to save active power | STARs | Subscribe |
Designware Cores USB 2.0 Device Controller Databook (4.30a) ( HTML | PDF )
Designware Cores USB 2.0 Device Controller Databook - with Change Bars (4.30a) ( PDF )
Designware Cores USB 2.0 Device Controller Programming Guide (4.30a) ( HTML | PDF )
Designware Cores USB 2.0 Device Controller Programming Guide - with Change Bars … ( PDF )
Designware Cores USB 2.0 Device Controller User Guide (4.30a) ( PDF | HTML )
Designware Cores USB 2.0 Device Controller User Guide - with Change Bars (4.30a) ( PDF )
Designware Cores USB 2.0 Device Controller Databook (4.30a) ( HTML | PDF )
Designware Cores USB 2.0 Device Controller Databook - with Change Bars (4.30a) ( PDF )
Designware Cores USB 2.0 Device Controller Programming Guide (4.30a) ( HTML | PDF )
Designware Cores USB 2.0 Device Controller Programming Guide - with Change Bars … ( PDF )
Designware Cores USB 2.0 Device Controller User Guide (4.30a) ( PDF | HTML )
Designware Cores USB 2.0 Device Controller User Guide - with Change Bars (4.30a) ( PDF )
Если предыдущая статья про гибридное прототипирование описывала новаторское использование платформы HAPS, то сегодня мы расскажем в общем - что такое прототип, и какие традиционные подходы к прототипированию используют инженеры Baikal Electronics.
В маршруте проектирование сложных System-on-the-Crystal (SoC) прототипирование на FPGA занимает промежуточное место между моделирование на симуляторах (VCS, ModelSim и др.) и эмуляцией.
FPGA-прототипирование позволяет реализовать такие сложные сценарии системной валидации микросхемы как загрузка операционной системы (ОС). На прототипе операционная система может загрузиться за несколько часов, на симуляторе ОС грузилась бы в течении месяцев. При этом на FPGA с помощью встроенного логического анализатора мы можем увидеть поведение любого сигнала нашего дизайна в любой момент времени. А также, в отличие от кремния, можем переконфигурировать наш прототип произвольное количество раз.
Рисунок 1 Две платформы HAPS-70_S48 в стеке. Фото Baikal Electronics
В Baikal Electronics мы используем платформы Synopsys HAPS-70, представляющие из себя сборки из четырёх FPGA Xilinx Virtex-7-2000, каждая из которых вмещает до 12 миллионов логических гейтов. Таким образов вместимость одной платформы HAPS-70 – до 48 миллионов логических вентилей. Мы можем соединить два HAPS в стек и получить систему, в которую можем загрузить дизайн объёмом до 96 миллионов логических гейтов. Между собой внутри HAPS-70 ПЛИС соединяются через кабели со стандартными разъёмами HapsTrak 3 (HT3).
Рисунок 2. Кабель с разъёмами HT3. Фото Яндекс.Картинки
Так же с помощью этих же разъёмов можно подключать к платформе дочерние платы (например, интерфейсные) , которые можно купить у Synopsys или разработать самостоятельно. Мы используем платы от Synopsys с DDR3 и SATA.
Интерфейсная плата для HAPS от Байкал
Для работы с низкоскоростными интерфейсами наши инженеры разработали интерфейсную плату, на которой выведены:
Для работы со скоростными интерфейсами у HAPS имеются нативные разъемы MGB, выведенные из мультигигабитных трансиверов Xilinx внутри каждого FPGA.
Рисунок 3. Интерфейсная плата соединяется с платформой HAPS с помощью трёх разъёмов HT3. Фото Baikal Electronics
Time-Domain-Multiplexing
Рисунок 7. Time-Domain-Multiplexing с автоматической вставкой SERDES IOs. Изображение из презентации Baikal Electronics. Изображение из презентации Baikal Electronics
Партишенинг дизайна на чипы FPGA приводит к дефициту бюджета I/O пинов FPGA для трассировки межсоединений. Партишенинг современной SoC гарантированно приводит к многократному превышению требуемого количества трасс над имеющимися I/O. Выход один – мультиплексирование.
Пользователь может задать тулу максимально допустимую степень сжатия HSTMD (High Speed Time Domain Multiplexing). При этом автоматически вставляемые сериализаторы/десериализаторы работают на частоте свыше 1 ГГц, обеспечивая эффективное сжатие мультиплексируемых сигналов до степени 128:1 и выше.
Startup Type
Windows 10 version | Home | Pro | Education | Enterprise |
---|---|---|---|---|
1507 | Manual | Manual | Manual | Manual |
1511 | Manual | Manual | Manual | Manual |
1607 | Manual | Manual | Manual | Manual |
1703 | Manual | Manual | Manual | Manual |
1709 | Manual | Manual | Manual | Manual |
1803 | Manual | Manual | Manual | Manual |
1809 | Manual | Manual | Manual | Manual |
1903 | Manual | Manual | Manual | Manual |
1909 | Manual | Manual | Manual | Manual |
2004 | Manual | Manual | Manual | Manual |
20H2 | Manual | Manual | Manual | Manual |
21H1 | Manual | Manual | Manual | Manual |
21H2 | Manual | Manual | Manual | Manual |
Default Properties
Display name: | USB Synopsys Controller |
Service name: | ufxsynopsys |
Type: | kernel |
Path: | %WinDir%\System32\drivers\ufxsynopsys.sys |
Error control: | normal |
Group: | Base |
Dependencies
USB Synopsys Controller is unable to start, if the USB Function Class Extension service is stopped or disabled.
Читайте также: