Cloud native EDA tools & pre-optimized hardware platforms
By: Eric Huang, Senior Product Marketing Manager, USB and DisplayPort, 草榴社区
Why is USB everywhere? In addition to its easy-to-use mechanics, the USB Certification program ensures that USB “just works.” Even if designers don’t apply for the formal certification, many companies use the USB Implementers Forum (USB-IF) procedures to test their products to ensure that their product will work in the market. The procedures for both host and device systems are free and the tools are (relatively) inexpensive, so designers can take advantage of the opportunity to check the quality of their products, from the slowest USB 1.1 speeds up to the latest USB 3.1 Gen 2 specification.
While the tools and resources are readily available, many companies are not able to pass USB 3.1 Gen 2 Host certification even after they have passed Device certification. USB 3.1 Host system certification is much harder than Device system certification because the Host must operate at all USB speeds and interoperate with potentially billions of USB peripherals. This article will describe some of the USB 3.1 Host certification processes that 草榴社区 went through during its USB 3.1 Host certification process, and which designers can expect to encounter as well.
Six Testing Procedures for USB 3.1 Gen2 Host Certification
There are six procedures to achieving certification:
1. Protocol testing
The USB Command Verifier (USBCV) test software validates that the USB protocols are followed. The USBCV software that includes a suite of tests for validating a Host or Device properly implements the USB specification. Specifically, they step through Chapter 9 of the USB specification and test each aspect of the Chapter 9 requirements (Figure 1). The tester runs the USBCV on a standard PC running Windows and the most recent version of Microsoft drivers. The Host is installed in the Windows PC and is connected to a peripheral of matching speed. For example, a USB 3.1 Gen 2 Host would be connected to a USB 3.1 Gen 2 solid state device (SSD).
Figure 1: USBCV testing a USB 3.1 Gen 2 Host
2. Gold Tree Testing
The USB Gold Tree is a specific set of USB peripherals. To form the trunk of the tree, multiple hubs are connected, up to five in series. Branches of the tree include USB peripherals. The peripherals exercise all USB types of traffic. All peripherals use control transfers for enumeration and configuration of the endpoints. It tells the host the kind of peripheral, the number of endpoints, and the type of transfers to be supported. The three types of transfers are interrupt, bulk, and isochronous.
The USB Gold Tree for USB 3.1 Gen 1 (5 Gbps) Hosts and USB 3.1 Gen 2 (10 Gbps) Hosts (Figure 2) includes a SuperSpeed USB 3.1 Gen 2 USB to video adapter. This is the major addition for 5 Gbps and faster testing.
Figure 2: USB Gold Tree for USB 3.1 Hosts
Source: USB Implementers Forum xHCI Interoperability Test Procedures for Peripherals, Hubs, Hosts Revision 1.6 – February 2015
The USB 2.0 Gold Tree (Figure 3) includes only USB 2.0 speed peripherals and uses a printer. When testing a USB 3.0 or 2.0 Peripheral, the peripheral is plugged into the Hub at the farthest point from the Host system. This ensures the device can handle the traffic sent through multiple layers of hubs and still remain operational.
Figure 3: USB Gold Tree for USB 2.0 Hosts
Source: USB Implementers Forum xHCI Backwards Compatibility Test Procedures for Hosts and Hubs Revision 1.7 – June 2016
To successfully test with the Gold Tree, the Host is connected to the Gold Tree, all the drivers load correctly, and all the peripherals operate as expected. For example, during the test, the Host must be able to print from the printer, accept input from the keyboard and mouse, start the webcam video stream, play music on the headphones, and read and write to all the flash drives.
As of Fall 2016, there are a few USB 3.1 Gen 2 peripherals available for interoperability testing. As USB 3.1 Gen 2 Hubs become available, a USB 3.1 Gen 2 Gold Tree tester will be created. For now, designers need to use USB 3.1 Gen 2 interoperability in addition to USB 3.0 Gold Tree testing.
3. Interoperability testing
Interoperability of USB 3.1 Hosts requires extensive hardware testing. The most challenging of these is testing with peripherals at different speeds including USB 2.0 (Hi-Speed, Full Speed, and Low Speed), USB 3.1 Gen 1 (5 Gbps) and USB 3.1 Gen 2 (10 Gbps). The USB 3.1 Gen 2 Host must connect directly to each 2.0 peripheral and demonstrate operation.
The Platform Interoperability Lab (PIL) run by the USB-IF and third-party testing facilities use a well-defined set of peripherals for interoperability testing. Interoperability testing at a Plugfest uses a range of new peripherals, and the Host must function with 90% of the peripherals made available.
Interoperability testing of the controller also exercises interoperability testing of the PHY. Electrically, this also makes a design more robust for the PHY, the controller, and the entire solution.
4. Certification checklist completion
The USB-IF requires all applicants complete a checklist. This is for system makers. The checklist actually helps designers check to see that their design meets requirements that are not tested whether through USB or electrical tests. It is self-reporting, but guides the product makers to a better product when followed and completed.
5. Electrical testing
Electrical testing is required at the system level for all products and is intended to ensure that the physical layer (PHY) can transmit and receive data across a cable. It’s critical for a Host because the quality of the peripheral PHYs it connects to varies significantly. In fact, a good PHY can overcome some poor cabling or poor peripheral PHYs. At 10 Gbps, this test is more important because the cables are now up to 2m long.
A good example of an electrical test is the Receive Jitter Tolerance test. In an SoC, the USB may be transferring data at the same time a PCI Express or WiFi transmission is occurring. The analog parts of those generate noise on the USB receiver, creating errors in receiving data. This noise is measured as jitter. During testing, the system must generate noise and demonstrate a bit error rate of less than 10-10. The lower bit error rate means the data is received and read accurately, minimizing retries and maximizing throughput. Passing this test ensures the PHY operates so that it can receive data accurately and with good overall throughput.
6. xHCI Host Testing
Host controllers require an additional set of tests. To obtain them, a company must go to Intel, and sign a special agreement to obtain the test suite. The tests take up to three calendar weeks to run and extensively exercise the controller.
Summary
USB Host certification is the most extensive USB certification process, and the most difficult to obtain. Most PC makers are able to obtain certification because the PC chipset providers have completed certification in advance. As long as the PC makers follow the guidance from the PC chipset providers, their system will likely pass compliance testing. For SoC developers, it's tougher. They need to ensure their entire chip works, and the IP has already passed the Host certification testing. They may or may not have the resources and expertise of the PC chipmaker. 草榴社区 is the only IP vendor to have earned USB 3.1 Gen2 certification for its Host and Device IP solutions, which include DesignWare USB 3.1 Gen2 controllers and PHYs. Using compliant, certified USB IP lowers integration risk, helps projects tape out on schedule, and supports first-silicon success for improved time-to-market.